Raft论文翻译

Raft 论文原文传送门: In Search of an Understandable Consensus Algorithm (Extended Version) 这篇文章大头是原文翻译,但我在很多地方加入了自己的理解, 主要作为我自己的笔记,不保证读者可以看懂,但你若有问题可以写在评论区,我会回复。 论文第 9 节及以后没有在本文记录笔记,因为这之后的内容不再是 Raft 共识算法的一部分。 0. 摘要 Raft 是一种用于管理复制日志的共识算法。 Raft 产生的结果和 (multi-)Paxos 一样,并且和 Paxos 一样高效,但是 Raft 的结构和 Paxos 不同。这使 Raft 比 Paxos 更容易理解,也为在构建实际系统提供了更好的基础。 为了更容易理解,Raft 分离了共识的关键要素,例如领导选举(leader election),日志复制(log replication)和安全性(safety)。 Raft 加强了一致性,以减少必须考虑的情况的数目。 一个用户研究的结果说明,对于学生来说,Raft 比 Paxos 更容易学。 Raft 还包括一种用于更改集群成员的新机制,该机制使用重叠多数(overlapping majorities)来保证安全。 1. 导论 共识算法允许一组机器作为一个一致的组来工作,这个组能够在其部分成员故障时幸存。因此,在构建可靠的大规模软件系统中,共识算法扮演着关键的角色。在过去十年间,关于共识算法的讨论被 Paxos 统治:大部分共识实现都是基于 Paxos 或受 Paxos 影响的,并且 Paxos 成为了给学生讲关于共识内容的主要工具。 不幸的是,尽管有数次让 Paxos 更平易近人的尝试,其还是相当难于理解。此外,Paxos 的架构需要复杂的修改以支持实际的系统。结果就是,系统构建者和学生都在为 Paxos 苦苦挣扎。 在我们与 Paxos 斗争之后,我们开始寻找一个新的共识算法,期望此算法能够为系统构建和教育提供更好的基础。我们的主要目标是可理解性,我们的方法不太寻常:我们能否为实际系统定义一个共识的算法,并且以比 Paxos 容易学得多的方式描述这个算法?此外,我们希望此算法能够促进对系统构建者至关重要的直觉的发展。不仅仅是算法能够工作很重要,能明显看出为什么可以工作也很重要。...

九月 10, 2024