低带宽广域网环境下的一致性算法研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

低带宽广域网环境下的一致性算法研究
马文韬;胡创;王文杰;龚奕利
【摘要】基于消息传递机制的Paxos算法在执行过程中需要进行大量网络通信,应用于广域网环境时易受带宽的限制而影响算法效率.为此,对Paxos的通信模型进行优化,提出改进的W-Paxos算法.通过在每个数据中心内部增设代理节点来接收、处理和发送广域网消息,从而大幅减少广域网肖息数量,解决因Paxos消息过多而引发的网络拥塞、延迟增加等问题.由于仅对经典Paxos的通信模型进行优化,因此改进算法适用于多数Paxos协议族中的协议.实验结果表明,在低带宽环境下,W-Paxos产生的消息数量较Mencius和EPaxos算法更少,能有效减缓领导者的负载压力,提高吞吐率并降低通信延迟.
【期刊名称】《计算机工程》
【年(卷),期】2016(042)009
【总页数】7页(P94-99,104)
【关键词】一致性;Paxos算法;W-Paxos算法;分布式系统;代理
【作者】马文韬;胡创;王文杰;龚奕利
【作者单位】武汉大学计算机学院,武汉430072;武汉大学计算机学院,武汉430072;密歇根大学,安娜堡美国48824;武汉大学计算机学院,武汉430072
【正文语种】中文
【中图分类】TP393
中文引用格式:马文韬,胡创,王文杰,等.低带宽广域网环境下的一致性算法研究[J].计算机工程,2016,42(9):94-99,104.
英文引用格式: Ma Wentao,Hu Chuang,Wang Wenjie,et al.Research on Consensus Algorithm in Low-bandwidth Wide Area Networks[J].Computer Engineering,2016,42(9):94-99,104.
随着云计算的发展和网络应用的普及,用户对于网络应用的响应速度以及可靠性的要求日益提高。

云服务提供商及企业通过构建跨地域分布式系统的方式[1-2]来满足响应速度、容错性等方面的要求。

分布式系统带来诸多便利的同时也带来诸多问题和挑战,其中数据一致性问题尤其复杂和重要。

Paxos算法[3-4]是一种分布式一致性算法[5]。

该算法通过消息传递的方式实现分布式系统的一致性,主要针对多副本数据存储、名称服务、配置管理、权限管理等场景[6]。

研究人员从多方面对Paxos进行了研究改进:Multi-Paxos[7]和Fast Paxos[8]针对消息数量、消息传递跳数进行优化;Cheap Paxos[9]针对容错性进行改进;Mencius[10]针对Paxos在广域网环境下的效率进行优化。

目前,Paxos已被广泛应用在谷歌的Chubby[11-12],Spanner[13],Apache Zookeeper[14]等分布式系统中[15]。

分布式系统的一致性需要利用Paxos算法进行处理,而在跨地域的分布式系统中,有相当数量的消息通过广域网进行传输。

考虑到广域网受带宽限制明显,而数据中心内部的通信更迅速和稳定,本文对Paxos算法进行改进,提出W-Paxos算法,采用在数据中心内部设立代理节点与其他数据中心进行通信的方式,达到减少广域网中消息数量,尤其是广播消息数量的目的。

由于W-Paxos基于经典Paxos算法,因此其继承了Paxos的术语。

图1描述了广域网中利用W-Paxos实现一致性的分布式系统基本架构。

图中有n台副本服务器R={R0,R1,…,Rn-1}和m个数据中心D={D0,D1,…,Dm-1}。

对于数据中心Dj内部的某台副本服务器Ri,定义其表达式为Dj.Ri。

数据中心Dj内部的副本服务器集合表示为Dj.R。

某台副本服务器收到客户端发送的读写请求,这台副本服务器就成为这个请求的领导者,负责对该请求进行一致性协商和处理。

每个数据中心选举一台副本服务器作为该数据中心的代理服务器,描述为Dj.P,主要负责协助领导者和其他数据中心进行通信。

本文用D.P来表示系统中的所有代理服务器。

在副本状态机中,每个副本负责处理若干实例。

