知识卡片
共识不等于整体一致
内容
Paxos、Raft、Zab 通常只保证写入或日志复制的一致性;系统整体一致性还取决于读路径、会话顺序和等待策略。发散:不要把“用了共识算法”自动翻译成“所有 API 线性一致”。
参考来源
- 位置:《分布式系统与一致性》第15章《线性一致性与强一致性》"6.共识算法与一致性"一节(源文件:_epub-src/OEBPS/Text/chapter19.xhtml)
- 结论依据:原文明确"Zab算法是不能保证顺序一致性的,还要控制好读操作的流程才能让ZooKeeper整体(读+写)达到顺序一致性。使用Zab算法,仅仅能保证写操作达到线性一致性。与此相同,前面所讲的Paxos算法、Raft算法也是如此"。
- 原始内容:从前面所讲的内容可以看出,Zab算法是不能保证顺序一致性的,还要控制好读操作的流程才能让ZooKeeper整体(读+写)达到顺序一致性。使用Zab算法,仅仅能保证写操作达到线性一致性。与此相同,前面所讲的Paxos算法、Raft算法也是如此。