Skip to content

Commit

Permalink
Merge pull request #244 from Axlgrep/master
Browse files Browse the repository at this point in the history
Update ch9.md
  • Loading branch information
yingang authored Jun 5, 2022
2 parents 6d3927f + 10cd62f commit 675d9b4
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion ch9.md
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ CAP 定理的正式定义仅限于很狭隘的范围【30】,它只考虑了

### 全序广播

如果你的程序只运行在单个 CPU 核上,那么定义一个操作全序是很容易的:可以简单地就是 CPU 执行这些操作的顺序。但是在分布式系统中,让所有节点对同一个全局操作顺序达成一致可能相当棘手。在上一节中,我们讨论了按时间戳或序列号进行排序,但发现它还不如单主复制给力(如果你使用时间戳排序来实现唯一性约束,就不能容忍任何错误,因为你必须要从每个节点都获取到最新的序列号)。
如果你的程序只运行在单个 CPU 核上,那么定义一个操作全序是很容易的:可以简单认为就是 CPU 执行这些操作的顺序。但是在分布式系统中,让所有节点对同一个全局操作顺序达成一致可能相当棘手。在上一节中,我们讨论了按时间戳或序列号进行排序,但发现它还不如单主复制给力(如果你使用时间戳排序来实现唯一性约束,就不能容忍任何错误,因为你必须要从每个节点都获取到最新的序列号)。

如前所述,单主复制通过选择一个节点作为主库来确定操作的全序,并在主库的单个 CPU 核上对所有操作进行排序。接下来的挑战是,如果吞吐量超出单个主库的处理能力,这种情况下如何扩展系统;以及,如果主库失效(“[处理节点宕机](ch5.md#处理节点宕机)”),如何处理故障切换。在分布式系统文献中,这个问题被称为 **全序广播(total order broadcast)****原子广播(atomic broadcast)**[^ix]【25,57,58】。

Expand Down

0 comments on commit 675d9b4

Please sign in to comment.