领导者从客户端接收请求并给该请求分配一个未使用过的实例号,协商过程中每台副本服务器都可以针对该实例提出不同的值。

实例完成协商的条件是:对于该实例,超过总量一半的副本服务器对某个值达成一致。

请求被选中表示相应实例号对应的值已经最终确定并不会被更改,根据协议性质,允许若干台副本服务器不参与协商过程,前提是这部分服务器数量小于副本服务器总量的一半。

一旦副本服务器学习到了这个结果,它们将会提交这个请求并等待程序最终执行。

领导者确认相应请求的提交完成消息并发送确认提交消息到客户端。

相比局域网,广域网通常延迟较高,受带宽限制明显,通信过程中网络包丢失的概率也相对较高。

广域网的这些特点严重制约了Paxos算法的效率和性能。

针对这些问题,W-Paxos算法的解决思路是通过每个数据中心内部的代理服务器进行广域网通信。

通常情况下,领导者需要将相同数量的消息发送给其他数据中心的服务器,在W-Paxos算法中,这个过程变为由领导者发送消息到其他数据中心内部的代理服务器,再由这些代理服务器负责将消息广播到所在数据中心的所有服务器。

该通信方式降低了领导者的负载,同时可以减少数据中心之间的通信量,从而提高算法性能。

3.1 基本算法
在W-Paxos中,数据中心内部的节点通过Paxos算法选举出一台代理服务器。

如果当前的代理服务器出现故障,则系统将会从剩余正常工作的节点中利用Paxos算
法选举出一台服务器作为新的代理服务器,新的代理服务器通过消息告知整个系统中的其他副本服务器。

图2展示了W-Paxos的执行流程。

与经典Paxos相同,W-Paxos对于客户端送达的请求,需要通过准备阶段和接收阶段完成提交。

如图中所示,副本D0.R0接收命令C1,成为领导者,将准备消息发送到所在数据中心的所有副本{D0.R1,D0.R2}和其他数据中心的代理服务器{D1.P,D2.P}。

D1.P和D2.P收到准备请求后,分别发送该消息到所在数据中心内部的其他副本服务器{D1.R1,D1.R2}和{D2.R1,D2.R2}。

D1.P收集D1.R的准备请求的回复,同时D2.P收集D2.R的回复。

代理服务器将收集到的回复整理发送给D0.R0。

D0.R0基于收到的对于准备请求的回复,计算是否可以开始接收阶段。

接收阶段的消息处理方式和准备阶段是一致的。

副本服务器在收到提交消息之后提交命令C1。

W-Paxos算法的具体描述如下:
(1)副本服务器Di.Rj收到客户端Request(r)请求,成为领导者。

(2)领导者给请求分配实例号instance_id,设置ballot=0,其中ballot为投票号。

(3)领导者发送prepare(instance_id,ballot)给本地其他副本服务器以及所有异地代理服务器,其中prepare()为准备请求。

(4)代理服务器Dm.P收到prepare(instance_id,ballot)。

(5)Dm.P发送prepare(instance_id,ballot)给所在数据中心的所有副本服务器。

(6)副本服务器Dm.R收到prepare(instance_id,ballot)消息。

如果该副本服务器和领导者在同一数据中心(m==i),返回prepare_ack(instance_id,ballot)给领导者,其中prepare_ack为准备回复消息;否则返回prepare_ack(instance_id,ballot)给Dm.P。

(7)Dm.P统计收到prepare_ack(instance_id,ballot)的数量,并将结果作为prepare_ack_p(instance_id,ballot,num)发送给领导者,其中num代表收到的反
馈数量。

(8)领导者统计收到的回复的总量。

如果准备过程完成(回复总量大于一半),发送accept(instance_id,ballot,r)给副本服务器R,其中accept()表示接收请求;否则ballot=ballot+1,返回步骤(3),更新投票号并重新发起准备过程。

(9)代理服务器Dm.P收到accept(instance_id,ballot,r),将该消息发送给所在数据
中心内的其他副本服务器。

(10)Dm.R收到accept(instance_id,ballot,r)。

