【发布时间】:2013-03-02 19:46:44
【问题描述】:
在 CAP 定理中,“P”(分区)组件实质上表明系统运行良好,尽管存在物理网络分区。
我想“C”(一致性)和“A”(可用性)在 DDBMS 上下文中对我来说非常有意义:为了保持一致性,所有客户端都必须拥有一致的数据视图,而不管它们所服务的 DB 节点是什么.并且在可用性的情况下,所有客户端都必须能够从 一些 DB 节点获得响应以进行读/写(即,所有节点永远不会同时关闭)。
但由于某种原因,我对 CAP 的分区部分感到窒息,它的意义在于,尤其是对于 DDBMS。
对于分布式数据库,根据定义,您拥有多个(集群)节点。根据网络和系统架构、物理设备等,无论如何,在节点之间复制或通信(半连接等)时都会遇到性能问题。 CAP 中的“P”也是一种提高 DDBMS 性能的方法。如果没有 P 保证,性能会受到阻碍吗?
另外,“P”与单个节点(非集群)数据库有何关系?我觉得在这种情况下它完全无关紧要。提前致谢!
【问题讨论】:
-
CAP 是关于分布式系统的定理。根据定义,单节点数据库不是分布式系统。
-
感谢@APC (+1) - 我不知道 CAP 仅限于分布式系统。然而,这只会压制我的第二个不那么重要的辅助问题。这里的主要问题是:P真正保证什么?
标签: database distributed-computing database-partitioning cap