形式陈述
最终一致性是一类弱复制保证,其核心收敛条件通常表述为:若系统停止接收新更新,并且已接受的更新最终传播到所有仍可用副本,则副本经过有限时间最终达到一致状态。不同系统还会加入 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。