一种基于社区概念的分布式容错方法,包括如下步骤:第一步是构造进程社区;第二步是记录不同社区间所传递的消息及创建检查点;第三步是恢复出现的故障。本方法综合了检查点技术与消息日志技术,并采用分区的策略进行层次性容错处理,极大的降低了容错过程中的内存使用,同时提高了容错的可扩展性,对于分布式计算中的容错处理较有较强的实用性。
【技术实现步骤摘要】
本专利技术属于分布式计算容错领域,是一种通过将分布式计算节点分区的方式进行容错信息归类,从而提高容错效率,降低容错控制成本的一种新型容错方法。
技术介绍
随着分布式计算的发展,计算的规模越来越大。由于计算节点的增加,系统故障率也随着增加。数据显示,如ASCI‐Q等大型的分布式计算集群,一个需要4096个CPU核心处理的5小时的工作任务在一小时内的故障率为50%左右。分布式计算中的容错处理在并行计算中显得越来越重要,特别是在现今云技术需求越来越大的情况下。造成系统故障的原因是多种多样的,可能是因为网络连接丢失,可能是机器发生故障,也有可能是黑客攻击。在故障分类中,以故障的表现形式来看,可分为fail‐stop故障及Byzantine故障。fail‐stop类的故障是一种出现故障系统即停止运行的故障,它不会引起对外的输入或是主动提示系统故障的信息;而Byzantine故障不会引起系统的停止,出现Byzantine故障时,系统会继续运行,并输入一些错误的结果进而影响后续的计算结果。本专利技术注重解决fail‐stop类的故障。在分布式容错方法中,常见的主要是检查点方法和消息日志方法。检查点方法的本质是将系统运行的中间状态以各种参数的形式保存起来,当系统需要从故障中恢复的时候,将检查点中保存的各种状态参数还原即可。检查点方法可以保存单个系统进程,也可以同时保存整个系统的所有进程。在系统恢复的时候。检查点方法需要暂停整个系统的运行,等待检查点的信息恢复完全后,整个系统才可重新运行,在一定程度上浪费了系统运行的时间。与检查点方法相比,消息日志方法记录系统在运行过程中传递的消息(message),当系统发生故障时,恢复系统通过重播日志记录的消息来达到恢复故障的目的。消息日志方法是基于PWD(piece‐wisedeterministic)假设原理,在恢复的时候只需要重播故障点与恢复点之间的消息即可,并且只需要暂停受影响的进程即可,这样有效地避免了检查点方法的弊端。但消息日志方法需要记录系统进程在系统运行过程中传递的所有消息,如果该系统运行过程中产生的消息过大,就会造成内存溢出等故障。这也是消息日志方法的主要缺点之一。
技术实现思路
本专利技术要克服现有检查点方法与消息日志方法的弊端,提供一种综合检查点方法与消息日志方法的社区容错方法。社区容错方法是一种层次性的容错方法,它可以避免检查点方法的弊端,相对应消息日志方法具有较小的内存消耗,并且具有较强的可扩展性。社区容错方法的基本原理是在并行计算中,一个大任务往往会被分解为几个不同的小任务,并且将这一个个小任务分配给不同的CPU进行处理。在不同的CPU上运行着若干个不同的进程,这些进程协同配合来完成这一个个小任务。在完成小任务的时候,每个进程间的耦合程度是不相同的,一些进程之间有比较频繁的消息传递,而另外一些进程可能根本就不会存在消息传递;具有比较频繁的消息传递的进程可以构造出一个较大的集团,在本方法中,我们称之为社区,因为该社区内部的进程具有较为频繁的沟通。基于这个事实,本方法将容错级别提高到了一组进程上,而不是单个的进程,通过构造进程社区,来内聚消息传递,减少需要记录的消息数量,提高故障恢复的效率。社区容错方法的主要过程分为三个步骤。第一步是构建进程分区;第二步是记录不同社区间所传递的消息及创建检查点;第三步是恢复出现的故障。第一步:构建进程分区。分区的原则是基于进程间的通信情况,社区内部进程通信密集,而社区间没有通信或通信较少。进程社区的构造主要基于以下两个变量:社区的通信直径dia和单个进程与已有社区间的距离dis。用符号Ci表示社区i的所有进程的集合,定义社区i的元特征ICF(i)=[Ni,F(i)],Ni是该社区i中的进程的数量,为整个社区的通信特征。S(pm)是社区i中进程pm的通信特征,计算方式如下:其中符号表示两个进程之间存在通信行为。基于这些定义及计算方式,我们通过公式计算社区的通信直径社区通信的直径值越小,表示社区内的进程连接越紧密;相反,如果社区通信直径越大,则表示社区内的通信较少。进程pm与已有社区i的距离定义为其中为进程pm与社区i的通信集合。本专利技术通过计算进程与已有社区之间的距离,判断进程所属社区;通过社区的通信直径来计算一个社区内部的通信频度,以判断是否对该社区进行分裂处理。通过进程分区与社区分裂,最终完成进程分区的构建。若系统有新的计算节点加入,新的计算节点中的进程以同样的方法选择进入现有的社区中。第二步,记录进程间所传递的消息以及创建检查点。在完成进程社区的构建后,社区容错方法进入第二个步骤。对于社区内部的消息,社区容错方法将其视为一个整体,不对消息进行记录,而是采用检查点方法,以减少整体容错过程中所记录的消息数量。对每个社区,社区容错方法采用非协同检查点策略以保证不同社区的容错独立性,检查点被存放在稳定的存储介质当中,确保系统故障后检查点的可用性。对于社区间的消息,该容错方法将以悲观日志的方式记录消息。记录的对象为m.data+<m.src,m.dest,m.ssn,m.rsn>,其中m.data表示通信内容,m.src表示消息的来源进程,m.dest表示消息传递过程中的目标进程,m.ssn为消息的发送进程对该消息设置的发送序列号,m.rsn为消息接收进程为消息设置的接收序列号。这四组数据确保了在系统发生故障后,社区间的进程所传递的消息可以依照故障前的发送与接收顺序执行。第三步,恢复系统故障。系统恢复是容错中的最后一步。在社区容错方法中,将消息分为了社区内消息与社区间消息,通过对不同类型消息的处理以及检查点的保存处理来进行故障恢复。当某一个进程社区的进程在某个时间点发生崩溃时,根据本方法的恢复策略,崩溃进程社区将会回滚到它最近的一个检查点上,然后系统重播该检查点之后的所有社区内部消息。注意:社区内部消息由该社区的进程自主重播。而社区间的消息将由稳定的存储介质来重播。消息重播的次序由消息元组<m.src,m.dest,m.ssn,m.rsn>来决定。当崩溃社区重新执行计算时,对外界社区会产生部分重复的消息。这些重复的消息也将由消息元组<m.src,m.dest,m.ssn,m.rsn>来判定,更具体地说是由其中的接收序列号m.rsn来决定,当该值小于外界社区保存的对于该进程所在社区的最大接收序列号RSN值时,那么表示该消息是重复消息,将被丢弃,反之将被接收。通过检查点的恢本文档来自技高网...
【技术保护点】
一种基于社区概念的分布式容错方法,包括:第一步:构建进程分区;分区的原则是基于进程间的通信情况,社区内部进程通信密集,而社区间没有通信或通信较少;进程社区的构造主要基于以下两个变量:社区的通信直径dia和单个进程与已有社区间的距离dis;用符号Ci表示社区i的所有进程的集合,定义社区i的元特征ICF(i)=[Ni,F(i)],Ni是该社区i中的进程的数量,为整个社区的通信特征;S(pm)是社区i中进程pm的通信特征,计算方式如下:其中符号表示两个进程之间存在通信行为;基于这些定义及计算方式,通过公式计算社区的通信直径社区通信的直径值越小,表示社区内的进程连接越紧密;相反,如果社区通信直径越大,则表示社区内的通信较少;进程pm与已有社区i的距离定义为dis(pm,i)=|CS(pm,i)||Ci|,]]>其中CS(pm,i)={pn|pm⊗pn;pn∈Ci}]]>为进程pm与社区i的通信集合;本专利技术通过计算进程与已有社区之间的距离,判断进程所属社区;通过社区的通信直径来计算一个社区内部的通信频度,以判断是否对该社区进行分裂处理;通过进程分区与社区分裂,最终完成进程分区的构建;若系统有新的计算节点加入,新的计算节点中的进程以同样的方法选择进入现有的社区中;第二步,记录进程间所传递的消息以及创建检查点;在完成进程社区的构建后,社区容错方法进入第二个步骤;对于社区内部的消息,社区容错方法将其视为一个整体,不对消息进行记录,而是采用检查点方法,以减少整体容错过程中所记录的消息数量;对每个社区,社区容错方法采用非协同检查点策略以保证不同社区的容错独立性,检查点被存放在稳定的存储介质当中,确保系统故障后检查点的可用性;对于社区间的消息,该容错方法将以悲观日志的方式记录消息;记录的对象为m.data+<m.src,m.dest,m.ssn,m.rsn>,其中m.data表示通信内容,m.src表示消息的来源进程,m.dest表示消息传递过程中的目标进程,m.ssn为消息的发送进程对该消息设置的发送序列号,m.rsn为消息接收进程为消息设置的接收序列号;这四组数据确保了在系统发生故障后,社区间的进程所传递的消息可以依照故障前的发送与接收顺序执行;第三步,恢复系统故障;系统恢复是容错中的最后一步;在社区容错方法中,将消息分为了社区内消息与社区间消息,通过对不同类型消息的处理以及检查点的保存处理来进行故障恢复;当某一个进程社区的进程在某个时间点发生崩溃时,根据本方法的恢复策略,崩溃进程社区将会回滚到它最近的一个检查点上,然后系统重播该检查点之后的所有社区内部消息;注意:社区内部消息由该社区的进程自主重播;而社区间的消息将由稳定的存储介质来重播;消息重播的次序由消息元组<m.src,m.dest,m.ssn,m.rsn>来决定;当崩溃社区重新执行计算时,对外界社区会产生部分重复的消息;这些重复的消息也将由消息元组<m.src,m.dest,m.ssn,m.rsn>来判定,更具体地说是由其中的接收序列号m.rsn来决定,当该值小于外界社区保存的对于该进程所在社区的最大接收序列号RSN值时,那么表示该消息是重复消息,将被丢弃,反之将被接收;通过检查点的恢复与消息日志的重播,分布式计算系统将保持一致性,即系统发生故障前的一致性状态,从而达到容错的效果。...
【技术特征摘要】
1.一种基于社区概念的分布式容错方法,包括:
第一步:构建进程分区;分区的原则是基于进程间的通信情况,社区内部进
程通信密集,而社区间没有通信或通信较少;进程社区的构造主要基于以下两个
变量:社区的通信直径dia和单个进程与已有社区间的距离dis;用符号Ci表示社
区i的所有进程的集合,定义社区i的元特征ICF(i)=[Ni,F(i)],Ni是该社区i中的
进程的数量,为整个社区的通信特征;S(pm)是社区...
【专利技术属性】
技术研发人员:周艳波,陈建平,
申请(专利权)人:浙江工业大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。