尽管有 CAP 定理,但仍有 NoSQL ACID (distributed) databases 。这怎么可能? CAP 定理与(可能/不可能)成为 ACID 之间有什么关系?
最佳答案
CAP 定理实际上有点误导。您可以拥有 CA 设计这一事实是无稽之谈,因为当分区发生时,您必然会遇到有关一致性(例如数据同步问题)或可用性(延迟)的问题。这就是为什么有一个更准确的定理说明:
在分布式系统的分区期间,您必须在 一致性 和 可用性 之间进行选择。
在实践中,它并没有那么简单。您应该注意到一致性和可用性之间的选择不是二元的。你甚至可以同时拥有两者。例如,关于 ACID,您可以使用 NoSQL 进行原子性和持久性事务,但会丧失一定程度的隔离性和一致性以获得更好的可用性。然后可用性可以被同化为延迟,因为您的响应时间将取决于几个因素(最近的服务器是否可用?)。
所以,为了回答你的问题,这通常是营销废话。您需要真正触及表面,以了解解决方案究竟获得了什么和丧失了什么。
如果您想要更深入的解释,您可以查看 here 、 here 或 here 。
关于database - CAP 定理是否暗示 ACID 不适用于分布式数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16779348/