CN101572723B - 分布式系统有限状态机扩展模型及检查点准同步方法 - Google Patents
分布式系统有限状态机扩展模型及检查点准同步方法 Download PDFInfo
- Publication number
- CN101572723B CN101572723B CN2009100159479A CN200910015947A CN101572723B CN 101572723 B CN101572723 B CN 101572723B CN 2009100159479 A CN2009100159479 A CN 2009100159479A CN 200910015947 A CN200910015947 A CN 200910015947A CN 101572723 B CN101572723 B CN 101572723B
- Authority
- CN
- China
- Prior art keywords
- message
- state
- channel
- mrow
- sending
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 436
- 230000008569 process Effects 0.000 claims abstract description 407
- 238000012795 verification Methods 0.000 claims abstract description 8
- 239000013598 vector Substances 0.000 claims description 55
- 230000026676 system process Effects 0.000 claims description 8
- 230000007704 transition Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 238000013178 mathematical model Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式系统有限状态机扩展模型及检查点准同步方法,它解决了分布式系统检查点建立过程其精确性和稳定性较差问题。其扩展模型为:它将分布式系统视为若干个进程的集合,有限状态机扩展模型则是由这些有限个进程组成的集合:P={P1,P2,…P0},Pi表示进程,i=1,2,…n;n≥2。准同步方法分为二个阶段,第一阶段由协调进程采集各进程信道信息,判别当前分布式系统状态是否是全局一致性状态,若是则各进程分别保存各自状态,算法结束;第二阶段为核实阶段,若不是一致性状态则确定丢失报文的进程,并由协调进程通知丢失报文的发送进程重发所失报文直到所有报文均被接收或由于超时所有进程非正常退出。
Description
技术领域
本发明涉及分布式系统容错方法,尤其是涉及一种分布式系统有限状态机扩展模型及检查点准同步方法。
背景技术
在应用层分布式系统可视为由若干个既各自独立又进行复杂交互的进程组成,此类进程相互协作共同完成一任务、通过报文交换完成进程间的通信进而实现系统资源的共享。分布式系统的常见故障主要有:崩溃性故障、遗漏性故障和时序故障、响应故障和随意性故障等。故障处理方法有基于硬件和软件的两种方案,软件方案主要有主动复制和被动复制。被动复制可采用前向恢复和后向恢复两种方法:前向恢复是假定可准确得到故障的性质并可排除此类故障从而使系统继续向前执行,前向恢复系统运行效率高但通常很难实现;后向恢复适用于系统故障无法预知和排除的情况,因此需定时存储系统的状态,一旦出现故障系统可恢复到先前状态执行。
后向恢复主要涉及全局一致分布式系统状态的建立、存储和更新,其方法主要有同步检查点算法和异步检查点算法。所谓检查点是指进程执行过程中的某些点(进程的状态)。由没有丢失报文和孤儿报文的诸进程状信道状态和其进程内部状态构成的分布式系统状态称之为全局一致性状态或一致性检查点。同步检查点算法在一致性检查点建立过程中,诸进程协调各自局部检查点建立行为,以确保由诸进程局部检查点组成的系统全局检查点是一个一致性检查点。异步检查点算法在检查点建立过程中,诸进程无需协商独自建立自己的局部检查点,然而在恢复过程中需采用复杂算法恢复到一个系统一致性检查点。同步和异步检查点算法的关键是一致性检查点的建立,即满足所有报文均被接收的进程状态的获取,而无丢失报文和孤儿报文则是一致性检查点建立需满足的充分条件,然而上述算法均未对进程及其信道的输入输出特性进行精确的数学描述,丢失报文进程的判定缺乏统一准则,致使算法的精确性稳定性受到影响。
发明内容
本发明的目的就是针对分布式系统全局一致性检查点的建立过程中的精确性和稳定性较差问题,提供一种分布式系统有限状态机扩展模型及检查点准同步方法,它通过对分布式系统输入输出特性的精确数学描述,建立具有容错信息的系统数学模型,进而导出一致性检查点的判定式和信道输入输出特性关系式,并提供一种基于具有容错信息分布式系统数学模型的一致性检查点建立方法,从根本上解决算法的精确性和稳定性问题。
为实现上述目的,本发明采用如下技术方案:
一种分布式系统有限状态机扩展模型,它将分布式系统视为若干个进程的集合,有限状态机扩展模型则是由这些有限个进程组成的集合:
P={P1,P2,…Pn},Pi表示进程,i=1,2,3…n;n≥2。
Pi={I,O,SP,Q,F},其中:
a.I=Ein×Eout是分布式系统进程输入事件集合,为内部输入事件集Ein与外部输入事件集Eout的笛卡积;
其中,Ein={eik|k=1,2…m},eik为分布式系统的内部输入事件;i表示输入事件,k为内部输入事件序号,m为自然数。
Eout={eok|k=1,2…n},eok为分布式系统的外部输入事件;o表示输出事件,k为外部输入事件序号,n为自然数。
b.O=Oin×Oout是分布式系统进程输出事件的集合,为对内输出事件集Oin与对外输出事件集Oout的笛卡积,
其中,Oin={oik|k=1,2…l},oik为分布式系统的对内输出事件;i表示对内输出,
k为对内输出事件序号。
Oout={ook|k=1,2…w},ook为分布式系统的对外输出事件;下标o表示对外输出,
k为对外输出事件序号。
c.SP=S×K×M×T×U是分布式系统进程状态的集合,为进程内部状态集S、信道输入状态集K、信道输出状态集M、改进的向量逻辑时钟集T和发送向量集U的笛卡积;
其中,
S={Sm|m=1,2,…k}为进程内部状态集合,Sm是进程的内部状态,内部状态记忆了内部输入事件,m表示内部状态序号,k为自然数。
K={Kt|t=1,2…r}为信道输入状态集合,Kt是信道的输入状态,其记忆了信道所接收报文的信息,t表示信道输入状态序号,r为自然数。
Kt可进一步描述为:
Kt={Ktk|k=1,2,…w},Ktk={Ftk,Btk};Ktk表示进程所发送某份报文的信息,Ftk为发送此报文进程的标识,Btk是报文的标识,Ftk和Btk均来自于其他报文发送进程,t表示信道输入状态序号,k为进程所接收报文序号,w为自然数。
M={Mw|w=1,2…l}为信道输出状态集合,Mw是信道的输出状态其记忆了信道所发送报文的信息,w为信道输出状态序号,l为自然数。
Mw可进一步描述为:
Mw={{Fwk,Bwk}|k=1,2,…z}
其中{Fwk,Bwk}表示进程所发送某份报文的信息,Fwk是发送进程的标识,Bwk是报文的标识;w为信道输出状态序号,k表示发送报文序号,z为自然数。
T={Ti (k)|k=1,2…l}为进程Pi信道改进的向量逻辑时钟集合,Ti (k)是进程Pi信道的向量逻辑时钟,k表示进程的状态时间变量,l为自然数,i表示进程Pi的序号。
Ti (k)=(Ti1 (k),Ti2 (k)…Tin (k))
其中Tii (k)表示进程pi在当前信道状态时间k内发送报文的数目,其初值是零,每发送一份报文其值加一;Tij (k)(i≠j,j=1,2…n)表示进程pi在当前信道状态时间内所接收的进程pj的报文的数目;i为进程pi的序号,j为进程pj的序号,k是进程状态时间变量。
U={Ui (k)|k=1,2…w}为进程Pi的发送向量集合,Ui (k)为进程Pi的发送向量,k是进程状态时间变量,i为进程Pi序号,k为进程状态时间变量,w为自然数。
Ui (k)=(Ui1 (k),Ui2 (k)…Uin (k))
其中,若i≠j,则Uij (k)为进程Pi发送至进程Pj的报文数目;若i=j,则Uij (k)=0;i表示进程Pi的序号,j表示进程Pj的序号,k为进程状态时间变量。
d.Q=I×SP->O,是进程的输出函数,
e.F=I×SP->SP,是进程状态转移函数。
一种基于分布式系统有限状态机扩展模型的检查点准同步方法,它的步骤为:
(1)协调进程
a.向所有进程发出检查点更新报文NB;
b.判断检查点建立过程是否超时,若超时则发送超时报文FB至普通进程并退出检查点建立过程。
c.等待接收各进程的信道信息报文SB。
d.判断是否收到所有进程的信息报文,若未收到转至b,若收到转至e。
e.核实各进程收发报文数量:
若 i=1,2…n,其中,Tii (k)表示进程pi所发送报文数目,Tji (k)表示进程pj所接收进程pi发送的报文数目,n为自然数;则向所有进程发送结束报 文EB,通知其退出检查点建立过程;此后协调进程亦退出检查点建立过程。
f.若 i=1,2…n,其中,Tii (k)表示进程pi所发送报文数目,Tji (k)表示进程pj所接收进程pi发送的报文数目,n为自然数;则进入检查点建立、更新的第二个阶段,找出所有丢失报文的发送进程pi和接收进程pj,并通知发送进程pi重发所失报文。
比较Tji (k)和Uij (k),其中i=1,2,…n,j=1,2…n,i≠j,Tji (k)表示进程pj所接收的pi发送报文数目,Uij (k)表示进程pi发送至pj报文数目。若Tji≠Uij,表明pi进程发送至pj进程的报文丢失,则比较pi进程信道输出状态和pj进程信道输入状态,找出所丢失报文的标识,继而向进程pi发送带有接收进程标识pj的核实报文CB,通知pi进程向pj进程重发所丢失报文。
g.在限定时间内接收普通进程的信息报文SB。
h.判断检查点建立过程是否超时,若超时则发送超时报文FB至普通进程并退出检查点建立过程。若未超时进入步骤e。
(2)普通进程pi
(a)接收报文
(b)若是建立更新报文转入C。若是数据报文,则更新信道输入状态变量Kt、信道输出状态变量Mw、向量逻辑时钟Ti (k)和发送向量Ui (k),而后转至a。
(c)停止发送数据报文,延迟一段时间后发送信息报文SB至协调进程。
(d)接收报文。
(e)若是结束报文EB保存进程内部状态信息,清空信道状态变量Kt、Mw,清除向量逻辑时钟Ti(k)和发送向量Ui(k),而后退出检查点建立更新过程。
(f)若是超时报文,退出检查点建立更新过程。
(g)若是核实报文,向进程pj重发丢失报文
(h)若是数据报文,更新向量逻辑时间Ti(k)和发送向量Ui(k),向协调进程重发信道信息报文SB,转至d。若是非数据报文,直接转至d。
本发明的有益效果是:通过对分布式系统输入输出特性的精确数学描述,建立具有容错信息的系统数学模型,进而导出一致性检查点的判定式和信道输入输出特性关系式,并提供一种基于具有容错信息分布式系统数学模型的一致性检查点建立方法,从根本上解决算法的精确性和稳定性问题。
附图说明
图1为进程P1状态迁移图;
图2为星型节点拓扑图;
图3为总线型节点拓扑图;
图4为环型节点拓扑图;
图5为协调进程流程图;
图6为普通进程流程图;
图7为更新报文NB结构图;
图8为超时报文FB结构图;
图9为结束报文EB结构图;
图10为核实报文CB结构图;
图11为信道信息报文SB结构图;
图12为数据报文结构图。
具体实施方式
下面结合实施例对本发明作进一步说明。
在工程科学如计算机科学中,凡是一种情况或一种活动的发生都可称作一个事件,为此将分布式系统视为事件系统,即在事件的驱动下系统发生状态迁移并产生相应的操作。
根据事件对分布式系统的影响,可将事件分为输入和输出两种类型:
1、输入事件,来自进程内部或外部输入操作所对应的事件。分布式系统的输入事件或来自于进程自身或来自于进程外部环境,如其它进程;此类事件不仅影响进程自身的状态迁移,而且有可能影响其他进程的状态变化。
输入事件按其的来源进一步分为:
(1)内部输入事件,是由于时钟的滴答所引起的进程的一条计算机指令或一段程序的执行等事件。内部输入事件源于进程所处节点计算机的系统时钟,并引起进程的内部状态迁移。显然,内部输入事件对应于外部不可见的进程内部操作和进程内部状态的迁移,是引起系统内部运动的主要因素。
(2)外部输入事件,此类事件来自于进程外部或系统的其他进程,如进程的报文发送而导致其他进程的报文接收事件。此类事件主要引起进程通信信道状态的变化。
2、输出事件,在输入事件的作用下进程状态迁移并产生的输出事件。
输出事件按其作用的对象分,可分为:
(1)对内输出事件,此类事件在进程内部状态迁移时出现且仅作用于此进程或进程所在计算机环境。如,引起变量值的更新、外设的动作等。
(2)对外输出事件,此类事件作用于其它进程,体现了进程对分布式计算环境的影响。典型的对外输出事件,如进程的报文发送事件,此类事件作为其他进程的外部输入事件直接影响其通信信道的状态。
分布式系统有限状态机扩展模型及其准同步方法:
一个系统被定义为一组元素的集合,为了实现某些目标这些元素以特定规则相互作用和相互关联而集合在一起,从分布式应用和资源共享的角度,分布式系统可定义为若干个进程的集合。
分布式系统有限状态机扩展模型是由有限个进程组成的集合:
P={P1,P2,…Pn},Pi表示进程,i=1,2,3…n;n≥2。
Pi={I,O,SP,Q,F},其中:
a.I=Ein×Eout是分布式系统进程输入事件集合,为内部输入事件集Ein与外部输入事件
集Eout的笛卡积。其中,Ein={eik|k=1,2…m},eik为分布式系统的内部输入事件;Eout={eok|k=1,2…n},eok为分布式系统的外部输入事件。
b.O=Oin×Oout是分布式系统进程输出事件的集合,为对内输出事件集Oin与对外输出事件集Oout的笛卡积。其中,Oin={oik|k=1,2…l},oik为分布式系统的对内输出事件;Oout={ook|k=1,2…w},ook为分布式系统的对外输出事件;
c.SP=S×K×M×T×U是分布式系统进程状态的集合,为进程内部状态集S、信道输入状态集K、信道输出状态集M、改进的向量逻辑时钟集T和发送向量U的笛卡积。
其中,S={Sm|m=1,2,…k}为进程内部状态集合,Sm是进程的内部状态。内部状态记忆了内部输入事件。
K={Kt|t=1,2…r}为信道输入状态集合,Kt是信道的输入状态,其记忆了信道所接收报文的信息,t表示信道输入状态序号,r为自然数;Kt可进一步描述为:
Kt={{Ftk,Btk}|k=1,2,…w},其中{Ftk,Btk}表示进程所接收某份报文的信息,Ftk为发送此报文进程的标识,Btk是报文的标识,Ftk和Btk均来自于其他报文发送进程,t表示信道输入状态序号,k为进程所接收报文序号,w为自然数;
M={Mw|w=1,2…l}为信道输出状态集合,Mw是信道的输出状态其记忆了信道所发送报文的信息,w为信道输出状态序号,l为自然数。
Mw可进一步描述为:
Mw={{Fwk,Bwk}|k=1,2,…z},其中{Fwk,Bwk}表示进程所发送某份报文的信息,Fwk是发送进程的标识,Bwk是报文的标识;w为信道输出状态序号,k表示发送报文序号,z为自然数。
T={Ti (k)|k=1,2…l}为进程Pi信道改进的向量逻辑时钟集合,Ti (k)是进程Pi信道的向量逻辑时钟,k是进程的状态时间变量。Ti (k)=(Ti1 (k),Ti2 (k)…Tin (k)),其中Tii (k)表示进程pk在当前信道状态时间内发送报文的数目,其初值是零,每发送一份报文其值加一;Tij (k)(i≠j)表示进程pi在当前信道状态时间内所接收的进程pj的报文的数目。
U={Ui (k)|k=1,2…w}为进程Pi的发送向量集合,Ui (k)为进程Pi的发送向量,k是进程的状态时间变量。
Ui (k)=(Ui1 (k),Ui2 (k)…Uin (k))其中,若i≠j,则Uij (k)为进程Pi发送至进程Pj的报文数目;若i=j,则Uij (k)=0。
d.Q=I×SP->O,是进程的输出函数。
e.F=I×SP->SP,是进程状态转移函数。
实例:
假设分布式系统由进程P1、P2和P3组成,简单起见设每个进程内部状态时间内仅发送或接收一份报文,o1、o2和o3表示进程P1对内输出事件,e1、e2和e3表示进程P1的内部输入事件,e1′表示进程P1外部输入事件(进程P2发送报文至P1),o1′表示P1的对外输出事件(P1发送报文至P3),Ф表示进程P1外部输入和对外输出的空事件,S1、S2和S3表示进程P1的内部状态,K1和K2表示进程P1信道的输入状态,M1和M2表示进程P1信道的输出状态,在系统内部输入事件和外部输入事件的作用下进程P1的状态迁移图如图1所示。
在内部输入事件e1的作用下,P1内部状态为S1,信道输入和输出状态分别为K1和M1,向量时钟为[0,0,0],发送向量为{0,0,0}。在内部输入事件e2的作用下,P1内部状态变为S2,在外部输入事件e1′作用下信道输入状态变为K2,向量时钟变为[0,1,0],发送向量仍为{0,0,0}。在内部输入事件e3的作用下,P1内部状态变为S3,由于产生了对外输出事件o1′信道的输出状态变为M2,向量时钟变为[1,1,0],发送向量变为{0,0,1}。
全局一致性状态及丢失报文之进程判定:
设分布式系统的进程为:p1、p2、p3、…pn,与其对应的向量时钟为:T1 (k)、T2 (k)、T3 (k)…Tn (k)。
令
上式矩阵的主对角元素Tii (k)对应于进程pi所发送报文数目,Tij (k)(i≠j)对应于进程pi所接收pj进程的报文数目。
定理1,分布式系统的全局一致性状态充分条件
若上式所对应矩阵主对角线的所有元素Tii与其对应的第i列的元素的代数和都相等,即 i=1,2…n (2)
则所有进程所发送的每份报文必定都被接收,即此刻的分布式系统的状态是一个全局一 致性状态。
证:因为Tii (k)表示pi进程发送报文数目,Tji (k)(j≠i)表示进程pj所接收pi进程发送的报文数目,(2)式表明任一进程pi所发送的报文都被其他进程接收;所以所有进程所发送的报文必然都被接收,此刻的分布式系统状态必然是一个全局一致性状态。
设分布式系统的进程p1、p2、p3、…pn对应的发送向量为:U1 (k)、U2 (k)、U3 (k)…Un (k)。
令
定理2,报文发送接收无遗漏充分条件
若Tji (k)=Uij (k)(j≠i),则进程pj所接收pi进程的报文数目与进程pi发送至进程pj的报文数目相等,即进程pi发送至进程pj的报文无遗漏。
证:因为Tji (k)表示进程pj所接收pi进程的报文数目,Uij (k)表示进程pi发送至进程pj的报文数目,所以由题设条件可知结论成立。
定理3,判定丢失报文发送接收进程充分条件
若Tji (k)≠Uij (k),则表明pi发送至进程pj的报文至少有一份未被接收,且丢失报文的发送进程是pi,接受进程是pj。
证:由所设条件可知,进程pi发送至进程pj的报文数目与pj所接收pi进程的报文数目不等,必然有Uij (k)>Tji (k),即pi发送至进程pj的报文至少有一份未被接收,由此可得丢失报文的发送进程是pi、接收进程是pj。
基于有限状态机扩展模型的检查点建立准同步方法:
假设:
1、分布式系统的拓扑结构可为星型(图2)、总线型(图3)、环型(图4)和树型等。
2、分布式系统是由普通进程P1,P2,…Pn和协调进程组成,其中n为自然数;每个进程均位于系统若干个节点之一。
3、系统进程之间的报文直接可达或间接可达。
算法由协调进程负责检查点的建立、更新过程的控制,各普通进程分别对其外部输入事件和对外输出事件计数并存储至向量逻辑时钟Ti (k)和发送向量Ui(k)。检查点的建立或更新过程分为二个阶段,第一阶段由协调进程采集各进程的信道信息,按定理1判别当前分布式系统的状态是否是全局一致性状态,若是一致性状态则各进程分别保存各自状态,算法结束;第二阶段为核实阶段,若不是一致性状态则由定理3确定丢失报文的发送、接收进程,并由协调进程通知丢失报文的发送进程重发所失报文直到所有报文均被接收或由于超时所有进程非正常退出。
算法的控制报文类型为:
1.检查点建立、更新报文NB(图7),其中,源进程为分布式系统中发送报文之进程,源进程标识一个字节,目的进程为分布式系统中接收报文之进程,目的进程标识一个字节,报文类型一个字节;其功能是启动算法,由协调进程发送至各进程。
2.超时报文FB(图8),其中,源进程标识一个字节,目的进程标识一个字节,报文类型一个字节;由协调进程发送至各进程,通知各进程算法超时,进程接收后非正常退出算法。
3.结束报文EB(图9),结束算法,其中,源进程标识一个字节,目的进程标识一个字 节,报文类型一个字节;由协调进程发送至各进程,进程接收后正常退出算法。
4.核实报文CB(图10),其中,源进程标识一个字节,目的进程标识一个字节,报文类型一个字节,丢失报文的接收进程标识一个字节,丢失报文标识一个字节;此报文包含丢失报文标识和丢失报文的接收进程标识,由协调进程发送至丢失报文的发送进程。
5.信道信息报文SB(图11),其中,源进程标识一个字节,目的进程标识一个字节,报文类型一个字节,进程的向量逻辑时钟n个字节(n为普通进程个数,每个分量占用1个字节)、发送向量n个字节(n为普通进程个数,每个分量占用1个字节)、信道输入状态10个字节和信道输出状态10个字节,此报文由普通进程发送至协调进程。
6.数据报文(图12),其中,源进程标识一个字节,目的进程标识一个字节,报文类型一个字节,报文标识一个字节,数据k个字节,k为自然数。
各进程检查点建立更新过程如下:
(1)协调进程(见图5)
a.向所有进程发出检查点更新报文NB;
b.判断检查点建立过程是否超时,若超时则发送超时报文FB至普通进程并退出检查点建立过程。
c.等待接收各进程的信道信息报文SB。
d.判断是否收到所有进程的信息报文,若未收到转至b,若收到转至e。
e.核实各进程收发报文数量:
若 i=1,2…n,其中,Tii (k)表示进程pi所发送报文数目,Tji (k)表示进程pj所接收进程pi发送的报文数目,n为自然数;则向所有进程发送结束报文EB,通知其退出检查点建立过程;此后协调进程亦退出检查点建立过程。
f.若 i=1,2…n,其中,Tii (k)表示进程pi所发送报文数目,Tji (k)表示进程pj所接收进程pi发送的报文数目,n为自然数;则进入检查点建立、更新的第二个阶段,找出所有丢失报文的发送进程pi和接收进程pj,并通知发送进程pi重发所失报文。
比较Tji (k)和Uij (k),其中i=1,2,…n,j=1,2…n,i≠j,Tji (k)表示进程pj所接收的pi发送报文数目,Uij (k)表示进程pi发送至pj报文数目。若Tji≠Uij,表明pi进程发送至pj进程的报文丢失,则比较pi进程信道输出状态和pj进程信道输入状态,找出所丢失报文的标识,继而向进程pi发送带有接收进程标识pj的核实报文CB,通知pi进程向pj进程重发所丢失报文。
g.在限定时间内接收普通进程的信息报文SB。
h.判断检查点建立过程是否超时,若超时则发送超时报文FB至普通进程并退出检查点建立过程。若未超时进入步骤e。
(2)普通进程pi(详见图6)
a.接收报文
b.若是建立更新报文转入C。若是数据报文,则更新信道输入状态变量Kt、信道输出状态变量Mw、向量逻辑时钟Ti (k)和发送向量Ui (k),而后转至a。
c.停止发送数据报文,延迟一段时间后发送信息报文SB至协调进程。
d.接收报文。
e.若是结束报文EB保存进程内部状态信息,清空信道状态变量Kt、Mw,清除向量逻辑时钟Ti(k)和发送向量Ui(k),而后退出检查点建立更新过程。
f.若是超时报文,退出检查点建立更新过程。
g.若是核实报文,向进程pj重发丢失报文
h.若是数据报文,更新向量逻辑时间Ti(k)和发送向量Ui(k),向协调进程重发信道信息报文SB,转至d。若是非数据报文,直接转至d。
算法分析:
在算法的第一阶段,协调进程发送更新报文NB,各进程接收到NB后发送信息报文SB,协调进程收到SB后定理1核实之。若定理1所述条件满足则所有进程发送的报文必然都被接收。因为各进程已停止发送非控制报文,各进程信道的状态不再变化,所以协调进程向所有进程发送结束报文EB,各进程接收到EB后,保存各自状态信息,系统保存的必然是全局一致的状态信息。此阶段控制报文的数目为3n。
在算法的第二阶段,若定理1所述条件不满足,协调进程按定理3所述条件(Tji≠Uij)找出丢失报文的发送进程,向其发送核实报文CB通知其重新发送,丢失报文的发送进程收到CB后重发丢失报文。此后有两种可能,其一所有丢失报文的发送进程收到CB后重发丢失报文,所有丢失报文的接收进程均收到所丢失报文并向协调进程重发向量逻辑时钟和发送向量,协调进程重新核实后定理1所述条件必然满足,此后系统保存的必然是一致性的状态信息;其二若丢失报文的发送进程未收到核实报文CB或接收进程未收到重发的丢失报文等,协调进程延时等待一段时间后发送超时报文FB,各进程收到FB后不保存状态信息,检查点建立过程非正常结束,系统原来所存状态信息不变。此种情况下控制报文的数目最多增加至5n。
总之,算法要么正常结束,一个一致的全局状态得以保存;要么非正常结束,先前系统的状态保持不变;算法具有较高的稳定性。
此算法控制报文的数目为0(n),n为进程的数目,理想情况算法在检查点建立过程的第一阶段结束,报文数目为3n;在丢失报文的情况下算法在建立过程的第二阶段结束,报文数目最多为5n;与典型的Chandy-Lamport算法控制报文数目0(n2)相比,进程数目较多时报文数目有较大减少。此外,由于采用了改进的向量逻辑时钟和发送向量对信道发送接收报文统计计数,协调进程不仅可以判断当前分布式系统状态是否为全局一致性状态,而且可以确定丢失报文的发送和接收进程,因此算法的可靠性和稳定性较高。
Claims (7)
1.一种基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,它将分布式系统视为若干个进程的集合,有限状态机扩展模型则是由这些有限个进程组成的集合:
P={P1,P2,…Pn},Pi表示进程,i=1,2,3…n;n≥2;i为进程序号,n为自然数;
Pi={I,O,SP,Q,F},其中:
a)I=Ein×Eout是分布式系统进程输入事件集合,为内部输入事件集Ein与外部输入事件集Eout的笛卡积;
其中,Ein={eik|k=1,2…m},eik为分布式系统的内部输入事件;i表示输入事件,k为内部输入事件序号,m为自然数;Eout={eok|k=1,2…n},eok为分布式系统的外部输入事件;o表示输出事件,k为外部输入事件序号,n为自然数;
b)O=Oin×Oout是分布式系统进程输出事件的集合,为对内输出事件集Oin与对外输出事件集Oout的笛卡积,
其中,Oin={Oik|k=1,2…l},oik为分布式系统的对内输出事件;i表示对内输出,k为对内输出事件序号;Oout={ook|k=1,2…w},ook为分布式系统的对外输出事件;下标o表示对外输出,k为对外输出事件序号;
c)SP=S×K×M×T×U是分布式系统进程状态的集合,为进程内部状态集S、信道输入状态集K、信道输出状态集M、改进的向量逻辑时钟集T和发送向量U集的笛卡积;
其中,S={Sm|m=1,2,…k}为进程内部状态集合,Sm是进程的内部状态,内部状态记忆了内部输入事件,m表示内部状态序号,k为自然数;
K={Kt|t=1,2…r}为信道输入状态集合,Kt是信道的输入状态,其记忆了信道所接收报文的信息,t表示信道输入状态序号,r为自然数;Kt可进一步描述为:
Kt={{Ftk,Btk}|k=1,2,…w},其中{Ftk,Btk}表示进程所接收某份报文的信息,Ftk为发送此报文进程的标识,Btk是报文的标识,Ftk和Btk均来自于其他报文发送进程,t表示信道输入状态序号,k为进程所接收报文序号,w为自然数;
M={Mw|w=1,2…l}为信道输出状态集合,Mw是信道的输出状态其记忆了信道所发送报文的信息,w为信道输出状态序号,l为自然数;Mw可进一步描述为:
Mw={{Fwk,Bwk}|k=1,2,…z}
其中{Fwk,Bwk}表示进程所发送某份报文的信息,Fwk是发送进程的标识,Bwk是报文的标识;w为信道输出状态序号,k表示发送报文序号,z为自然数;
T={Ti (k)|k=1,2…l}为进程Pi信道改进的向量逻辑时钟集合,Ti (k)是进程Pi信道的向量逻辑时钟,k表示进程的状态时间变量,l为自然数,i表示进程Pi的序号;
Ti (k)=(Ti1 (k),Ti2 (k)…Tin (k))
其中Tii (k)表示进程pi在当前信道状态时间k内发送报文的数目,其初值是零,每发送一份报文其值加一;Tij (k)表示进程pi在当前信道状态时间内所接收的进程pj的报文的数目;其中,i≠j,j=1,2…n,i为进程pi的序号,j为进程pj的序号,k是进程状态时间变量;
U={Ui (k)|k=1,2…w}为进程Pi的发送向量集合,Ui (k)为进程Pi的发送向量,k是进程状态时间变量,i为进程Pi序号,k为进程状态时间变量,w为自然数;
Ui (k)=(Ui1 (k),Ui2 (k)…Uin (k))
其中,若i≠j,则Uij (k)为进程Pi发送至进程Pj的报文数目;若i=j,则Uij (k)=0;i表示进程Pi的序号,j表示进程Pj的序号,k为进程状态时间变量;
d)Q=I×SP->O,是进程的输出函数;
e)F=I×SP->SP,是进程状态转移函数;
它的步骤为:
(1)协调进程
a.向所有进程发出检查点更新报文NB;
b.判断检查点建立过程是否超时,若超时则发送超时报文FB至普通进程并退出检查点建立过程;
c.等待接收各进程的信道信息报文SB;
d.判断是否收到所有进程的信息报文,若未收到转至步骤b,若收到转至步骤e;
e.核实各进程收发报文数量:
若 i=1,2…n,其中,Tii (k)表示进程pi所发送报文数目,Tji (k)表示进程pj所接收进程pi发送的报文数目,n为自然数;则向所有进程发送结束报文EB,通知其退出检查点建立过程;此后协调进程亦退出检查点建立过程;
f.若 i=1,2…n,其中,Tii (k)表示进程pi所发送报文数目,Tji (k)表示进程pj所接收进程pi发送的报文数目,n为自然数;则进入检查点建立、更新的第二个阶段,找出所有丢失报文的发送进程pi和接收进程pj,并通知发送进程pi重发所失报文;
比较Tji (k)和Uij (k),其中i=1,2,…n,j=1,2…n,i≠j,Tji (k)表示进程pj所接收的pi发送报文数目,Uij (k)表示进程pi发送至pj报文数目;若Tji≠Uij,表明pi进程发送至pj进程的报文丢失,则比较pi进程信道输出状态和pj进程信道输入状态,找出所丢失报文的标识,继而向进程pi发送带有接收进程标识pj的核实报文CB,通知pi进程向pj进程重发所丢失报文;
g.在限定时间内接收普通进程的信息报文SB;
h.判断检查点建立过程是否超时,若超时则发送超时报文FB至普通进程并退出检查点建立过程,若未超时进入步骤e。
(2)普通进程pi
(a)接收报文;
(b)若是建立、更新报文则转入(c);若是数据报文,则更新信道输入状态变量Kt、信道输出状态变量Mw、向量逻辑时钟Ti (k)和发送向量Ui (k),而后转至(a);
(c)停止发送数据报文,延迟一段时间后发送信息报文SB至协调进程;
(d)接收报文;
(e)若是结束报文EB则保存进程内部状态信息,清空信道状态变量Kt、Mw,清除向量逻辑时钟Ti(k)和发送向量Ui(k),而后退出检查点建立更新过程;
(f)若是超时报文,退出检查点建立更新过程;
(g)若是核实报文,向进程pj重发丢失报文;
(h)若是数据报文,更新向量逻辑时间Ti(k)和发送向量Ui(k),向协调进程重发信道信息报文SB,转至(d);若是非数据报文,直接转至(d)。
2.如权利要求1所述的基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,所述更新报文NB由源进程标识、目的进程标识和报文类型组成,其中,报文类型为00000001b。
3.如权利要求1所述的基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,所述超时报文FB由源进程标识、目的进程标识和报文类型组成,其中,报文类型为00000011b。
4.如权利要求1所述的基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,所述结束报文EB由源进程标识、目的进程标识和报文类型组成,其中报文类型为00000010b。
5.如权利要求1所述的基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,所述核实报文CB由源进程标识、目的进程标识、报文类型、丢失报文接收进程标识、丢失报文标识组成,其中报文类型为00000100b。
6.如权利要求1所述的基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,所述信道信息报文SB由源进程标识、目的进程标识、报文类型、向量时逻辑钟、发送向量、信道输入状态、信道输出状态组成,其中,报文类型为00000101b;向量时逻辑钟由Ti1 (k),Ti2 (k)…Tin (k)组成;发送向量由Ui1 (k),Ui2 (k)…Uin (k)组成;信道当前输入状态由FtlBtl……FtwBtw组成;信道当前输出状态由FwlBwl……FwzBwz组成。
7.如权利要求1所述的基于分布式系统有限状态机扩展模型的检查点准同步方法,其特征是,所述数据报文由源进程标识、目的进程标识、报文类型、报文标识和数据组成,其中报文类型为00000110b。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100159479A CN101572723B (zh) | 2009-06-02 | 2009-06-02 | 分布式系统有限状态机扩展模型及检查点准同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100159479A CN101572723B (zh) | 2009-06-02 | 2009-06-02 | 分布式系统有限状态机扩展模型及检查点准同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101572723A CN101572723A (zh) | 2009-11-04 |
CN101572723B true CN101572723B (zh) | 2012-01-04 |
Family
ID=41231960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100159479A Expired - Fee Related CN101572723B (zh) | 2009-06-02 | 2009-06-02 | 分布式系统有限状态机扩展模型及检查点准同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101572723B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291436B (zh) * | 2011-07-22 | 2012-12-12 | 北京航空航天大学 | 一种分布式事务通信有限状态机模型及其验证方法 |
CN103345426B (zh) * | 2013-06-26 | 2016-05-11 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种非实时操作系统的并发过程处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1325217A (zh) * | 2000-08-29 | 2001-12-05 | 深圳市中兴通讯股份有限公司 | 一种分布式通信系统及其方法 |
CN1595360A (zh) * | 2003-09-12 | 2005-03-16 | 国际商业机器公司 | 用于在分布式计算体系结构中执行作业的系统和方法 |
CN1914866A (zh) * | 2004-02-02 | 2007-02-14 | 艾利森电话股份有限公司 | 分布式有限状态机 |
-
2009
- 2009-06-02 CN CN2009100159479A patent/CN101572723B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1325217A (zh) * | 2000-08-29 | 2001-12-05 | 深圳市中兴通讯股份有限公司 | 一种分布式通信系统及其方法 |
CN1595360A (zh) * | 2003-09-12 | 2005-03-16 | 国际商业机器公司 | 用于在分布式计算体系结构中执行作业的系统和方法 |
CN1914866A (zh) * | 2004-02-02 | 2007-02-14 | 艾利森电话股份有限公司 | 分布式有限状态机 |
Also Published As
Publication number | Publication date |
---|---|
CN101572723A (zh) | 2009-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107493334B (zh) | 一种增强云雾计算网络架构系统可靠性的方法 | |
CN100579079C (zh) | 多对多可靠组播拥塞控制方法 | |
CN103795754B (zh) | 多系统间的数据同步方法和系统 | |
US9465648B2 (en) | Distributed transaction processing through commit messages sent to a downstream neighbor | |
Subbiah et al. | Distributed diagnosis in dynamic fault environments | |
Sutra et al. | Fast genuine generalized consensus | |
Lee et al. | Interleaved all-to-all reliable broadcast on meshes and hypercubes | |
EP2761794A1 (en) | Method for a clock-rate correction in a network consisting of nodes | |
US8842524B2 (en) | Redundant ring automatic recovery | |
CN101572723B (zh) | 分布式系统有限状态机扩展模型及检查点准同步方法 | |
Albassam et al. | Model-based recovery connectors for self-adaptation and self-healing | |
Nischwitz et al. | Bernoulli meets pbft: Modeling bft protocols in the presence of dynamic failures | |
CN101986602B (zh) | 基于报文数目检验无阻塞检查点设置和故障进程恢复方法 | |
Halawa et al. | FPGA-based reliable TMR controller design for S2A architectures | |
Almeida et al. | Plan-based replication for fault-tolerant multi-agent systems | |
Keidar et al. | How to choose a timing model | |
CN112860807A (zh) | 一种适用于无线区块链网络的容错共识方法 | |
EP2761795B1 (en) | Method for diagnosis of failures in a network | |
Nugroho et al. | AADC 3: Active-active distributed controller with 3-in-1 asynchronous heartbeat synchronization method in software-defined networks | |
Khilar et al. | Distributed diagnosis in dynamic fault environments for arbitrary network topologies | |
Khlif et al. | A graph transformation-based approach for the validation of checkpointing algorithms in distributed systems | |
de Luna Almeida et al. | Plan-based replication for fault-tolerant multi-agent systems. | |
Giri et al. | Crash Fault Identification of a A K-Connected Network in Static Fault Environment | |
Khilar et al. | Distributed Diagnosis in Dynamic Fault Environment For Not-Completely Connected Network | |
Chen et al. | An efficient forward and backward fault-tolerant mobile agent system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120104 Termination date: 20120602 |