CAP定理(theorem)

Posted kevin1988

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAP定理(theorem)相关的知识,希望对你有一定的参考价值。

一致性(Consistency): 每次读取都会收到最新的写入或错误
可用性(Availability): 每个请求都会收到 (非错误) 响应, 但不保证它包含最新的写入
分区容差(Partition tolerance): 尽管节点之间的网络删除 (或延迟) 了任意数量的消息, 但系统仍继续运行
特别是, cap 定理意味着, 在存在网络分区的情况下, 必须在一致性和可用性之间做出选择。请注意, cap 定理中定义的一致性与 acid 数据库 transactions[4] 中保证的一致性有很大不同。

说明

没有分布式系统可以避免网络故障,因此通常必须容忍网络分区。在存在分区的情况下,可以选择一个分区:一致性或可用性。在选择一致性而非可用性时,如果由于网络分区而无法保证特定信息是最新的,则系统将返回错误或超时。在选择可用性而非一致性时,系统将始终处理查询并尝试返回最新的可用信息版本,即使由于网络分区而无法保证其是最新的。

在没有网络故障的情况下 - 也就是说,当分布式系统正常运行时 - 可以满足可用性和一致性。

CAP经常被误解,好像必须始终选择放弃三种保证中的一种。实际上,只有在发生网络分区或故障时,才能在一致性和可用性之间进行选择;在所有其他时间,不需要进行任何权衡。

设计了传统ACID的数据库系统,例如RDBMS选择一致性而非可用性,而围绕BASE理念设计的系统,例如NoSQL运动中常见的,选择可用性而不是一致性。

PACELC定理以CAP为基础,即使在没有分区的情况下,也会在延迟和一致性之间进行另一次权衡。

 

https://en.wikipedia.org/wiki/CAP_theorem

以上是关于CAP定理(theorem)的主要内容,如果未能解决你的问题,请参考以下文章

深入浅出CAP定理

深入浅出CAP定理

系统架构师福音—浅谈 CAP 理论

狄尔沃斯定理(Dilworth's theorem)

初识中国余数定理 (Chinese Remainder Theorem)

数学狂想曲(十三)——勾股定理, Menelaus‘ Theorem