如果该副本服务器和领导者在同一数据中心(m==i),返回accept_ack(instance_id,ballot,r)给领导者,其中
accept_ack()为接收请求回复;否则返回accept_ack(instance_id,ballot,r)给Dm.P。

(11)Dm.P统计收到accept_ack(instance_id,ballot,r)的数量,并将结果作为accept_ack_p(instance_id,ballot,r,num)发送给领导者。

(12)领导者统计收到的accept回复的总量。

如果接收阶段完成(回复总量大于一半),提交命令并通知其他副本服务器;否则ballot=ballot+1,返回步骤(3),增加投票号,重新发起准备过程。

(13)所有副本服务器收到提交请求,提交相应命令。

3.2 错误处理
对于整个系统来说,W-Paxos至多可以容忍「n/2⎤-1台副本服务器宕机,这和经典Paxos是一致的。

一台代理服务器的失效会导致相关数据中心和外界的通信被中断。

在这种情况下,系统将会从失效代理服务器所在数据中心内部正常工作的副本
服务器中选举出一台新的代理服务器并告知其他数据中心。

在W-Paxos中,代理服务器失效对整个系统带来的负面影响要大于非代理服务器失效。

但是由于局域网中的网络资源相对充足,数据中心内部副本服务器和代理服务器之间可以方便地通过
心跳检测来获取对方的存活状态并及时进行处理,因此可以将影响降到最低。

在Paxos算法中,通过多数副本服务器即可决定协商结果,因此,代理服务器无需等待
所在数据中心内部所有副本的回复到达即可将消息发送给领导者。

据此,本文提出一种优化策略,代理服务器收到所在数据中心内部多数副本服务器的回复即可反馈给领导者,以缩短等待时间。

正常情况下,系统中的所有代理服务器都会将收到的回复发送给领导者,因此,领导者收到的回复总数将大于系统中副本服务器数量的一半,足以完成协商工作。

这种快速回复的方式可以避免系统因少数慢节点的存在而影响整个系统效率。

优化算法修改部分的描述如下:
(1)请求到达代理服务器,代理服务器给相应请求添加时间戳,并开始记录等待时长。

(2)快速路径:如果等待时间未超过规定时长,且代理服务器收到了多数本地副本的回复,则代理服务器将会整理收到的回复消息,统计消息的数量,并将整理结果发送给领导者。

此过程称为非超时回复。

(3)如果快速路径无法实现,当等待时长到达某个预先规定的值时,代理服务器将会计算和整理所有收到的消息,并发送给领导者。

此过程称为超时回复。

(4)一旦领导者收到的数据中心内部的副本服务器回复的数量和代理服务器发送过来的回复中的副本服务器的数量之和满足协商要求,它将会忽略之后到达的消息。

否则,领导者将会重新发送准备请求,并重新进行协商阶段。

实验在模拟的分布式系统中进行,通过变量控制方法测试并比较W-Paxos和经典Paxos,Mencius,EPaxos[16]的性能。

为保证实验的严谨性,W-Paxos的模拟器SimPaxos基于文献[16]中EPaxos的模拟器实现,采用Go语言编写。

EPaxos的模拟器修改了Go语言的垃圾回收和RPC部分,以提高效率,但是并没有模拟Paxos 的通信部分。

为了研究W-Paxos算法在不同网络状况下的性能,SimPaxos增加了通信模块,采用TCP协议,可以模拟局域网和广域网的通信。

SimPaxos的服务器模块可以用来生成算法运行实例,每个实例对应一台副本服务器。

副本服务器的数量和网络带宽都可以进行配置。

模拟器运行在单台主机上,主机配置为:Pentium(R)**********************
处理器,4 GB内存,CentOS 6.2操作系统。

5.1 吞吐率
本组实验对各算法的吞吐率进行测试。

实验系统包含模拟的3个数据中心,每个数据中心包含3台副本服务器。

局域网中副本服务器的通信延迟设定为0.1 ms,带宽为1 000 Mb/s。

客户端发送请求给一台随机选中的服务器,这个过程连续执行100 000次。

