形式陈述
Gilbert–Lynch 形式的 CAP 结论指出,在允许网络分区的异步读写寄存器模型中,不存在同时保证线性一致性与可用性的实现;可用性要求每个非故障节点收到的请求最终得到响应。冲突只在分区执行期间迫使选择,不是平时永久“三选二”。一致性这里是原子/线性一致性,不是任意含义的 consistency。
直觉
分区两侧无法通信时,若都必须立即响应写读,就可能给出彼此矛盾的最新值;若坚持单一实时顺序,就至少一侧需要等待或拒绝。
例子与边界
CP 系统在失去 quorum 的分区拒绝服务,AP 系统继续本地响应并稍后解决冲突。弱化为最终一致性、限制操作或改变可用性定义会得到不同权衡。CAP 不直接比较延迟与一致性的常态权衡,PACELC 等模型才进一步讨论。
推论与应用
CAP 用于明确分区时的服务语义、quorum 策略和产品一致性承诺。
参考资料
- Seth Gilbert and Nancy Lynch, Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services, SIGACT News 33(2), 2002,pp. 51–59。
- Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。