知识卡片
ZooKeeper写强读弱
内容
ZooKeeper 写操作经 Zab 顺序广播,具有线性写;读操作通常在本地副本执行,可能读到旧值,因此整体不是线性一致。发散:一个系统可以对读写提供不同一致性,不要只贴单一标签。
参考来源
- 位置:《分布式系统与一致性》第15章《线性一致性与强一致性》"15.4.1 ZooKeeper是顺序一致性的"一节(源文件:_epub-src/OEBPS/Text/chapter19.xhtml)
- 结论依据:原文明确"leader顺序执行每一个接收到的请求,Zab算法实现了写操作的线性一致性",同时"ZooKeeper的读操作不会被转发给leader执行,而是在所连接的服务器的本地执行……客户端可能读取到旧数据,所以ZooKeeper的读操作是不满足线性一致性的"。
- 原始内容:leader顺序执行每一个接收到的请求,Zab算法实现了写操作的线性一致性……ZooKeeper的读操作不会被转发给leader执行,而是在所连接的服务器的本地执行……某台服务器上的数据不一定是最新的,客户端可能读取到旧数据,所以ZooKeeper的读操作是不满足线性一致性的。