分布式学习之Quorum机制和Lease机制

本文深入探讨了分布式系统中的Quorum和Lease机制。Quorum机制通过确保读取和写入副本数量大于总副本数,保证了数据一致性。而Lease机制用于缓存数据,通过数据中心节点的承诺确保数据的有效性和一致性。文中详细阐述了两种机制的工作流程,并以Zookeeper的Lease机制为例进行了说明。
摘要由CSDN通过智能技术生成

Quorum 机制

感觉这个名字很难读,今晚百度了一下,其实是这样的,腐朽的西方资本主义社会在举行选举时,通常要求参与人数必须达到额定的数量,才能成为一个法定有效的选举。这个额定的人数就

是Quorum,这是原始的涵义,哈哈。

首先明确一下Quorum 机制(管理副本机制)和lease机制(管理cache机制)是不同的范畴

  • 相似:Cache 机制与多副本机制的相似之处都是将一份数据保存在多个节点上。 
  •  不同:Cache 机制却要简单许多,对于 cache 的数据,可以随时删除丢弃,并命中 cache 的后果仅仅是需要访问数据源读取数据;然而副本机制却不一样,副本是不能 随意丢弃的,每失去一个副本,服务质量都在下降,一旦副本数下降到一定程度,则往往服务将不 再可用。 

 write-all-read-one(读可用性较高,更新可用性差)

 分布式系统通常支持多副本,副本存放在不同节点上,读写时需要对多个副本进行操作。按照自然而然的想法,一个写操作会需要写多个副本,但是读只要读到一个副本即可。这种思路猛听起来很合理,但若真依此实现,每一次写都必须刷新所有副本,才能避免产生一致性问题,如此写操作就显得太“重”了,尤其是和读操作相比较,一头轻一头重,负载明显不平衡,更加显得不协调。而且写的respond time变长其实也会间接影响到读,因为不写好没法读嘛,最终拖慢整体性能,是不是感觉被猛击了一下,哈哈。

Quorum 机制

Quorum的原理其实是我们家喻户晓的原理:鸽笼原理:若有n+1只鸽子关在n个笼子里,那么至少有一个笼子有至少2只鸽子,记得《算法经典入门》那本书里有介绍,经常搞这玩意。记得我做过的一道算法题:http://poj.org/problem?id=2356,有兴趣可以练练手,也可以拿去坑坑面试的人哈哈。鸽笼原理在Quorum的具体应用其实就是读副本数+写副本要大于总副本数。

 

Quorum 机制的三个系统参数 N、W、R 控制了系统的可用性,也是系统对用户的服务承诺:数 据最多有 N 个副本,但数据更新成功 W 个副本即返回用户成功。对于一致性要求较高的 Quorum 系 统,系统还应该承诺任何时候不读取未成功提交的数据,即读取到的数据都是曾经在 W 个副本上成 功的数据。 

例子:N=5,W=3,R=3,只要更新成功 3个副本即返回用户成功,原来的版本都为data_V1,其中我们对其中的三个副本改称data_V2,读取的时候我在5个副本中选取任意3个副本,其中必要我修改后的版本data_V2。示意图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值