Skip to content

最终一致性

Eventual consistency

停止更新后,所有副本最终收敛到一致状态的弱一致性保证。

形式陈述

最终一致性是一类弱复制保证,其核心收敛条件通常表述为:若系统停止接收新更新,并且已接受的更新最终传播到所有仍可用副本,则副本经过有限时间最终达到一致状态。不同系统还会加入 eventual delivery、读己之写、单调读等会话保证;因此“eventual consistency”本身不是唯一完备规格。它不提供固定收敛时限,也不要求任意时刻读取最新值。

直觉

允许副本在更新传播期间暂时分歧,以换取断网或高延迟时继续服务;只要更新停止且通信恢复,分歧最终被消除。

例子与边界

DNS 缓存和异步复制存储可在一段时间返回旧值,随后刷新到新状态。仅保证消息最终到达仍不足以保证收敛:若并发写入采用不确定的本地覆盖规则,不同副本可能停在不同结果;还需确定性冲突解决、全序时间戳或 CRDT 等机制。最终一致也不意味着单次客户端会话中读值单调。

推论与应用

该模型适合地理复制、离线协作和高可用缓存。设计时应把收敛、冲突解决、因果性和会话体验分别规格化,而不是用一个标签替代全部语义。

参考资料
  • Werner Vogels, “Eventually Consistent,” Communications of the ACM 52(1), 2009, pp. 40–44,Full paper, eventual consistency and client-centric variants。
  • Marc Shapiro et al., “Conflict-Free Replicated Data Types,” SSS 2011,§§2–3, eventual and strong eventual consistency。