fix ch09 md

This commit is contained in:
muniao 2023-01-09 12:01:45 +08:00 committed by GitHub
parent 3590e53f8a
commit 6b72fb7e98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -304,7 +304,7 @@ CAP 最初被提出只是一个为了激发数据库取舍讨论的模糊的取
- 在[第五章](https://ddia.qtmuniao.com/#/ch05),我们在单主模型中提到,主副本最重要的作用就是确定**复制日志**replication log中的**写入顺序**order of writes然后所有从副本都要遵从该顺序。如果不存在唯一的主节点作为权威来协调该顺序则在并发的多个写入可能会产生冲突。参见[处理写入冲突](https://ddia.qtmuniao.com/#/ch05?id=%e5%a4%84%e7%90%86%e5%86%99%e5%85%a5%e5%86%b2%e7%aa%81)
- 在[第七章](https://ddia.qtmuniao.com/#/ch07),我们讨论了**可串行化**serializability即保证所有并发的事务像以某种顺序一样串行执行some sequential order。可以通过物理上真的串行执行来实现也可以通过并发执行但解决冲突加锁互斥或者抛弃执行来实现。
- 在[第八章](https://ddia.qtmuniao.com/#/ch08),我们讨论了在分布式系统中使用时钟(参见[依赖同步时钟](https://ddia.qtmuniao.com/#/ch08?id=%e4%be%9d%e8%b5%96%e5%90%8c%e6%ad%a5%e6%97%b6%e9%92%9f这也是一个试图对无序的真实世界引入某种顺序以解决诸如哪个写入更靠后之类的问题。
- 在[第八章](https://ddia.qtmuniao.com/#/ch08),我们讨论了在分布式系统中使用时钟(参见[依赖同步时钟](https://ddia.qtmuniao.com/#/ch08?id=%e4%be%9d%e8%b5%96%e5%90%8c%e6%ad%a5%e6%97%b6%e9%92%9f),这也是一个试图对无序的真实世界引入某种顺序,以解决诸如哪个写入更靠后之类的问题。
**顺序性**ordering、**线性一致性**linearizability和**共识协议**consensus三个概念间有很深的联系。相比本书其他部分尽管这几个概念更偏理论和抽象但理解他们却有助于来厘清系统的功能边界——哪些可以做哪些做不了。在接下来的几小节中我们会对此进行详细探讨。
@ -409,7 +409,7 @@ CAP 最初被提出只是一个为了激发数据库取舍讨论的模糊的取
1. **不同节点上处理操作的速率很难完全同步**。因此,如果一个节点使用奇数序号,另一个节点时用偶数序号,则两个序号消耗的速率也会不一致。此时,当你有两个奇偶性不同的序号时,就难以通过比较大小来确定操作发生的先后顺序。
2. **物理时间戳会由于多机时钟偏差,而不满足因果一致**。例如,在图 8-3 中(参见[时间戳以定序](https://ddia.qtmuniao.com/#/ch08?id=%e6%97%b6%e9%97%b4%e6%88%b3%e4%bb%a5%e5%ae%9a%e5%ba%8f)),就出现了发生在之后的操作被分配了一个较小的时间戳。
3. 对于批量分配方式,有可能发生较早的操作被分配了 1001~2000 的序列号,而较晚的操作被分配了 1~1000 的序列号。如此一来,序列号的分配不满足因果一致。
3. 对于批量分配方式,有可能发生较早的操作被分配了 1001-2000 的序列号,而较晚的操作被分配了 1-1000 的序列号。如此一来,序列号的分配不满足因果一致。
### Lamport 时间戳