Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现。本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的思想。如果对 Paxos 算法感兴趣,可以看我的另一篇文章:分布式系列文章——Paxos算法原理与推导

摘要

Raft 是用来管理复制日志(replicated log)的一致性协议。它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同。这使得 Raft 比 Paxos 更容易理解并且更容易在工程实践中实现。为了使 Raft 协议更易懂,Raft 将一致性的关键元素分开,如 leader 选举、日志复制和安全性,并且它实施更强的一致性以减少必须考虑的状态的数量。用户研究的结果表明,Raft 比 Paxos 更容易学习。 Raft 还包括一个用于变更集群成员的新机制,它使用重叠的大多数(overlapping majorities)来保证安全性。

1 介绍

一致性算法允许多台机器作为一个集群协同工作,并且在其中的某几台机器出故障时集群仍然能正常工作。 正因为如此,一致性算法在建立可靠的大规模软件系统方面发挥了关键作用。 在过去十年中,Paxos [15,16] 主导了关于一致性算法的讨论:大多数一致性的实现都是基于 Paxos 或受其影响,Paxos 已成为用于教授学生一致性相关知识的主要工具。

不幸的是,Paxos 实在是太难以理解,尽管许多人一直在努力尝试使其更易懂。 此外,其架构需要复杂的改变来支持实际系统。 结果是,系统开发者和学生都在与 Paxos 斗争。

在我们自己与 Paxos 斗争之后,我们开始着手寻找一个新的一致性算法,可以为系统开发和教学

网友评论