From 18535b102e5c8ec8acdb58842ecf7a31f7aa694d Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Thu, 22 Mar 2018 18:25:04 +0800 Subject: [PATCH] auto commit --- notes/JVM.md | 16 ++++++++-------- notes/数据库系统原理.md | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/notes/JVM.md b/notes/JVM.md index b54e96b7..c2f101f9 100644 --- a/notes/JVM.md +++ b/notes/JVM.md @@ -15,10 +15,10 @@ * [4. 方法区的回收](#4-方法区的回收) * [5. finalize()](#5-finalize) * [垃圾收集算法](#垃圾收集算法) - * [1. 标记-清除算法](#1-标记-清除算法) - * [2. 复制算法](#2-复制算法) - * [3. 标记-整理算法](#3-标记-整理算法) - * [4. 分代收集算法](#4-分代收集算法) + * [1. 标记-清除](#1-标记-清除) + * [2. 复制](#2-复制) + * [3. 标记-整理](#3-标记-整理) + * [4. 分代收集](#4-分代收集) * [垃圾收集器](#垃圾收集器) * [1. Serial 收集器](#1-serial-收集器) * [2. ParNew 收集器](#2-parnew-收集器) @@ -234,7 +234,7 @@ finalize() 类似 C++ 的析构函数,用来做关闭外部资源等工作。 ## 垃圾收集算法 -### 1. 标记-清除算法 +### 1. 标记-清除

@@ -247,7 +247,7 @@ finalize() 类似 C++ 的析构函数,用来做关闭外部资源等工作。 之后的算法都是基于该算法进行改进。 -### 2. 复制算法 +### 2. 复制

@@ -257,13 +257,13 @@ finalize() 类似 C++ 的析构函数,用来做关闭外部资源等工作。 现在的商业虚拟机都采用这种收集算法来回收新生代,但是并不是将内存划分为大小相等的两块,而是分为一块较大的 Eden 空间和两块较小的 Survior 空间,每次使用 Eden 空间和其中一块 Survivor。在回收时,将 Eden 和 Survivor 中还存活着的对象一次性复制到另一块 Survivor 空间上,最后清理 Eden 和 使用过的那一块 Survivor。HotSpot 虚拟机的 Eden 和 Survivor 的大小比例默认为 8:1,保证了内存的利用率达到 90 %。如果每次回收有多于 10% 的对象存活,那么一块 Survivor 空间就不够用了,此时需要依赖于老年代进行分配担保,也就是借用老年代的空间。 -### 3. 标记-整理算法 +### 3. 标记-整理

让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。 -### 4. 分代收集算法 +### 4. 分代收集 现在的商业虚拟机采用分代收集算法,它根据对象存活周期将内存划分为几块,不同块采用适当的收集算法。 diff --git a/notes/数据库系统原理.md b/notes/数据库系统原理.md index a497aa6b..1e7520cd 100644 --- a/notes/数据库系统原理.md +++ b/notes/数据库系统原理.md @@ -129,7 +129,7 @@ MySQL 中提供了两种封锁粒度:行级锁以及表级锁。 ### 2. 意向锁 -意向锁(Intention Locks)可以支持多粒度封锁,它在原来的 X/S 锁之上引入了 IX/IS,用来表示一个事务想要在某个数据对象上加 X 锁或 S 锁。 +意向锁(Intention Locks)可以支持多粒度封锁。它本身是一个表锁,通过在原来的 X/S 锁之上引入了 IX/IS,用来表示一个事务想要在某个数据行上加 X 锁或 S 锁。 有以下两个规定: @@ -307,7 +307,7 @@ InnoDB 的 MVCC 使用到的快照存储在 Undo 日志中,该日志通过回 以下内容都是针对 MySQL 的 InnoDB 存储引擎来讨论的。 -和 MVCC 一样,Next-Key Locks 也是一种实现隔离级别的一种方式。相比于 MVCC,它可以解决幻读问题。 +MVCC 不能解决幻读问题,Next-Key Locks 就是为了解决这个问题而存在的。在可重复读隔离级别下使用 Next-Key Locks,就可以防止幻读的出现。 ## Record Locks