首页 > 编程知识 正文

什么是cap原理,toeplitz定理证明

时间:2023-05-06 15:45:23 阅读:16349 作者:363

历史定理是由伯克利加州大学美国加州大学Berkeley的计算机科学家苗条衬衫于2000年举行的分布式计算原则研讨会(symposiumonprinciplesofdistributedistributeded 2002年,麻省理工学院(MIT )甜蜜星月和ldhf发表了布鲁姆猜想的证明,成为定理。

吉尔伯特和jqdfd证明的CAP定理在某种程度上比布鲁姆设想的更狭义。 定理研究了相互矛盾的两个要求到达互不相连的两个不同分布式节点时的处理方案。

CAP是一门理论计算机科学,介绍为http://www.Sina.com/(captheorem ),又称http://www.Sina.com/(brewer ' s theorem ),是分布式副本

一致性CAP定理onsistency (与所有节点访问相同的最新数据副本相同)可用性(65http://www.Sina.com/vailability )对每个请求都没有错误的响应根据一个定理(如果系统不能在时限内实现数据完整性,就意味着出现分区情况,当前操作必须在c和a之间进行选择),分布式系统只能满足三项中的两项,不能满足所有三项理解CAP理论最简单的方法是想象两个节点分为分区的两侧。 如果至少允许一个节点更新状态,则数据不一致(即c的性质)将会丢失。 为了确保数据完整性,如果将分区端的节点设置为不可用,则a的性质将会丢失。 除非两个节点不能相互通信,否则不能同时保证c和a,这将失去p的性质。

CAP证明

当前有两个网络N1和N2,每个网络都有从数据库检索数据的服务。 初始状态下,存储在db中的数据都是V0。

image.png

通常,网络N1在服务a中更新V0到V1,更新成功后发送消息m,将N2 db的V0更改为V1。 此时,在服务b中获取数据时,获取了V1。

在这种情况下是CA,没有分区

但是,如果发生网络分区(强制拥有分区容错能力),此时在服务a中将数据更新为V1后,由于网络错误,V1的值将无法与N2网络同步。 此时调用服务b请求数据时,我们必须在c和a之间进行选择。 如果选择c,则必须等待数据与N2同步,但从服务b获取数据将失败,并且会丢失a。 如果选择a,则从b获取的数据不是最新的,而是丢失c。

分区后,p满意,只能在CA之间选择

CAP应用CAP存在的问题在CAP理论中有一点非常理想化,那就是没有考虑网络延迟,他认为c都很快有效,实际上同步这个操作肯定有延迟。 因此,分布式系统中一般采用AP。

CA取舍

从上图可以看到,我们的分布式APP应用分为三种状态:一致性状态、分区状态和分区恢复状态。

对于分布式系统来说,分区状态和分区恢复状态是不可避免的。 一旦进入,我们就必须在C和A之间妥协。 这种妥协并不是说你完全不考虑a而只选择c,而是可以在CA的实现比率上进行权衡。 例如,主a从设备c基本上可用,并最终匹配。 BASE理论是为了解决这个问题。

基本理论基础是基本可用、软件状态和事件一致性三个短语的缩写,是AP在CAP中的扩展。

基本可用性:分布式系统允许在出现故障时丢失部分可用功能,并保证核心功能的使用。

软状态:允许系统存在中间状态。 此状态不影响系统可用性。 这里指的是CAP的不匹配。

最终一致性:最终一致性意味着随着时间的推移,所有节点数据都是一致的。

BASE解决了CAP中的理论没有网络延迟,BASE采用软状态和最终匹配保证了延迟后的一致性。

BASE和ACID是相反的,与ACID强大的一致性模型完全不同,它通过牺牲强大的一致性来获得可用性,允许数据不一致性持续一段时间,但最终达到一致状态。

基本理论的意义在于,我们不需要在a和c之间选择,就能实现部分的a和c

CAP分析应用类型其他MysqlCA主从模式是APZooKeeperCP分区后,相对于a,只有分区内的节点大于quorum时,对外服务EurekaAP最终一致性Redis哨兵/集群模式AP最终该资源的其他要求阻止分布式事务-TCCAP最终尝试一致的分布式事务-AP最终一致性就个人而言,CAP定理的核心是对于网络分区,我们需要向c和a做出相应的妥协, 虽然我们不能完全满足CA,但我们认为我们可以合理控制CA和CA的比例,以确保我们的APP应用程序/中间件正常服务。

下面是我的公众号。 请关注。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。