图3描述了W-Paxos,Mencius和EPaxos在延迟为10 ms、带宽由0.125 Mb/s 增加到8 Mb/s的广域网环境中的吞吐率情况,其中,reqs/s表示单位时间内处理的请求数。

当广域网带宽低于2 Mb/s时,W-Paxos的吞吐率要好于Mencius,且随着带宽的减小,差距越发明显。

当广域网带宽分别为2 Mb/s,1 Mb/s,0.5 Mb/s,0.25 Mb/s 和0.125 Mb/s时,对应的W-Paxos的吞吐率分别比Mencius高
6.31%,11.91%,24.95%,31.77%和34.44%。

当广域网带宽增加到大于4 Mb/s时,结果表明Mencius要比W-Paxos表现更好,因为此时带宽已经不是性能瓶颈。

W-Paxos的消息传递需要经过更多的跳数,由此带来性能下降是无法避免的。

当带宽由4 Mb/s增大到8 Mb/s时,W-Paxos比Mencius的吞吐要低1.09%~5.12%。

当广域网带宽较低时(低于2 Mb/s),W-Paxos的吞吐率比EPaxos要高0.338%~17.88%,而Mencius低于EPaxos。

当广域网带宽分别为2 Mb/s,1 Mb/s,0.5
Mb/s,0.25 Mb/s和0.125 Mb/s时,W-Paxos的吞吐率分别比EPaxos高
0.338%,4.71%,1.78%,9.33%和17.88%。

当带宽大于4 Mb/s时,EPaxos的吞吐率要略高于W-Paxos。

在实际应用中,广域网带宽是受到限制的,并且通常是数个应用同时竞争使用广域网的网络资源。

由于W-Paxos可以显著减少协商过程中在广域网中通信的消息数量,
因此在广域网资源受限时表现更加优异。

5.2 通信延迟
本组实验对各个算法在不同广域网条件下的提交延迟进行测试。

在实验过程中,客户端随机向某个服务器发送请求,共执行该过程1 000次,其他配置不变,实验结果为平均值。

图4显示了W-Paxos和Mencius的测试结果。

在广域网带宽较高的条件下,W-Paxos的延迟高于Mencius,因为W-Paxos的传递过程中要经历更多服务器的处理。

然而,由于消息传递的主要过程都是在数据中心内部进行,因此W-Paxos的延迟只比Mencius略高。

当广域网带宽为16 Mb/s,延迟分别为10 ms,20 ms和30 ms时,W-Paxos的提交延迟比Mencius相应高出1.41%,0.51%和0.34%。

在广域网带宽较低的条件下,W-Paxos的延迟比Mencius低4.07%~22.22%,原因是数据在广域网中的传递受到带宽和网卡的限制,在网络中排队等待需要消耗相当一部分时间。

当广域网带宽低于2 Mb/s时,W-Paxos的延迟低于EPaxos,而EPaxos又低于Mencius。

W-Paxos的延迟比EPaxos低0.421%~16.18%。

当广域网带宽高于4 Mb/s时,EPaxos的延迟略高于W-Paxos。

由此可见,在广域网带宽较低的条件下,W-Paxos的延迟要低于EPaxos和Mencius,并且随着带宽的降低优势越发明显。

5.3 可扩展性
分布式系统中增加副本服务器数量的方式通常有2种:增加数据中心的数量和增加数据中心内部副本服务器的数量。

本文用X×Y代表副本服务器的总量,其中,X代表数据中心的数量;Y代表每个数据中心内部副本服务器的数量。

在本组实验中,广域网的延迟设定为10 ms,带宽设定为1 Mb/s,副本服务器数量由3台增加到15台,其他配置不变。

W-Paxos,Mencius和EPaxos在不同副本服务器数量下的吞吐率如图5所示。


以看出,1×3实验组的吞吐率显著高于其他实验组,原因是这种情况下所有的副本服务器都在同一个数据中心内部。

随着副本服务器数量的增加,各个算法的吞吐率都有所下降。

但是对于相同配置的不同算法,W-Paxos比Mencius高12.37%~61.31%,比EPaxos高7.18%~39.1%。

由实验结果可知,W-Paxos改进后的通信模型可以更好地支持集群扩展。

