CN108170763B - 一种低延迟的分布式计算共识算法 - Google Patents
一种低延迟的分布式计算共识算法 Download PDFInfo
- Publication number
- CN108170763B CN108170763B CN201711414657.2A CN201711414657A CN108170763B CN 108170763 B CN108170763 B CN 108170763B CN 201711414657 A CN201711414657 A CN 201711414657A CN 108170763 B CN108170763 B CN 108170763B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- paxos
- epaxos
- copy
- copies
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种低延迟的分布式计算共识算法,主要解决在并发客户端之间的命令冲突率增大时,***响应延迟增加的问题。该算法将EPaxos算法和不受并发客户端命令冲突情况影响的Multi‑Paxos算法相结合,根据算法运行过程中的客户端负载情况、并发客户端命令冲突情况以及网络实时情况,每隔一段时间进行EPaxos算法和Multi‑Paxos算法***平均延迟的计算,根据计算结果,智能地转换到***平均延迟较小的算法模式。本发明算法具有更好的适应能力、更优的延迟性能、更高的综合效率,实现了在并发客户端之间的命令冲突率较大的情况下,较EPaxos算法能获得更低的***响应延迟;在客户端负载不均衡时,比Multi‑Paxos算法更能适应多样的客户端环境。
Description
技术领域
本发明属于分布式计算领域,涉及非拜占庭故障的异步分布式***环境下解决共识问题的算法。具体地说是一种低延迟的分布式计算共识算法,可用于分布式存储***,分布式应用程序协调服务等领域。
背景技术
分布式计算是一个古老而宽泛的话题,而近几年因为“大数据”概念的兴起,又焕发出了新的青春与活力。共识问题是分布式计算中最重要的问题之一,是许多商业分布式***的核心,它刻画了不同处理器之间的协调问题,即如何从互相冲突的输入值产生一致的输出值。现如今的许多基于分布式***的软件,如Hadoop,HBase,Spanner,Dynamo等,都需要解决共识问题。在非拜占庭故障的异步分布式***环境下解决共识问题,更加接近共识问题的现实环境,提出的解决方法也更具有普适性。对非拜占庭故障的异步分布式***环境下的共识问题进行研究,对于分布式计算、大数据的研究,有着重要的推动意义。
FLP不可能定理指出:在存在故障(即使只有一个进程故障)的异步***中,不存在用于解决共识问题的确定性算法。这说明,解决共识问题的算法必须在安全性(safety)和灵活性(liveness)之间取舍。Leslie Lamport提出的Multi-Paxos算法是确保安全性的共识算法中的经典。为了防止在并发情况下陷入活锁,Multi-Paxos算法需要选举一个领导者和并发客户端进行交流,接受并发客户端传递的命令。但是领导者的设置使得在广域网环境下的分布式***中,客户端和分布式***交互需要更大的延迟(和领导者不在同一局域网的客户端需要花费更多的时间和领导者进行通信)。当领导者所在局域网的网络延迟增加,将会影响到整个***的响应时间。针对此问题,许多算法对Multi-Paxos算法进行了改进,其中,EPaxos算法是近几年提出,影响较为深远的Multi-Paxos算法变种。EPaxos算法不选举特定的领导者,允许所有的副本接受客户端提出的命令。通过让客户端将命令发送给最近的副本,降低了广域网环境下***响应的延迟。但是EPaxos算法随着并发客户端之间的命令冲突率的增大,***的响应延迟也会增加。
发明内容
针对上述问题,本发明提出一种低延迟的分布式计算共识算法,以解决在并发客户端之间的命令冲突率增大时,***响应延迟增加的问题,能够在并发客户端之间的命令冲突率较大的情况下,较EPaxos算法获得更低的***响应延迟;在客户端负载不均衡时,比Multi-Paoxs算法更能适应多样的客户端环境。
实现本发明的关键技术是:在EPaxos算法的基础上,将EPaxos算法和不受并发客户端命令冲突影响的Multi-Paxos算法相结合,根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,进行***平均延迟的计算,通过每隔一段时间分别计算的EPaxos算法模式下和Multi-Paxos算法模式下的***平均延迟,智能地转换到***平均延迟较小的算法模式。
为实现上述目标,具体实现步骤如下:
(1)执行EPaxos算法模式;
(2)根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,每隔时间段ts计算EPaxos算法模式下***的平均延迟Lat1(EPaxos)以及估计Multi-Paxos算法模式下***的平均延迟Lat1(Multi-Paxos):
(2.1)计算Lat1(EPaxos):统计副本Ri(Ri表示第i个副本,其中i∈[1,N],N表示副本总数)处理的客户端提交的命令总数Ti,执行slow-path的命令数Ci,从客户端到副本Ri所需的时间tci,从副本Ri到所有副本所花时间中第k少的时间min_k{i}(k表示fast path中的法定人数),从副本Ri到所有副本所花时间中第p少的时间min_p{i}(p表示slow path中的法定人数,也为Multi-Paxos算法模式下的法定人数),则EPaxos算法模式下***的平均延迟为:
(2.2)估计Lat1(Multi-Paxos):分别估计各个副本Rr(r∈[1,N])为领导者时,Multi-Paxos算法模式下***的平均延迟(tir表示从副本Ri到副本Rr所需的时间):
取最小的Lat1(Multi-Paxos)r作为Multi-Paxos算法模式下***的平均延迟Lat1(Multi-Paxos),令领导者Rl为此时的Rr;
(3)比较Lat1(EPaxos)和Lat1(Multi-Paxos)的大小,若Lat1(Multi-Paxos)<Lat1(EPaxos),从EPaxos算法模式转换至Multi-Paxos算法模式,转至步骤(4),否则,转至步骤(1);
(4)执行Multi-Paxos算法模式(在Multi-Paxos算法模式下客户端将命令提交给最近的副本,副本再将命令传递给领导者);
(5)根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,每隔时间段ts计算Multi-Paxos算法模式下***的平均延迟Lat2(Multi-Paxos)以及估计EPaxos算法模式下***的平均延迟Lat2(EPaxos):
(5.1)计算Lat2(Multi-Paxos):统计副本Ri(i∈[1,N])传递的客户端提交的命令总数Ti,从客户端到副本Ri所需的时间tci,从副本Ri到领导者Rl所需的时间til,从领导者Rl到所有副本所花时间中第p少的时间min_p{l},则Multi-Paxos算法模式下***的平均延迟为:
(5.2)估计Lat2(EPaxos):统计从副本Ri(i∈[1,N])到所有副本所花时间中第k少的时间min_k{i},到所有副本所花时间中第p少的时间min_p{i},传递的命令中对各个关键字Km(m∈[1,M],M表示关键字总数)操作的命令数CKim,则在EPaxos算法模式下,含有最大CKim的副本Ri传递的关于关键字Km的命令中执行slow path的命令数Sim可近似为min{CKim,∑r∈[1,N],r!=iCKrm},其余副本Ri传递的关于关键字Km的命令中执行slow path的命令数Sim可近似为CKim,则对任意副本Ri,执行slow path的命令总数Ci可近似为∑mSim,故EPaxos算法模式下***的平均延迟可近似表示为:
(6)比较Lat2(EPaxos)和Lat2(Multi-Paxos)的大小,若Lat2(EPaxos)≤Lat2(Multi-Paxos),从Multi-Paxos算法模式转换至EPaxos算法模式,转至步骤(1),否则,转至步骤(4)。
本发明具有以下优点:
(1)本发明将***平均延迟作为评价算法性能的重要指标,综合考虑算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,进行***平均延迟的计算,使得算出的***平均延迟更具有动态性,更能反应算法运行时的实时情况,为之后的算法转换提供了更可靠的依据;
(2)本发明将EPaxos算法和Multi-Paxos算法相结合,综合两种算法的优点,更能适应复杂客户端环境的变化,发明实现了根据客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,选择使当前***平均延迟较小的算法执行,最优化算法的性能。
附图说明
图1是本发明算法的整体流程图;
图2是Multi-Paxos算法的流程图;
图3是EPaxos算法的流程图;
图4是在客户端负载均衡情况下,副本数为3时各个副本处的客户端感知到的延迟状况图;
图5是在客户端负载均衡情况下,副本数为5时各个副本处的客户端感知到的延迟状况图;
图6是在客户端负载不均衡情况下,副本数为5时俄勒冈(OR)和爱尔兰(EU)处的客户端感知到的延迟状况图;
具体实施方式
一、基础理论介绍
1.Multi-Paxos算法
Multi-Paxos算法的主要思想是让分布式***中的所有无故障副本以相同的顺序执行相同的命令,以此来实现安全性。在Multi-Paxos的所有副本中,存在着三种角色(agent):领导者(leader),接受者(acceptor),学习者(learner)。每种角色由某个进程执行。领导者可以提出(propose)命令,接受者选择(choose)单个命令,学习者学习选中(chosen)的命令。
图2表示Multi-Paxos算法的处理流程:客户端提交命令给领导者,领导者发送prepare消息,和接受者进行一轮信息交流,确保接受者不再接受之前的命令。对于所有的实例(实例由实例编号和命令组成,领导者把从客户端处收到的命令分配给尚未使用的最小实例编号的实例),领导者仅执行一轮prepare消息。接着,领导者发送accpet消息给接受者,请求接受者选择(choose)实例。当领导者收到大多数(F+1个,称F+1为法定人数,其中F表示***能容忍的副本最大故障数)接受者的选择(choose)回复时,领导者确认该实例被选中(chosen),回复客户端,并通知学习者学习该实例。
2.EPaxos算法
为了解决单领导者性能瓶颈问题,EPaxos算法不指定特定的领导者。一般情况下,客户端将命令发送给最近的副本。为了让所有副本的状态保持一致,EPaxos算法使用命令相关性的概念:如果存在一个命令集合C,对于相同的起始状态,串行执行C中的命令d,a,b和串行执行C中的命令d,b,a将产生不同的状态,那么我们说命令a和命令b是相关的,具有相关性;否则,是不相关的,无相关性。对于不相关的命令,副本能以任意的顺序执行这些命令;对于相关的命令,所有副本必须以相同的顺序执行相关的命令。
图3表示EPaxos算法的处理流程:当距离客户端最近的副本A收到来自客户端提交的命令,会进行一轮fast path。在fast path阶段,副本A将本地与客户端命令相关的命令一起发送给其余副本,其余副本返回本地与该客户端命令相关的命令。若副本A收到一定数量(个,称为fast-path中的法定人数,F为***能容忍的副本最大故障数)相同的回复,便回复客户端并通知其余副本该命令被选中。如果副本A收到了不相同的回复(相关命令之间可能会产生冲突,这时收到的回复会不相同),会再进行一轮slow-path。slow-path阶段,如果收到一定数量(F+1个,称为slow-path中的法定人数,F为***能容忍的副本最大故障数)的确定回复,副本A回复客户端并通知其余副本该命令被选中。
二、本发明一种低延迟的分布式计算共识算法
参照图1,本发明的具体实施步骤包括如下:
步骤1.执行EPaxos算法模式。本发明在EPaxos算法的基础上发展而来,发明初始执行算法模式为EPaxos算法模式。
步骤2.根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,每隔时间段ts(原则上,ts需大于客户端发送命令到收到回复的时间,在此基础上,ts越大,计算EPaxos算法和Multi-Paxos算法***平均延迟所耗费的副本计算能力以及网络带宽等资源越少,但算法的灵敏度越低;ts的选取可根据实际生产实践中可使用资源的多少以及对本发明算法的灵敏度需求决定,本发明算法实验中ts设置为15秒)统计EPaxos算法模式下的相关数据,计算EPaxos算法模式下***的平均延迟Lat1(EPaxos),估计Multi-Paxos算法模式下***的平均延迟Lat1(Multi-Paxos)。具体方法如下:
(2.1)计算Lat1(EPaxos):统计副本Ri(Ri表示第i个副本,其中i∈[1,N],N表示副本总数)处理的客户端提交的命令总数Ti,执行slow-path的命令数Ci,从客户端到副本Ri所需的时间tci,从副本Ri到所有副本所花时间中第k少的时间min_k{i}(k表示fast path中的法定人数),从副本Ri到所有副本所花时间中第p少的时间min_p{i}(p表示slow path中的法定人数,也为Multi-Paxos算法模式下的法定人数),则对于单个副本Ri,执行fast path的命令数为Ti-Ci,每个命令感知到的延迟为2tci+2min_k{i};执行slow path的命令数为Ci,每个命令感知到的延迟为2tci+2min_k{i}+2min_p{i}。故EPaxos算法模式下***的平均延迟为:
(2.2)估计Lat1(Multi-Paxos):分别估计各个副本Rr(r∈[1,N])为领导者时,Multi-Paxos算法模式下***的平均延迟(这里采用客户端将命令提交给最近的副本,副本再将命令传递给领导者的方式,其中,tir表示从副本Ri到副本Rr所需的时间):
取最小的Lat1(Multi-Paxos)r作为Multi-Paxos算法模式下***的平均延迟Lat1(Multi-Paxos),令领导者Rl为此时的Rr。
步骤3.比较Lat1(EPaxos)和Lat1(Multi-Paxos)的大小。若Lat1(Multi-Paxos)<Lat1(EPaxos),从EPaxos算法模式转换至Multi-Paxos算法模式,转至步骤4执行,否则,转至步骤1执行。从EPaxos算法模式转换至Multi-Paxos算法模式方法如下:
(3.1)算法转换的发起者给各个副本Ri(i∈[1,N])发送更改协议的通知并设置一个超时;
(3.2)各个副本Ri确认收到通知,发送确认消息以及已经开始处理的最大实例编号Ii给算法转换的发起者,进入转化状态(副本在转化状态时,不会分配新实例,即,对于收到的客户端命令,放入缓存,在非转化状态时再进行处理),并设置一个超时;
(3.3)若算法转换的发起者在超时之前收到所有副本的确认消息以及Ii,则对Ii进行统计,统计结果记为IMAX={Ii|i∈[1,N]},发送统计结果IMAX以及算法转换的执行命令给所有副本;否则,发送算法转换的取消命令给所有副本;
(3.4)若副本Ri在超时之前收到算法转换的执行命令以及IMAX,Ri执行各个副本Rr(r∈[1,N])所有提交的实例(各个副本Rr所有提交的实例中最大实例编号应为Ir(Ir∈IMAX),如果副本Ri的本地存储中缺少某一实例,则Ri需要询问其他副本,直至执行完各个副本Rr所有提交的实例),之后跳出转化状态,进入Multi-Paxos算法模式;否则,副本Ri跳出转化状态,返回EPaxos算法模式。
步骤4.执行Multi-Paxos算法模式。和Multi-Paxos算法客户端直接将命令提交给领导者不同,本发明在Multi-Paxos算法模式下采用客户端将命令提交给最近的副本,副本再将命令传递给领导者的方式。其余执行过程和Multi-Paxos算法相同。
步骤5.根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,每隔时间段ts统计Multi-Paxos算法模式下的相关数据,计算Multi-Paxos算法模式下***的平均延迟Lat2(Multi-Paxos),估计EPaxos算法模式下***的平均延迟Lat2(EPaxos)。具体方法如下:
(5.1)计算Lat2(Multi-Paxos):统计副本Ri(i∈[1,N])传递的客户端提交的命令总数Ti,从客户端到副本Ri所需的时间tci,从副本Ri到领导者Rl所需的时间til,从领导者Rl到所有副本所花时间中第p少的时间min_p{l},则Multi-Paxos算法模式下***的平均延迟为:
(5.2)估计Lat2(EPaxos):统计从副本Ri(i∈[1,N])到所有副本所花时间中第k少的时间min_k{i},到所有副本所花时间中第p少的时间min_p{i},传递的命令中对各个关键字Km(m∈[1,M],M表示关键字总数)操作的命令数CKim,则在EPaxos算法模式下,含有最大CKim的副本Ri传递的关于关键字Km的命令中执行slow path的命令数Sim可近似为min{CKim,∑r∈[1,N],r!=iCKrm},其余副本Ri传递的关于关键字Km的命令中执行slow path的命令数Sim可近似为CKim,则对任意副本Ri,执行slow path的命令总数Ci可近似为∑mSim。则在EPaxos算法模式下,对于单个副本Ri,执行fast path的命令数可近似为Ti-∑mSim,每个命令感知到的延迟为2tci+2min_k{i};执行slow path的命令数近似为∑mSim,每个命令感知到的延迟为2tci+2min_k{i}+2min_p{i}。故EPaxos算法模式下***的平均延迟可近似表示为:
步骤6.比较Lat2(EPaxos)和Lat2(Multi-Paxos)的大小。若Lat2(EPaxos)≤Lat2(Multi-Paxos),从Multi-Paxos算法模式转换至EPaxos算法模式,转至步骤1执行,否则,转至步骤4执行。从Multi-Paxos算法模式转换至EPaxos算法模式方法如下:
(6.1)算法转换的发起者给各个副本Ri(i∈[1,N])发送更改协议的通知并设置一个超时;
(6.2)各个副本Ri确认收到通知,发送确认消息给算法转换的发起者(其中,领导者Rl还需发送已经开始处理的最大实例编号Il),进入转化状态(副本在转化状态时,不会分配新实例,即,对于收到的客户端命令,放入缓存,在非转化状态时再进行处理),并设置一个超时;
(6.3)若算法转换的发起者在超时之前收到所有副本的确认消息以及Il,发送Il以及算法转换的执行命令给所有副本;否则,发送算法转换的取消命令给所有副本;
(6.4)若副本Ri在超时之前收到算法转换的执行命令以及Il,Ri执行所有提交的实例(所有提交的实例中最大实例编号应为Il,如果副本Ri的本地存储中缺少某一实例,则Ri需要询问其他副本,直至执行完所有提交的实例),之后跳出转化状态,进入EPaxos算法模式;否则,副本Ri跳出转化状态,返回Multi-Paxos算法模式。
本发明的效果可通过以下实验进一步说明。
1.实验配置及采用语言
本发明实验运行在亚马逊EC2平台上,采用实例配置如下:1个2.5GHz的vCPU,内存为1G,存储空间为8G,网络性能低到中等,64位ubuntu16.04操作***。当副本数为3时,3个副本部署在加利福尼亚北部(CA),弗吉尼亚北部(VA)和爱尔兰(EU);当副本数为5时,另外两个副本部署在俄勒冈(OR)和日本东京(JP)。Multi-Paxos算法模式下的领导者为加利福尼亚北部(CA)处的副本。所有副本实例上同时也设置了10个客户端,客户端发送命令时,收到前一条命令的回复之后才会发送后一条命令。当客户端负载均衡时,所有副本实例上的所有客户端同时发送相同数量的命令;当客户端负载不均衡时,俄勒冈(OR)和爱尔兰(EU)处的副本实例上的所有客户端同时发送相同数量的命令。实验采用节俭模式:在节俭模式下,副本将消息发送给一定数量(法定人数)的副本,而不是全部副本。本发明实验采用go语言(1.6.2版本)实现。
2.实验内容及结果分析
实验1 均衡负载下的延迟
图4是在客户端负载均衡情况下,副本数为3时各个副本处的客户端感知到的延迟状况图。此时EPaxos算法模式下***的平均延迟要小于Multi-Paxos算法模式下的平均延迟,本发明一直执行EPaxos算法模式,在各个节点处客户端感知到的延迟和EPaxos客户端感知到的延迟大致相同。
图5是在客户端负载均衡情况下,副本数为5时各个副本处的客户端感知到的延迟状况图。在副本数大于3时,当命令之间无相关性(0%)时,EPaxos算法模式下***的平均延迟要小于Multi-Paxos算法模式下的平均延迟,本发明算法一直执行EPaxos算法模式,在各个节点处客户端感知到的延迟和EPaxos算法客户端感知到的延迟大致相同;当命令之间相关性较大(75%和100%)时,并发客户端之间的命令产生冲突,EPaxos算法模式下***平均延迟增大,本发明算法根据EPaxos算法模式下和Multi-Paxos算法模式下***的平均延迟,选择平均延迟较小的算法作为执行算法。在图5中各个副本处,客户端感知到的延迟的中位数要更接近于Multi-Paxos算法的中位数(比EPaxos算法的延迟的中位数要小,因为大多数时间Multi-Paxos算法模式下的***平均延迟要低于EPaxos算法模式下的***平均延迟,本发明方法智能地选择Multi-Paxos算法作为执行算法)。由于执行了一段时间的EPaxos算法,本发明算法客户端感知到的延迟的99%ile要更接近但小于EPaxos算法的99%ile。
实验2 不均衡负载下的延迟
图6是在客户端负载不均衡情况下,副本数为5时俄勒冈(OR)和爱尔兰(EU)处的客户端感知到的延迟状况图。此时只有俄勒冈(OR)和爱尔兰(EU)处的副本实例上的客户端提交命令。当命令之间无相关性(0%)时,EPaxos算法模式下***的平均延迟要小于Multi-Paxos算法模式下的平均延迟,本发明算法一直执行EPaxos算法模式,在OR和EU处客户端感知到的延迟和EPaxos算法客户端感知到的延迟大致相同;当命令之间相关性较大(75%和100%)时,并发客户端之间的命令产生冲突,EPaxos算法模式下***平均延迟增大,本发明算法根据EPaxos算法模式下和Multi-Paxos算法模式下***的平均延迟,选择平均延迟较小的算法作为执行算法,若选择Multi-Paxos算法作为执行算法,本发明算法将智能地选择使Multi-Paxos算法***平均延迟最小的副本作为领导者。故在图6中OR和EU处,客户端感知到的延迟的中位数比Multi-Paxos算法的中位数要小(Multi-Paxos算法的领导者一直设置在CA处,此时,本发明算法考虑客户端负载情况,网络的实时情况,选择OR处的副本作为领导者,***的平均延迟比领导者在CA处***的平均延迟更小,更能适应多样的客户端环境)。由于执行了一段时间的EPaxos算法,本发明算法客户端感知到的延迟的99%ile要更接近但小于EPaxos算法的99%ile。
从实验结果图可以明显看出,本发明算法在并发客户端之间的命令冲突率较大的情况下,较EPaxos算法获得更低的***响应延迟;在客户端负载不均衡时,比Multi-Paoxs算法更能适应多样的客户端环境。
Claims (3)
1.一种低延迟的分布式计算共识算法,包括:
(1)执行EPaxos算法模式;
(2)根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,每隔时间段ts计算EPaxos算法模式下***的平均延迟Lat1(EPaxos)以及估计Multi-Paxos算法模式下***的平均延迟Lat1(Multi-Paxos),其中ts取15秒:
(2.1)计算Lat1(EPaxos):统计副本Ri处理的客户端提交的命令总数Ti,执行slow-path的命令数Ci,从客户端到副本Ri所需的时间tci,从副本Ri到所有副本所花时间中第k少的时间min_k{i},从副本Ri到所有副本所花时间中第p少的时间min_p{i},则EPaxos算法模式下***的平均延迟为:
其中,Ri表示第i个副本,i∈[1,N],N表示副本总数;k表示fast path中的法定人数;p表示slow path中的法定人数,也为Multi-Paxos算法模式下的法定人数;
(2.2)估计Lat1(Multi-Paxos):分别估计各个副本Rr为领导者时,Multi-Paxos算法模式下***的平均延迟:
取最小的Lat1(Multi-Paxos)r作为Multi-Paxos算法模式下***的平均延迟Lat1(Multi-Paxos),令领导者Rl为此时的Rr;
其中,r∈[1,N];tir表示从副本Ri到副本Rr所需的时间;
(3)比较Lat1(EPaxos)和Lat1(Multi-Paxos)的大小,若Lat1(Multi-Paxos)<Lat1(EPaxos),从EPaxos算法模式转换至Multi-Paxos算法模式,转至步骤(4),否则,转至步骤(1);
(4)执行Multi-Paxos算法模式,即在Multi-Paxos算法模式下客户端将命令提交给最近的副本,副本再将命令传递给领导者;
(5)根据算法运行过程中客户端的负载情况、并发客户端的命令冲突情况以及网络的实时情况,每隔时间段ts计算Multi-Paxos算法模式下***的平均延迟Lat2(Multi-Paxos)以及估计EPaxos算法模式下***的平均延迟Lat2(EPaxos):
(5.1)计算Lat2(Multi-Paxos):统计副本Ri传递的客户端提交的命令总数Ti,从客户端到副本Ri所需的时间tci,从副本Ri到领导者Rl所需的时间til,从领导者Rl到所有副本所花时间中第p少的时间min_p{l},则Multi-Paxos算法模式下***的平均延迟为:
(5.2)估计Lat2(EPaxos):统计从副本Ri到所有副本所花时间中第k少的时间min_k{i},到所有副本所花时间中第p少的时间min_p{i},传递的命令中对各个关键字Km操作的命令数CKim,则在EPaxos算法模式下,含有最大CKim的副本Ri传递的关于关键字Km的命令中执行slow path的命令数Sim近似为min{SKim,∑r∈[1,N],r!=iCKrm},其余副本Ri传递的关于关键字Km的命令中执行slow path的命令数Sim近似为CKim,则对任意副本Ri,执行slow path的命令总数Ci近似为∑mSim,故EPaxos算法模式下***的平均延迟近似表示为:
其中,m∈[1,M],M表示关键字总数;
(6)比较Lat2(EPaxos)和Lat2(Multi-Paxos)的大小,若Lat2(EPaxos)≤Lat2(Multi-Paxos),从Multi-Paxos算法模式转换至EPaxos算法模式,转至步骤(1),否则,转至步骤(4)。
2.根据权利要求书1所述的一种低延迟的分布式计算共识算法,其中,步骤(3)所述的从EPaxos算法模式转换至Multi-Paxos算法模式,按如下过程进行:
(2.1)算法转换的发起者给各个副本Ri发送更改协议的通知并设置一个超时;
(2.2)各个副本Ri确认收到通知,发送确认消息以及已经开始处理的最大实例编号Ii给算法转换的发起者,进入转化状态,并设置一个超时;副本在转化状态时,不会分配新实例,即,对于收到的客户端命令,放入缓存,在非转化状态时再进行处理;
(2.3)若算法转换的发起者在超时之前收到所有副本的确认消息以及Ii,则对Ii进行统计,统计结果记为IMAX={Ii|i∈[1,N]},发送统计结果IMAX以及算法转换的执行命令给所有副本;否则,发送算法转换的取消命令给所有副本;
(2.4)若副本Ri在超时之前收到算法转换的执行命令以及IMAX,Ri执行各个副本Rr所有提交的实例,其中各个副本Rr所有提交的实例中最大实例编号应为Ir,Ir∈IMAX,如果副本Ri的本地存储中缺少某一实例,则Ri询问其他副本,直至执行完各个副本Rr所有提交的实例,之后跳出转化状态,进入Multi-Paxos算法模式;否则,副本Ri跳出转化状态,返回EPaxos算法模式。
3.根据权利要求书1所述的一种低延迟的分布式计算共识算法,其中,步骤(6)所述的从Multi-Paxos算法模式转换至EPaxos算法模式,按如下过程进行:
(3.1)算法转换的发起者给各个副本Ri发送更改协议的通知并设置一个超时;
(3.2)各个副本Ri确认收到通知,发送确认消息给算法转换的发起者;其中,领导者Rl还需发送已经开始处理的最大实例编号Il,进入转化状态,并设置一个超时;
(3.3)若算法转换的发起者在超时之前收到所有副本的确认消息以及Ii,发送Il以及算法转换的执行命令给所有副本;否则,发送算法转换的取消命令给所有副本;
(3.4)若副本Ri在超时之前收到算法转换的执行命令以及Il,Ri执行所有提交的实例,其中所有提交的实例中最大实例编号应为Il,如果副本Ri的本地存储中缺少某一实例,则Ri询问其他副本,直至执行完所有提交的实例,之后跳出转化状态,进入EPaxos算法模式;否则,副本Ri跳出转化状态,返回Multi-Paxos算法模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711414657.2A CN108170763B (zh) | 2017-12-25 | 2017-12-25 | 一种低延迟的分布式计算共识算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711414657.2A CN108170763B (zh) | 2017-12-25 | 2017-12-25 | 一种低延迟的分布式计算共识算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170763A CN108170763A (zh) | 2018-06-15 |
CN108170763B true CN108170763B (zh) | 2021-07-27 |
Family
ID=62523993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711414657.2A Active CN108170763B (zh) | 2017-12-25 | 2017-12-25 | 一种低延迟的分布式计算共识算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170763B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542353B (zh) * | 2018-11-23 | 2022-04-01 | 哈尔滨工业大学(深圳) | 一种面向广域分布式存储***的一致性算法 |
CN109947375B (zh) * | 2019-04-04 | 2021-05-14 | 江南大学 | 一种基于分区处理共识算法的分布式存储***优化方法 |
CN110138863B (zh) * | 2019-05-16 | 2021-11-02 | 哈尔滨工业大学(深圳) | 基于Multi-Paxos分组的自适应一致性协议优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079663A (zh) * | 2014-07-15 | 2014-10-01 | 深圳市风云实业有限公司 | 分布式实时同步网络***及其通告数据的方法 |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式***及分布式***中配置信息的更新方法 |
CN105512266A (zh) * | 2015-12-03 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 一种实现分布式数据库操作一致性的方法及装置 |
CN106875165A (zh) * | 2017-02-22 | 2017-06-20 | 中山大学 | 一种利用软件定义网络优化的共识算法 |
-
2017
- 2017-12-25 CN CN201711414657.2A patent/CN108170763B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式***及分布式***中配置信息的更新方法 |
CN104079663A (zh) * | 2014-07-15 | 2014-10-01 | 深圳市风云实业有限公司 | 分布式实时同步网络***及其通告数据的方法 |
CN105512266A (zh) * | 2015-12-03 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 一种实现分布式数据库操作一致性的方法及装置 |
CN106875165A (zh) * | 2017-02-22 | 2017-06-20 | 中山大学 | 一种利用软件定义网络优化的共识算法 |
Non-Patent Citations (1)
Title |
---|
《CC-Paxos:整合广域存储***的一致性和可靠性》;胡创等;《计算机工程与设计》;20170331;第38卷(第3期);第626-632页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108170763A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170763B (zh) | 一种低延迟的分布式计算共识算法 | |
US8151062B2 (en) | Consistency models in a distributed store | |
US9807152B2 (en) | Distributed processing device and distributed processing system as well as distributed processing method | |
CN113835899B (zh) | 针对分布式图学习的数据融合方法及装置 | |
Gagné et al. | Distributed beagle: An environment for parallel and distributed evolutionary computations | |
CN113434282A (zh) | 流计算任务的发布、输出控制方法及装置 | |
CN111506421A (zh) | 一种实现Redis集群的可用性方法 | |
CN110490316B (zh) | 基于神经网络模型训练***的训练处理方法、训练*** | |
US20180262402A1 (en) | Communication efficient sparse-reduce in distributed machine learning | |
CN108462737B (zh) | 基于批处理和流水线的分层数据一致性协议优化方法 | |
Zhang et al. | Txallo: Dynamic transaction allocation in sharded blockchain systems | |
CN111611068B (zh) | 分布式***中的数据写方法、服务器及客户端 | |
Marozzo et al. | A framework for managing mapreduce applications in dynamic distributed environments | |
Xiang et al. | A fault-tolerant and cost-efficient workflow scheduling approach based on deep reinforcement learning for IT operation and maintenance | |
CN114090218A (zh) | 边缘计算环境下动态任务复制方法、设备和*** | |
Stahl et al. | Dynamic fault-tolerance and mobility provisioning for services on mobile cloud platforms | |
CN115883315B (zh) | 区块链网络中节点加入方法、装置、电子设备和存储介质 | |
Shaleva et al. | Efficient gossip-based protocol in the neo blockchain network | |
Lu et al. | A fault tolerant election-based deadlock detection algorithm in distributed systems | |
Dharmapala et al. | Peer-to-peer distributed computing framework | |
CN116915584B (zh) | 一种在网计算异常处理方法及装置 | |
Bona et al. | Hyperbone: A scalable overlay network based on a virtual hypercube | |
Erciyes et al. | A cluster-based dynamic load balancing middleware protocol for grids | |
CN117909418B (zh) | 深度学***台 | |
US10813004B2 (en) | Control information exchange system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |