2011-01-27 23 views

回答

3

两个C'S立场一致,但在CAP一致性的概念是指“所有节点同时看到相同的数据“和ACID中的一致性概念意味着”数据库执行的任何事务将从一个一致的状态到另一个状态“。 (维基百科)

1

没有原子性,你几乎不可能具有有意义的一致性。这就是为什么CAP定理以这种方式定义C的原因。想象一下这个简单的场景:

有一个数据库有两个帐户。我们没有钱进入数据库。只是两个账户上的钱。在数据库中,资金在一个账户与另一个账户之间移动。

没有原子性,用户可以读取数据,当钱从一个账户中扣除,但尚未被写入另一个账户。在这种情况下,这两个账户的总数将随读数而变化,这应该是不可能的,因为“新”钱不会离开或进入数据库。

以任何其他方式谈论一致性就像思考一个Java布尔“几乎”为真,而世界其他地方将其视为假。

+1

顺便说一句,除了上面我回答的内容,当你在这里谈论诸如“最终一致性”等其他类型的“一致性”时,请大声呼吁皇帝是赤裸的。让客户解释为什么报告为那些希望将问题“重新命名”的开发者误读了数量的尴尬。有时候,事实是简单而苛刻的。引入了新的“一致性”类型,因为一致性不会水平扩展,缩放也不是时髦的。不幸的是(或幸运的),自然界,数学和物理学往往不尊重人类的时尚(问伽利略的敌人)。 – 2012-10-15 21:02:03

相关问题