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

33 | Raft(二):服务器增减的“自举”实现

你好,我是徐文浩。
在上节课里,我们了解了 Raft 算法,知道了它是怎么把“状态机复制”这样一个问题,拆解成了 Leader 选举、日志同步以及安全性三个子问题。那么,今天这节课,我们会进一步深入来了解 Raft 算法的另外几个问题。
这些问题,虽然在实践中我们必然会遇到,但是之前讲解各类分布式系统的时候,我们很少提到。正好,趁此机会,我们可以对在 Raft 集群中如何动态增减服务器,以及如何为 Raft 的状态机创建快照加以学习,并予以掌握。

成员变更(Membership Change)

无论是上节课我们讲解 Raft 的算法,还是之前我们在 Chubby 的论文里介绍的 Paxos 算法,我们都没有讲解往集群里增减服务器会发生什么情况。但是,这种情况其实是运维这些系统时,必然会遇到的情况。
比如,我们遇到某台服务器硬件故障了,需要往集群里增加一台服务器,并把坏了的服务器去掉。或者,我们为了系统的可用性考虑,往原先 3 台服务器组成的 Raft 集群里,加两台变成 5 台服务器,这样我们可以容忍集群里挂掉两台服务器,而不是原先的一台。
最简单的增减服务器的方式,当然是把整个集群停机,修改配置然后重启。但是,我们使用 Raft 这样的算法就是为了高可用性,所以显然我们不能这么做。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Raft算法是一种解决分布式系统中状态机复制问题的算法。本文主要介绍了Raft算法中的服务器增减的“自举”实现,以及日志压实和客户端交互的相关内容。在服务器动态增减时,采用了“过渡共识”策略,确保集群一致性和正确性。文章还提到了“双写”迁移策略,保障原有逻辑的正确性和新逻辑的满足性。另外,介绍了日志压实策略和客户端与集群的交互方式。总体而言,Raft算法的设计思路和方法在其他系统中也有应用,体现了其通用性和实用性。文章还推荐了相关阅读和提出了思考题,引发读者深入思考。

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

全部留言(8)

  • 最新
  • 精选
  • thomas
    当时的 Leader 是 Cold​ 老配置里的服务器,而不是 Cnew​ 里的服务器。一旦提交成功,我们的集群里就已经没有这个服务器的位置了。那该怎么办呢? ---------------> Cnew配置不是包含Cold的配置吗, 为什么会没有这个服务器的位置?比如old配置[A,B,C], 新增一台,new配置[A,B,C,D]
    2023-02-05归属地:广东
    2
    1
  • thomas
    按服务器 B 的配置后更新,在没有更新的时候,它觉得有 2 服务器的投票就是多数通过了; ----------》 成员变更的配图有问题, B配置没更新的时候,服务器B还不知道新加进来的服务器D, 怎么可能D会选择B
    2023-02-05归属地:广东
  • CRT
    加一天日志,标记前面哪些日志是需要逻辑删除的,后面不扫描即可
    2022-01-13
  • dahai
    Raft集群 仍然可能会遇到:即使是压实后的数据仍然接近单机的存储,这时候可能要替换现有的机器换成更高配置的机器,这种情况下怎么处理?
    2021-12-31
  • Helios
    思考题:类似lsm tree的方式,通过append only把删除某条记录追加进去。
    2021-12-28
  • 许灵
    关于思考题,应该可以用标记删除,加append only的方式进行,同时在log compaction的时候再进行物理删除
    2021-12-27
  • 那时刻
    关于思考题,我的想法是,采用dataflow的高低水位方式来处理,从其它节点同步数据是低水位,自己节点写入数据是高水位。如果需要删除日志,从低水位复写就好了,同时利用了硬盘顺序写
    2021-12-27
  • csyangchsh
    关于思考题,当找到共同点后,是否可以直接将共同点之前的日志复制到新文件,在新文件上日志写入就可以是append only方式了。因为有快照机制,共同点之前的日志数量应该不会很多。
    2021-12-27
    1
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部