CAP证明
- C(Consistency):A read is guaranteed to return the most recent write for a given client
- A(Availability):A non-failing node will return a reasonable response within a reasonable amount of time (no error or timeout)
- P(Partition Tolerance):The system will continue to function when network partitions occur.
CAP理论的证明也比较直观,如下:
image左图中,假设有两个节点N1和N2,N1和N2之间发生了网络分区(P),N1写入新值y,N2一直是老值x,为了保证一致性(C),读取N2总是返回失败,违反了可用性(A)要求:任何一个没有发生故障的节点必须在有限时间内返回结果,不允许为Error或者Timeout,系统只能保证CP。
右图中,从另外一个角度看,假设总是要保证可用性(A),那么,读到N2中的老值x,由于x和最新写入的y不同,违反了一致性(C)的要求,系统只能保证AP。
CAP理论本身毋庸置疑,证明可以参考Gilbert和Lynch合著的论文
网友评论