CAP定理是否意味着ACID不可能用于分布式数据库?

gre*_*emo 6 database acid distributed-computing distributed-transactions nosql

NoSQL的ACID(分布式)数据库,尽管CAP定理.这怎么可能?CAP定理与(可能/不可能)成为ACID之间的关系是什么?

不可能用于分布式计算机系统同时提供一致性,可用性和分区耐受性.

LMe*_*yer 8

CAP定理实际上有点误导.您可以拥有CA设计的事实是无稽之谈,因为当发生分区时,您必然会遇到有关一致性(例如数据同步问题)或可用性(延迟)的问题.这就是为什么有一个更准确的定理,说明:

在分布式系统中进行分区时,必须在一致性可用性之间进行选择.

仍然在实践中并不那么简单.您应该注意,一致性和可用性之间的选择不是二进制的.你甚至可以有一定程度的两者.例如,关于ACID,您可以使用NoSQL进行原子和持久事务处理,但是会因为更好的可用性而丧失一定程度的隔离和一致性.然后,可用性可以与延迟同化,因为您的响应时间将取决于几个因素(最近的服务器是否可用?).

所以,要回答你的问题,这通常是营销废话.您需要实际划伤表面以查看解决方案正在获得和丧失的内容.

如果您想要更深入的解释,可以在这里,这里这里看.