最终一致性:为什么短暂不同仍可能是正确状态?

最终一致性:为什么短暂不同仍可能是正确状态?

最终一致性描述一种分布式状态:同一数据有多个副本,更新不必瞬间到达所有位置;如果不再发生新更新,副本最终会收敛。因此,刚在手机上修改共享清单,另一台设备短暂显示旧内容,不一定表示数据已经损坏,而可能只是传播尚未完成。

它放宽的是“立刻看见最新值”,不是放弃正确性。系统仍须处理更新顺序、冲突与失败,并说明旧值最多可能存在多久。与强一致性相比,它通常减少同步等待、提高部分网络故障时的可用性;代价是应用和用户必须承受暂时差异。它也不同于缓存:缓存是保存副本的手段,最终一致性是这些副本何时必须一致的承诺。关键判断不是“是否曾经不同”,而是差异有没有边界、能不能可靠收敛。

https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html


了解 Geoffrey Chen 的更多信息

订阅后即可通过电子邮件收到最新文章。