Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web

        这篇论文主要讲述分布式的CAP原理并给出证明。Brewer 认为在分布式里有三个基本需求: Consistency(一致性)、Availability(可用性)、Partition-tolerance(分区容错性),但一个分布式系统是没办法同时满足这三个特性。

        Consistency(一致性):是指所有的操作是满足原子性的,要么在所有节点都执行成功,要么都失败,保证一个操作得到的数据是一致的。

        Availability(可用性) : 是指在分布式系统中,任一个请求应该都能得到响应。

        Partition-tolerance(分区容错性): 是指分布性系统中任意节点的失败或者消息丢失,不会影响整个系统的运作。


       Brewer主要给出的定理是在2个模型下的:异步网络模型(Asynchronous Networks model)和部分同步网络(Partially Synchronous networks model)。  异步网络模型是指里面没有时钟,节点只能基于接受到的消息来做决定。 部分同步网络则是有时钟,并且速率是一样的,但是时钟不一定同步,有可能在同一时间内各个节点的时间不同,即能够实现一个超时机制。

 定理一:

       在一个异步网络模型中,允许数据有丢失的情况下,不可能存在一个读/写数据操作满足可用性和原子一致性。

       该定理的证明是用反证法,假设存在这么一个算法同时满足CAP三个特性,那么在一个只有2个节点{G1, G2}的网络下,在G1做一个写操作,然后在G2做一个读操作,因为有消息丢失,那么读的操作肯定不满足一致性,所以假设不成立。


推论一:

        在异步网络模型中,即使无消息丢失,不可能存在一个读/写数据操作满足可用性和原子一致性。

       这个推论主要的原因是在异步网络中,无法确定消息到底是丢失了还是延迟了,所以无法让别的节点做判断。 原因是异步网络没有超时机制。


  定理二:

       在半同步网络模型中,允许数据有丢失的情况下,不可能存在一个读/写数据操作满足可用性和原子一致性。

        证明同定理一


        但是在半同步网络中,如果无消息丢失,一个弱的满足CAP特性的系统是满足的:

* 对所有的数据访问,总返回一个结果 
* 如果期间没有报文丢失,那么返回一个满足 consistency 要求的结果。

      因为在半同步网络中,我们可以设定一个时间,假设超时了就返回失败。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值