Raft
Raft 是一种为了管理复制日志的一致性算法。
它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。
为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明,对于学生而言,Raft 算法比 Paxos 算法更加容易学习。
Raft 算法还包括一个新的机制来允许集群成员的动态改变,它利用重叠的大多数来保证安全性。
和 Paxos 的对比
- 效果
Raft 等价于 (multi-)Paxos;
- 效率
Raft 与 Paxos 一样高效;
- 结构
Raft 更易于理解 - 为了增强可理解性,Raft 将 leader 选举、日志复制和安全性等关键元素分离,并采用更强的一致性以减少必须考虑的状态的数量;
- 实现
Raft 更易于实现 - Raft 算法的论文中提供了许多有利于实现的指引;
- 安全性
Raft 还包括一个用于变更集群成员的新机制,它使用重叠的大多数(overlapping majorities)来保证安全性。