CAP 定理


CAP 原则

CAP 由 Eric Brewer 在 2000 年 PODC 会议上提出,包含以下 3 个要素:

在某时刻如果满足AP,分隔的节点同时对外服务但不能相互通信,将导致状态不一致,即不能满足C;

如果满足CP,网络分区的情况下为达成C,请求只能一直等待,即不满足A;

如果要满足CA,在一定时间内要达到节点状态一致,要求不能出现网络分区,则不能满足P。

C、A、P三者最多只能满足其中两个,和 FLP 定理一样,CAP 定理也指示了一个不可达的结果(impossibility result)。

CAP 原则论证

如图所示,是我们证明CAP的基本场景,网络中有两个节点N1和N2,可以简单的理解N1和N2分别是两台计算机,他们之间网络可以连通,N1中有一个应用程序A,和一个数据库V,N2也有一个应用程序B和一个数据库V。现在,A和B是分布式系统的两个部分,V是分布式系统的数据存储的两个子数据库。