5.4 负载
本组实验对W-Paxos和Mencius在广域网中的消息数量,以及领导者、代理服务器和非代理服务器处理的消息数量进行测试。

实验中设定的广域网延迟是10 ms,带宽是1 Mb/s,其他配置不变。

在本组实验中,W-Paxos生成602 794条广域网消息和4 917 889条局域网消息,相应的消息生成频率为每秒11 310.68条广域网消息和每秒92 278.07条局域网消息;Mencius生成1 808 910条广域网消息和3 112 467条局域网消息,消息生成率为每秒30 383.25条广域网消息和每秒52 278.37条局域网消息。

Mencius 的广域网消息数量是W-Paxos的3倍,而消息生成频率为W-Paxos的2.69倍。

W-Paxos的局域网消息数量是Mencius的1.58倍。

由此可见,W-Paxos是通过增加局域网消息数量来减少广域网消息数量。

在W-Paxos中,一台代理服务器平均处理925 598条消息,CPU平均负载为53%,每台非代理副本服务器平均处理457 315条消息,CPU负载约为41%。

虽然代理服务器的CPU负载要偏高,但仍在合理范围内,不会成为系统瓶颈。

为了比较领导者的负载,客户端给每个副本服务器发送100 000条请求,其他配置保持一致。

实验结果如图6所示,可以看出W-Paxos中的领导者的负载明显低于Mencius。

W-Paxos中利用代理服务器,可以显著改善领导者服务器的负载状况。

5.5 优化策略
本组实验在经典Paxos基础上实现了W-Paxos算法的基础版本和优化版本,并对
2个版本的性能进行比较。

优化后的版本称为W-Paxos_op。

实验系统包含3个数据中心(D1,D2和D3),每个数据中心包含4台副本服务器。

领导者是D1中的服务器。

局域网和广域网的延迟被设定为0.1 ms和10 ms,带宽分别为1 000 Mb/s 和1 Mb/s。

图7描述了W-Paxos和W-Paxos_op在不同局域网带宽下的吞吐率,结果表明带宽的改变对W-Paxos_op几乎没有影响,但是对于W-Paxos的影响显著。

随着带宽的降低,W-Paxos_op相比W-Paxos的优势越发明显。

当带宽为0.4 Mb/s 时,W-Paxos_op的吞吐率是W-Paxos的1.18倍;而当带宽为0.05 Mb/s时,此数值为9.22倍。

显然,优化后的W-Paxos算法在吞吐率方面对于恶劣的广域网环境的适应性更好,性能也更优。

图8是W-Paxos和W-Paxos_op在不同广域网带宽下的通信延迟的比较,结果表明带宽的变化对于W-Paxos_op的通信延迟几乎没有影响,而对W-Paxos的影响比较显著。

W-Paxos_op在同等条件下比W-Paxos的延迟要低,而随着带宽的减少,两者的差值逐渐增大,W-Paxos的延迟与W-Paxos_op的差值由20%增加到50%,这是因为W-Paxos_op中的代理服务器收到多数派的回复就会反馈给领导者,缩短了等待时间。

不难看出,优化方案在延迟方面较优化前也有明显的优势。

综上所述,当广域网带宽受到约束时,W-Paxos的吞吐率要高于Mencius,W-Paxos 在广域网中的扩展性也强于Mencius。

W-Paxos减少了领导者的负载,其中一部分由代理服务器分担。

除此之外,消息回复方面的优化也对算法性能提升起到较大作用。

本文提出一种改进的Paxos算法。

对Paxos的通信模型进行优化,通过设立代理节点这一角色减少广域网中的Paxos消息数量,从而实现算法在提交延迟、负载等方面的性能提升。

实验结果表明,改进算法在吞吐率、延迟、负载以及可扩展性等方面性能较原始算法都有显著提升。

下一步将研究提升Paxos算法的性能,使该算法
更好地适用于广域网环境。

