Memo

共 49 条灌水 · 4

ZooKeeper 的 sync + read 不保证严格线性一致读

理论上可通过 sync + read 获得线性一致读,但 ZooKeeper 的 sync 实现并未将其作为空写日志复制。leader 直接向 follower 返回 zxid,未像 Raft 的 ReadIndex 或 lease read 一样确认自己仍是 leader。

网络分区或脑裂的边界条件下,这可能返回旧数据。因此它不满足严格的线性一致读语义,尽管该场景罕见且实现上可以修复。

参考:ZooKeeper 论文阅读

系统编程资料