大数据经典论文解读
徐文浩
bothub 创始人
13844 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 59 讲
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

14 | 分布式锁Chubby(三) :移形换影保障高可用

你好,我是徐文浩。
过去的两讲里,我们都在尝试做一件事情,就是在 Master 和 Backup Master 之间保持数据的同步复制。无论是通过分布式事务的两阶段提交算法,还是通过分布式共识的 Paxos 算法,都是为了做到这一点。
而我们要去保障 Master 和 Backup Master 之间的同步复制,也是为了一个小小的目标,那就是整个系统的高可用性。因为系统中只有一个 Master 节点,我们希望能够在 Master 节点挂掉的时候,快速切换到另外一个节点,所以我们需要这两个节点的数据是完全同步的。不然的话,我们就可能会丢失一部分数据。
不过,无论是 GFS 也好,Bigtable 也好,我们能看到它们都是一个单 Master 系统,而不是有多个 Master,能够同时接受外部的请求来保持高可用性。所以,尽管在论文里面,Google 没有说 GFS 在 Master 和 Backup Master 之间数据的同步复制是怎么进行的,但是根据我的推测,采用一个两阶段提交的方式会更简单直接一点。
那么,现在你可能就会觉得有问题了:如果还是使用两阶段提交这样的方式,我们不还是会面临单点故障吗?而且,我们上一讲所说的 Paxos 算法也用不上啊?
要回答这个问题,就请你一起来和我学习今天这一讲,也就是 Chubby 这个系统到底是怎么一回事儿。通过这一讲,我会让你知道:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Chubby是一个基于Paxos算法实现的分布式锁系统,旨在确保系统的高可用性和一致性。其架构简化系统,通过选举Master节点确保数据一致性和灾难恢复。Chubby提供类Unix文件系统接口,通过永久和临时节点管理实现对数据的有效控制,并实现了事件通知机制。在面对网络延时等挑战时,Chubby通过锁延迟和锁序列器解决了分布式锁的问题。此外,Chubby还在客户端维护数据缓存以提升性能,并具备代理、分区等机制来扩展系统。总体而言,Chubby在分布式系统中发挥着重要作用,为系统设计层面降低长期协同开发的成本提供了有效解决方案。文章还提到了Chubby的设计思路,即通过系统工程保障系统的可用性,并提供熟悉的编程模型,使得系统对于其他团队的开发者和使用者易用。最后,文章提出了一个思考题,探讨Chubby在CAP理论下的系统满足情况。文章内容丰富,涵盖了Chubby系统的设计原理和应用场景,对于分布式系统的研究和应用具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • Cc
    选主的时候没有办法提供服务 应该是牺牲了可用性吧
    2021-10-22
    6
  • Geek_26755e
    介绍 lock-sequencer 这种方案时作者似乎漏了一种子方案?即在应用侧收到请求时拿着 sequencer 去 consistent cache 中校验一把锁是否还有效,这个子方案相比应用侧只校验 lock generation number 单增适用范围更广(比方说支持多对象的资源锁),缺点是要维护 session(其中含有 cache)。不知道这种子方案在业界是否有实践应用呢? 对应原文: The recipient server is expected to test whether the sequencer is still valid and has the appropriate mode; if not, it should reject the request. The validity of a sequencer can be checked against the server’s Chubby cache or, if the server does not wish to maintain a session with Chubby, against the most recent sequencer that the server has observed.
    2023-01-28归属地:安徽
    2
  • 泊浮目
    "CAP 之间难以满足是一个伪问题"感觉要引出BASE了啊
    2021-10-27
    2
  • Geek_26755e
    关于思考题:使用 Chubby 提高了应用层 Master 的可用性并不是解决了可用性问题,实际是 Chubby 向外屏蔽了可用性问题(基于 Paxos 的服务如果挂了多余半数的服务也就不能向外服务了,如果向外提供服务就是牺牲了一致性)。
    2023-01-28归属地:安徽
    1
  • 边城路远
    master挂掉后,临时文件被释放,这个时候backup master观察到这一事件去创建文件(拿到锁)将自己的ip和port写入,从而实现master模块的高可用
    2022-04-09
    1
  • LJK
    老师好,所以通过chubby选master的话只是在master选举上达到共识,解决了谁是master的问题,这个跟big table里面存储的数据本身的一致性有什么关系吗? 我理解对数据的写入和同步机制好像没什么影响,一些replica如果和master之间有同步延迟的话还是会产生数据不一致,不知道这个理解对吗?
    2022-01-23
    1
    1
  • 核桃
    关于CAP的选择,目前很多系统是追求最终一致性比较多的,牺牲了可用性,例如leader切换的时候,事务的执行是非常容易出现问题的。但是实际上,学术界也有论文讲述了这个问题,在master切换的时候,并不需要停止原来的业务,可以通过repair这些算法来修复,但是难度会很大,这些目前我们也在逐渐实现。
    2022-02-19
  • clpsz
    重剑无锋
    2022-02-13
  • 青阳
    怎么感觉和redis的哨兵集群有点相似
    2021-11-19
    1
  • hunt5
    非常感谢作者的分享 受益匪浅哈 有个问题: 1.Chubby发现master断掉需要选出新的master 2.master失效的广播由于网络分区没有到达客户端A 3.客户端A依旧发数据到挂掉的master进行二阶段提交 4.客户端B发数据到新的master进行二阶段提交 所以是否每次写入都要和Chubby交互来保持一致性呢?
    2021-11-04
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部