尽管有 CAP 定理,但仍有NoSQL ACID(分布式)数据库。这怎么可能?CAP 定理和(可能/不可能)是 ACID 之间的关系是什么?
分布式计算机系统不可能同时提供一致性、可用性和分区容错性。
尽管有 CAP 定理,但仍有NoSQL ACID(分布式)数据库。这怎么可能?CAP 定理和(可能/不可能)是 ACID 之间的关系是什么?
分布式计算机系统不可能同时提供一致性、可用性和分区容错性。
CAP 定理实际上有点误导。您可以拥有 CA 设计的事实是无稽之谈,因为当分区发生时,您必然会遇到关于一致性(例如数据同步问题)或可用性(延迟)的问题。这就是为什么有一个更准确的定理说明:
在分布式系统中进行分区时,必须在一致性和可用性之间进行选择。
在实践中仍然不是那么简单。您应该注意,一致性和可用性之间的选择不是二元的。你甚至可以两者兼得。例如,关于 ACID,您可以使用 NoSQL 进行原子和持久事务,但为了更好的可用性而放弃了一定程度的隔离和一致性。然后可用性可以被同化为延迟,因为您的响应时间将取决于几个因素(最近的服务器是否可用?)。
因此,要回答您的问题,这通常是营销废话。您需要真正从表面上看,以了解解决方案究竟获得和丧失了什么。