编辑金胡考
Research on Consensus Algorithm in Low-bandwidth Wide Area Networks MA Wentao1,HU Chuang1,WANG Wenjie2,GONG Yili1
(1.School of Computer,Wuhan University,Wuhan 430072,China;
2.University of Michigan,Ann Arbor 48824,USA)
【Abstract】Paxos algorithm based on message passing mechanism incurs a large amount of communication during execution.When applied to Wide Area Networks(WAN) environment,it is vulnerable to the limit of bandwidth,which affects the efficiency of the algorithm.Aiming at this problem,this paper optimizes the communication model of Paxos and presents an improved algorithm,which is named W-Paxos.It sets a proxy node in each data center for forwarding,disposing and sending WAN messages to reduce the messages in WAN massively so as to avoid network congestion and increasing delay.Since W-Paxos only optimizes the communication model without changing other parts of the protocol,it is applicable to almost all Paxos-based protocols.Experimental results show that,compared with Mencius and EPaxos algorithms,W-Paxos generates fewer messages,therefore it can retard the workload of the consensus leaders,increase the throughtput and reduce the communication delay. 【Key words】consensus;Paxos algorithm;W-Paxos algorithm;distributed system;proxy
基金项目:国家自然科学基金资助项目(61100020);华为公司创新研究计划基金资助项目。

作者简介:马文韬(1989-),男,硕士,主研方向为网络通信、分布式计算;胡创,硕士;王文杰,博士;龚奕利(通讯作者),副教授、博士。

收稿日期:2015-06-25
修回日期:2015-09-17 E-mail:****************.cn
DOI:10.3969/j.issn.1000-3428.2016.09.017
【相关文献】
[1] 罗军舟,金嘉晖,宋爱波,等.云计算:体系架构与关键技术[J].通信学报,2011,32(7):3-21.
[2] 陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009,29(9):2562-2567.
[3] Lamport L.Paxos Made Simple[J].ACM SIGACT News,2001,32(4):18-25.
[4] Lamport L.The Part-time Parliament[J].ACM Tran-sactions on Computer Systems,1998,16(2):133-169.
[5] 许子灿,吴荣泉.基于消息传递的Paxos算法研究[J].计算机工程,2011,37(21):287-290.
[6] Rao J,Shekita E J,Tata ing Paxos to Build a Scalable,Consistent,and Highly Available Data-store[J].Proceedings of the VLDB Endowment,2011,4(4):243-254.
[7] Chandra T D,Griesemer R,Redstone J.Paxos Made Live:An Engineering Perspective[C]//Proceedings of the 26th Annual ACM Symposium on Principles of Distributed Computing.New York,USA:ACM Press,2007:398-407.
[8] Lamport L.Fast Paxos[J].Distributed Computing,2006,19(2):79-103.
[9] Lamport L,Massa M.Cheap Paxos[C]//Proceedings of 2004 International Conference on Dependable Systems and Networks.Washington D.C.,USA:IEEE Press,2004:307-314. [10] Mao Yanhua,Junqueira F P,Marzullo K.Mencius:Building Efficient Replicated State Machines for WANs[C]//Proceedings of the 8th Symposium on Operating Systems Design and Implementation.Berkeley,USA:USENIX Association,2008:369-384.
[11] 陈康,郑纬.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-1348.
[12] Burrows M.The Chubby Lock Service for Loosely-coupled Distributed
Systems[C]//Proceedings of the 7th Symposium on Operating Systems Design and Implementation.Berkeley,USA:USENIX Association,2006:335-350.
[13] Corbett J C,Dean J,Epstein M,et al.Spanner:Google’s Globally-distributed Database[J].ACM Transactions on Computer Systems,2013,31(3):1-22.
[14] Hunt P,Konar M,Junqueira F P,et al.Zookeeper:Waitfree Coordination for Internet-scale Systems[C]//Proceedings of 2010 USENIX Annual Technical
Conference.Berkeley,USA:USENIX Association,2010:9.
[15] 涂新莉,刘波,林伟伟.大数据研究综述[J].计算机应用研究,2014,31(6):1612-1623.
[16] Moraru I,Andersen D G,Kaminsky M.There is More Consensus in Egalitarian Parliaments[C]//Proceedings of the 24th ACM Symposium on Operating Systems Principles.New York,USA:ACM Press,2013:358-372.。

相关文档
最新文档