3

Raft论文翻译与笔记

 2 years ago
source link: https://fenghaojiang.github.io/post/chang-shi-shou-xie-yi-ge-raft-demo/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Raft论文翻译与笔记

2021-12-02 3 min read # 技术

Raft 是一种用于管理复制日志的共识算法。它的效果跟Paxos的一样,并且它和Paxos一样高效,但它的结构不同于Paxos,这使得 Raft 比 Paxos更加容易理解,也为构建实用系统提供了更好的基础。为了增强可理解性,Raft 分离了共识的关键元素,例如leader选举、日志复制和安全,并强制执行更强的一致性,以减少必须考虑的状态数量。用户研究结果表明对于学生来说 Raft 比 Paxos更容易学习。 Raft 还包含一个新的机制来改变集群成员,它使用重叠(overlapping)多数来保证安全性。

共识算法允许一个由多个机器的组成集合作为一个连贯的组工作,即使某些成员失败。然后就是说Paxos影响了很多共识算法,在大型可靠软件系统中扮演重要角色。但是很难理解,所以不好用。然后优化understandability,定义一种更容易懂的共识算法。然后想让这个新算法去促进构建系统的人的必要直觉(intuitions that are essential),. It was important not just for the algorithm to work, but for it to be obvious why it works.
然后设计的结果就是Raft算法。优化的过程进行了大量的分解(decomposition)还有状态空间缩减reduction,相比Paxos,Raft降低了不确定性的程度还有减少了每个服务器不一致的方式。
Raft跟现有的共识算法很像,但是有几个新颖的特点:

  • Strong Leader
    Raft 使用比其他共识算法更强的领导形式。 例如,日志条目(log entries)仅从领导者流向其他服务器。 这简化了复制日志的管理,使 Raft 更容易理解。
  • Leader election
    Raft使用了随机的定时器去选举leader,只是在所有共识算法都必须实现的心跳机制上加了一点机制,就可以简单快捷解决冲突问题。
  • Membership changes
    Raft使用一种联合一致的方法来处理集群成员的变换问题,在这种方法下,处于调整过程中的两种不同的配置集群中大多数机器会有重叠,这使得集群在成员变换的时候仍然可以继续工作。

我们相信Raft比Paxos还有其他的共识算法更加优秀,不仅仅是因为出于教育的目的还是作为实践项目的基础。它比其他算法更加简单、更加容易被理解。

Raft原文链接:In search of an Understandable Consensus Algorithm (Extended Version) 》(寻找一种易于理解的一致性算法)
Raft Live Demo: http://thesecretlivesofdata.com/raft/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK