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)** 是最约定俗成的叫法。 >