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