分布式中关于Consistency和Consensus的区别

  在看分布式系统方面的内容时,会遇到两个概念:Consistency Model和Consensus Protocol。前者叫做“一致性模型”,后者则为“一致性协议”。两者都在讲述“一致性”相关的内容,那么这两个概念之间有什么联系和区别吗?

     首先,看看consistency 和 consensus的字面意思。下面是来自google 和iciba的翻译:

     Consistency: 一致性;连贯;   符合;   前后一致;   浓度

     Consensus: 共识;一致;   舆论;   一致同意,合意

     从字面意思看:前者侧重的是内容在时间顺序上的一致和统一;而后者则是指由许多参与者对某项内容达成共识。所以可以初步断定,consistency model和consensus protocol两者关于一致性的描述角度是不一致的。

     下面从术语的角度分析:

     Consistency model主要是对存储器上的数据更新和读取规定了一系列规则,使得在这些规则限制下操作数据一定能得到正确的数据。简单理解为,consistency model规定了何时(when)能读取数据的更新,它是程序和数据存储器之间的一个契约;也可以理解为对数据的一致性的程度进行了限定。

     consensus protocol则描述了在分布式环境中,多个进程或实例通过一定的原则或规则,对某项内容达成一致的意见。它为了达成一致意见,各进程或实例有一个通信和协商的过程。也可理解为consensus protocol是在实现某个consistency model时采用的技术手段。

     举一个形象的例子:假如有一个立法委员会,要决议通过一个法律,并向全国人民发布法律,最后在一定时刻法律生效。

     上述过程涉及法律的生成法律生效两个子过程。其中在法律生成子过程中需要利用consensus protocol,各议员相互协商最终达成一致的意见,生成法律;在法律生效过程中,Consistency model描述了为了在法律颁布后能在有效时间内使得全国各地法律按照一定的顺序生效,而需要遵守的相关规则和规定。

     对于上述的理解,我认为可以把consistency model翻译为“一致性模型”,consensus protocol翻译为“共识协议”,这样能避免一定的混淆。

posted on 2012-05-08 15:13 simon0227 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/simon0227/archive/2012/05/08/2490149.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值