From aa339c313d6023183f6ee05ec3595f9b02f74a7e Mon Sep 17 00:00:00 2001
From: Yin Gang <zenith.yin@gmail.com>
Date: Wed, 18 Aug 2021 11:25:35 +0800
Subject: [PATCH] fix several wrong header levels

---
 ch11.md | 2 +-
 ch3.md  | 2 +-
 ch4.md  | 2 +-
 ch6.md  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ch11.md b/ch11.md
index 7f8cdde..582fa7a 100644
--- a/ch11.md
+++ b/ch11.md
@@ -335,7 +335,7 @@
 
 ​	或者,预订座位的用户请求可以拆分为两个事件:第一个是暂时预约,第二个是验证预约后的独立的确认事件(如“[使用全序广播实现线性一致的存储](ch9.md#使用全序广播实现线性一致的存储)”中所述) 。这种分割方式允许验证发生在一个异步的过程中。
 
-#### 状态,流和不变性
+### 状态,流和不变性
 
 ​	我们在[第10章](ch10.md)中看到,批处理因其输入文件不变性而受益良多,你可以在现有输入文件上运行实验性处理作业,而不用担心损坏它们。这种不变性原则也是使得事件溯源与变更数据捕获如此强大的原因。
 
diff --git a/ch3.md b/ch3.md
index f934c38..3700926 100644
--- a/ch3.md
+++ b/ch3.md
@@ -158,7 +158,7 @@ $ cat database
 
    ![](img/fig3-4.png)
 
-   ##### 图3-4 合并几个SSTable段,只保留每个键的最新值
+   **图3-4 合并几个SSTable段,只保留每个键的最新值**
 
    如果在几个输入段中出现相同的键,该怎么办?请记住,每个段都包含在一段时间内写入数据库的所有值。这意味着一个输入段中的所有值必须比另一个段中的所有值更新(假设我们总是合并相邻的段)。当多个段包含相同的键时,我们可以保留最近段的值,并丢弃旧段中的值。
 
diff --git a/ch4.md b/ch4.md
index 658b731..56820fc 100644
--- a/ch4.md
+++ b/ch4.md
@@ -258,7 +258,7 @@ Avro的关键思想是Writer模式和Reader模式不必是相同的 - 他们只
 
 只要Avro可以支持相应的类型转换,就可以改变字段的数据类型。更改字段的名称也是可能的,但有点棘手:Reader模式可以包含字段名称的别名,所以它可以匹配旧Writer的模式字段名称与别名。这意味着更改字段名称是向后兼容的,但不能向前兼容。同样,向联合类型添加分支也是向后兼容的,但不能向前兼容。
 
-##### 但Writer模式到底是什么?
+#### 但Writer模式到底是什么?
 
 到目前为止,我们一直跳过了一个重要的问题:对于一段特定的编码数据,Reader如何知道其Writer模式?我们不能只将整个模式包括在每个记录中,因为模式可能比编码的数据大得多,从而使二进制编码节省的所有空间都是徒劳的。
 
diff --git a/ch6.md b/ch6.md
index e14f565..426b18a 100644
--- a/ch6.md
+++ b/ch6.md
@@ -15,7 +15,7 @@
 
 [^i]: 正如本章所讨论的,分区是一种有意将大型数据库分解成小型数据库的方式。它与 **网络分区(network partitions, netsplits)** 无关,这是节点之间网络故障的一种。我们将在[第8章](ch8.md)讨论这些错误。
 
-> ##### 术语澄清
+> #### 术语澄清
 >
 > ​	上文中的**分区(partition)**,在MongoDB,Elasticsearch和Solr Cloud中被称为**分片(shard)**,在HBase中称之为**区域(Region)**,Bigtable中则是 **表块(tablet)**,Cassandra和Riak中是**虚节点(vnode)**,Couchbase中叫做**虚桶(vBucket)**。但是**分区(partitioning)** 是最约定俗成的叫法。
 >