raft论文阅读(1)

一种可理解的共识算法的研究

摘要
Raft是一种用来管理副本日志的共识算法。它产生的结果等价于多方的Paxos,同时它和Paxos一样有效,但它的结构和Paxos不同;这使得Raft比Paxos更容易被理解,同时它也提供了建立实用系统的更好的基础。为了提高可解释性,Raft将共识的核心元素分开,例如节点选举、日志副本和安全性,同时它加强了更强的一致性来减少必须考虑的状态数量。有结果表明,学生学raft起来比paxos更简单。raft同时包含了一种改变集群成员的新的策略,它使用了重合的大多数来保证安全。

介绍
共识算法让一系列机器同时作为一个一致的整体,它们可以在某些成员failure的情况下存活。由于在这个原因,它在构建大型可信软件系统中扮演着重要的角色。paxos曾经在这个共识算法的讨论中主导了超过最近的十年:绝大多数共识的部署都是基于paxos或者受他的印象,同时paxos成为了教学生共识算法的主要工具。

不幸的是,paxos是比较难以理解的,即使有很多尝试使它变得更容易理解。进一步地说,它的架构需要复杂的变化来支持实际系统。因此,系统的构建者和学生都觉得paxos很头疼。

我们也备受paxos的煎熬,因此我们想找出一个新的共识算法,它可以提供更好的基础给系统构建和教学。我们的方法是不同寻常的因为我们主要的目标是可理解:我们能布恩那个为可行的系统定义一个共识算法,然后将它描述成一个比paxos更简单的形式?进一步,我们希望该算法可以对直觉的发展有所帮助,这也是系统构建者必须的。重要的不仅仅是算法可以运行,而是它很显然为什么这样运行。

本文的结果就是一个叫raft的共识算法。在设计raft的过程中,我们使用了具体的技术去提高可理解性,包括分解(raft分成leader选举、日志副本和安全)和状态空间压缩(相较paxos,raft减少了不确定的程度和服务器相互间不一致的程度)。学生觉得学raft更轻松。

raft与现存的很多共识算法都很相似,但它有几个新颖的特征:
1.更强的leader:raft使用比其他共识算法更强的领导选举模式。例如,日志的入口只从leader流出到其他服务器。这使得日志副本的管理更简便,使得raft更容易理解。
2.leader选举:raft使用随机时间进行leader选举。这个只增加了一点点心跳机制(已经在很多其他共识算法中需要),这样可以更简便和快速地解决矛盾。
3.成员变换:raft在改变集群中地服务器中使用了一种新的共同共识算法,这里两个不同配置的大多数成员将会重合(在变换前后)。这使得集群可以继续正常地运行(在配置改变期间)

我们坚信raft比paxos高级,比其他共识算法更高级hhh,在教育角度和部署基础上。它很简单,很容易理解。它描述地足够清楚去满足一个可行系统地需求。它有几个开源地部署且被几家公司使用。它地安全特性被具体地证明。它地效率具有竞争力blablabla

本文地其他结构如下,第二章复制状态机器问题,第三章paxos优劣,第四章我们的可理解的方法,第五章到第八章描述raft算法,第九章评估raft,第十章相关工作。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>