分布式原理与工程 —— Quorum机制

Quorum机制是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法 其主要数学思想来源于鸽巢原理1

Quorum机制定义

我们普遍使用副本(Replication)技术来保证一致的性能和高可用性2,Quorum是一种简单有效的管理副本的机制,我们先建立如下定以([2]中也有描述):

N = 存储数据副本的节点的数量
W = 更新成功所需的副本更新成功的数量
R = 一次数据对象读取要访问的副本的数量

更新时,只有至少W副本更新成功时才算更新操作成功;读取时,至少要读取R个副本的数据。这样当 W+R>N 时,对于同一个数据对象,更新集合与读取集合一定有重叠,保证了读取的数据中一定有最近更新的值。

WARO (Write All Read One)

WARO是Quorum机制的特例(GFS使用WARO),也就是更新时必须所有的副本都更新成功,而读取 时只需要读取一个副本的数据就可以。

Quorum机制与一致性

Quorum本身无法保证强一致性,除非有一个获取最新成功提交的版本号的metadata服务;假设 N=5,W=3,R=3 ,数据V2提交成功但是只在三个副本真正更新了,副本中数据分布是[V2, V2, V2, V1, V1],那么客户端可能读到[V2, V2, V1],也可能读到[V2, V1, V1];注意这里的版本V1,V2是数据本身的版本号不是最新成功提交的版本号,所以无法确认是V1还是V2;如果要保证强一致性必须继续读取副本,来确定最新至少写入的W个副本也就是提交成功的数据。

参考链接

  1. https://zh.wikipedia.org/wiki/Quorum_(分布式系统)
  2. https://duanmeng.github.io/2017/11/19/Eventually-Consistent%20-%20Revisited/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值