我经常在关于 NoSQL、数据网格等的不同演讲中听到最终一致性。
似乎最终一致性的定义在许多来源中有所不同(甚至可能取决于具体的数据存储)。
谁能简单解释一下最终一致性是什么,与任何具体的数据存储无关?
最佳答案
最终一致性:
最终,所有的服务器(你、我、你的邻居)都知道真相(明天会下雨),但与此同时,客户(他的妻子)离开时以为会是晴天,尽管她问在一台或多台服务器(你和我)拥有更新的值(value)之后。
与严格一致性/ACID 合规性相反:
您的余额在任何时候都不能反射(reflect)您账户上到那个确切时刻进行的所有交易的实际总和。
原因 为什么这么多 NoSQL 系统具有最终一致性是因为几乎所有系统都被设计为分布式的,并且对于完全分布式系统,保持严格一致性有超线性开销(意味着您只能在事情开始之前扩展到此为止放慢速度,当他们这样做时,您需要在问题上投入更多的硬件以保持扩展)。
关于nosql - 通俗易懂的最终一致性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10078540/