CAP理论

2000年7月,美国加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出了CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。

consistency 一致性

Gilbert 和 Lynch 在论文中的描述是:​​​​​​​

any read operation that begins after a write operation completes must return that value, or the result of a later write operation

意思就是,一个写操作完成后,之后的读操作必须得到前面写入的最新的值。

availability 可用性

Gilbert 和 Lynch 在论文中的描述是:

every request received by a non-failing node in the system must result in a response

意思是,任何一个请求到达系统可用节点后,必须得到响应。 

partition tolerance 分区容错性

Gilbert 和 Lynch 在论文中的描述是:

the network will be allowed to lose arbitrarily many messages sent from one node to another

意思是,节点之间有任意多消息丢失时,系统要能容忍并继续工作。 

维基百科从效果上对CAP的含义做了高度的概括:

Consistency : Every read receives the most recent write or an error
Availability : Every request receives a (non-error) response – without the guarantee that it contains the most recent write
Partition tolerance : The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes

一致性要求相同或相关数据在被更新后必须被读取到。

可用性要求节点必须对任意请求做出响应。

分区容错性要求节点之间通信异常时,系统依然要工作。

 不同组合的系统

 CA类型的系统,放弃分区,就是单节点,可以提供一致性和可用性,这里不要考虑不可抗因素,比如硬件损坏等。

CP类型的系统,放弃可用性,当分区发生时,数据不及时的分区直接停止服务。

AP类型系统,放弃一致性,当分区发生时,数据不及时的分区也提供服务。

主流系统的选择

当前系统都会保留P,所以会在C和A之间做权衡,目前主流系统都是选择A,然后舍弃强一致性,选择最终一致性。AP和最终一致性是我们优先考虑的系统架构。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值