Raft论文手译(上)

本文介绍了Raft一致性算法,它用于管理日志一致性,相比Paxos更易懂、易实现。文中阐述了复制状态机问题,指出Paxos复杂且不利于实际应用。Raft将领导者选举、日志复制等要素分离,采用随机定时器选举领导者,新的成员变动机制,能有效解决日志一致性问题。

在这里插入图片描述

摘要

        Raft是一种管理日志一致性的算法。它可以产生和Paxos一样的结果,和Paxos一样高效,但其结构与Paxos有所不同。相对于Paxos,Raft更通俗易懂也更容易实现其系统功能。为了更利于理解,Raft将领导者选举、日志复制、安全性等重要要素进行分离,并大幅提升它们的相关性以减少原来需考虑的状态类型。根据用户的使用反馈,相对于Paxos,Raft更易于学生学习使用。Raft还包含一种改变簇成员的全新机制,它通过冗余技术来保证安全性。

在这里插入图片描述

1、介绍

        一致性算法能使多台机器即使在部分成员宕机的情况下依然像一个整体一样工作。因此,它们在建立大规模可靠软件系统中扮演着重要角色。Paxos在过去十年都占据着主导地位,大多的一致性功能实现都是基于Paxos或受之启发的。Paxos也因此成为一致性算法教学的主要资料。

在这里插入图片描述
        不幸的是,尽管不少人曾尝试去简化Paxos的实现,但它还是非常复杂的。此外,为了支持各种系统,它在结构上也需要做出不少的调整。这也就让系统工程师和学生费了不少功夫去解决这些问题。

在这里插入图片描述
        在饱受Paxos的折磨后,我们设计出了一种全新的一致性算法,它更易于功能实现和教学。对于易于理解这个主要目标,我们做出了不同寻常的努力:我们能不能为实际的系统定义一种一致性算法,并通过一种比Paxos更通俗易懂的方式描述出来呢?此外,我们还希望这种算法能够为系统开发者们带来便利。重要的不仅仅是让算法跑通,更是要让大家理解它是怎么跑通的。

在这里插入图片描述在这里插入图片描述
        这种一致性算法叫Raft。在设计Raft算法的过程中,我们使用了几种技术来提升它的可读性,包括功能拆分(Raft分离了领导者选举、日志复制和安全性)和减少状态的种类(相对于Paxos,Raft减少了不确定性和功能耦合)。两所大学43名学生的学习的结果表明Raft比Paxos更通俗易懂:在学习了这两种算法后,相比于Paxos算法,33名学生能更好地回答Raft的问题。

在这里插入图片描述
Raft和许多现有的一致性算法类似,但它也有自己的创新点。

更可靠的领导者:相比于其他一致性算法,Raft采用的是更强大可靠的领导者。举个例子,日志条目只能从领导者流向其他服务器。这大大简化了日志复制管理,也使得Raft更利于理解。

领导者选举:Raft采用随机定时器来选举领导者。Raft简单地实现了一致性算法都需要的心跳机制,处理冲突的方式也简单迅速。

成员变动:在服务器集群变动上,Raft采用的是一种新的共同一致的机制,即多数一致覆盖少数差异。这就能让集群在配置发生改变时继续正常运行。

在这里插入图片描述
        我们相信Raft在无论是在教学目的还是功能实现都比Paxos及其他一致性算法优秀。它比其他同类算法都简洁且易懂。该算法的描述十分完整,达到了实际系统的需求。它提供了几种开源实现方式,并被数家公司采用。它详细讲述并证实了其安全性。其效率也能与其他同类算法相提并论。

在这里插入图片描述
        本篇论文讲述了复制状态机所遇到的问题(第二部分),讨论Paxos的优缺点(第三部分),讲述我们对该算法的理解(第四部分),展示Raft一致性算法(第五到第八部分),评价Raft算法(第九部分),并讨论相关的工作流程(第十部分)。

在这里插入图片描述在这里插入图片描述

2、复制状态机

        一致性算法是在复制状态机这个大背景下诞生的。通过一致性算法,服务器集群共同计算一致的数据,即便在少数几个服务器宕机的情况下整个集群仍能继续工作。分布式系统通过复制状态机来解决容错问题。举一个例子,典型的单簇首大型系统集群,比如GFS、HDFS和RAMCloud,使用的是分离复制状态机来进行领导者选举和存储宕机领导者的配置数据。而实现复制状态机的例子有有Chubby和Zookeeper。

在这里插入图片描述
图一

        复制状态机实现了日志复制,如图一所示。每个服务器都存储着一连串的命令日志。状态机就是这么一条条执行命令的。每条日志都记录着同一命令的同一步骤,状态机都在执行同样的命令步骤。那是因为状态机是不能进行回退操作的,它们状态保持一致,输出同样的结果。

在这里插入图片描述
        保持日志同步是一致性算法的需完成的任务。服务器的同步模块会接收客户端请求并保存该条日志。它还会与其他服务器的同步模块保持通信,以确保每条日志即便在少数服务器失败的情况下最终依然包含同样的命令、同样的步骤。一旦命令完成复制,各服务器的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值