书签 分享 收藏 举报 版权申诉 / 19

一种基于时间映射的事件一致性实现方法.pdf

  • 上传人:111****11
  • 文档编号:1034261
  • 上传时间:2018-03-27
  • 格式:PDF
  • 页数:19
  • 大小:874.22KB
  • 摘要
    申请专利号:

    CN200910081464.9

    申请日:

    2009.04.03

    公开号:

    CN101520740A

    公开日:

    2009.09.02

    当前法律状态:

    终止

    有效性:

    无权

    法律详情:

    未缴年费专利权终止IPC(主分类):G06F 9/46申请日:20090403授权公告日:20110727终止日期:20140403|||授权|||实质审查的生效|||公开

    IPC分类号:

    G06F9/46; H04L29/08

    主分类号:

    G06F9/46

    申请人:

    北京航空航天大学

    发明人:

    周 忠; 赵沁平; 仲 婧; 吴 威

    地址:

    100083北京市海淀区学院路37号

    优先权:

    专利代理机构:

    北京科迪生专利代理有限责任公司

    代理人:

    成金玉;卢 纪

    PDF完整版下载: PDF下载
    内容摘要

    一种基于时间映射的事件一致性实现方法,用于解决分布式系统运行结束后,各节点记录的本地事件整合时的事件顺序一致性,在分布式系统运行结束后,执行以下步骤:(1)确定待排序的两个记录文件,提取记录节点的信息;(2)提取待排序文件的SRP信息,形成各自的SRP表;(3)扫描SRP链表,检测并消除矛盾;(4)确定扫描基准文件,并扫描两个文件形成时间映射分割;(5)依据分割扫描记录文件,根据分割块的类型对分割块进行排序。本发明具有执行效率高、保证事件的因果一致性的优点,应用到分布式系统本地记录整合中,保证一致性精度的前提下,对分布式系统运行的实时性的影响很小。

    权利要求书

    1、  一种基于时间映射的事件一致性实现方法,其特征在于:在分布式系统运行结束后,执行以下步骤:
    (1)确定待排序的两个记录文件,提取记录文件中记录节点的信息,所述的记录节点的信息包括发送方和接收方;
    (2)根据已提取的记录节点的信息,提取待排序的两个记录文件的发送-接收对(SRP)信息,形成所述两个记录文件各自的SRP表;
    (3)扫描形成的两个SRP表,检测是否存在矛盾,如果存在矛盾,则消除该矛盾;所述的存在矛盾是指:在两个记录文件中事件的发生顺序不一致;
    (4)从两个记录文件中确定扫描基准文件,然后分别扫描两个记录文件,形成时间映射分割;所述的时间映射分割为:在时间映射图中由两垂直线之间的相邻的带箭头的线将两垂直线之间的平面区域划分成矩形或三角形;所述的时间映射图为:在时空视图中以水平方向代表空间,垂直方向代表时间,带标志的点表示事件,带箭头的线代表消息,带标志的垂直线表示记录文件;
    (5)根据已形成的时间映射分割,再次扫描两个记录文件,并根据时间映射分割中分割块的类型对所述分割块中的事件进行排序;所述的时间映射分割中分割块类型共分为四种类型,即A型分割块、B型分割块、C型分割块和D型分割块,以扫描基准文件为视角,将分割块的四个顶点分别定义为αu、αd、βu、βd,其中αu、αd是分别是位于扫描基准文件中的上、下两个点,βu、βd是则分别是位于另一记录文件中的上、下两个点;每个分割块由其四个顶点和它的类型唯一表示,即αu,αd,βu,βd;连接αu、βu的带箭头的线,即位置在上的线,称为该分割块的上边界;连接αd、βd的带箭头的线,即位置在下的线,称为该分割块的下边界;A型分割块的上边界和下边界的箭头走向均是从扫描基准文件指向另一文件;B型分割块的上边界由扫描基准文件指向另一文件,下边界的指向相反;C型分割块的上边界和下边界的箭头走向均是从另一文件指向扫描基准文件;D型分割块的上边界是由另一文件指向扫描基准文件,下边界指向相反。

    2、
      根据权利要求1所述的基于时间映射的事件一致性实现方法,其特征在于:所述步骤(2)具体实现步骤如下:采用a.log和b.log分别表示两个待排序的记录文件,
    (1)顺次扫描a.log,若a.log中的当前记录是来自b.log的消息的接收事件,将该接收事件在a.log中的位置信息记录到b.log的待形成的SRP表的对应项中,同时记录该接收事件的发送方和发送消息句柄;
    (2)顺次扫描b.log,若b.log中的当前记录为来自a.log的消息的接收事件,将该接收事件在b.log中的位置信息记录到a.log的待形成的SRP表的对应项中,同时记录该接收事件的发送方和发送消息句柄;若b.log当前记录为消息的发送事件,则扫描b.log的待形成的SRP表,b.log检查是否有同一消息的接收事件存在,如果有,则在b.log的待形成的SRP表的相应位置记下当前记录在b.log中的位置信息,从而形成b.log的SRP表;
    (3)再次扫描a.log,若a.log中的当前记录为消息的发送事件,则扫描a.log的待形成的SRP表,a.log检查是否有同一消息的接收事件存在,如果有,则在a.log待形成的SRP表的相应位置记下当前记录在a.log中的位置信息,从而形成a.log的SRP表。

    3、
      根据权利要求1所述的基于时间映射的事件一致性实现方法,其特征在于:所述步骤(3)中消除存在矛盾的步骤如下:
    A.交换两个SRP表项;
    B.采用后一个SRP表项的左项取代前一个SRP表项的左项。

    4、
      根据权利要求1所述的基于时间映射的事件一致性算法,其特征在于:所述步骤
    (4)中确定扫描基准文件的方法为:根据两个待排序记录文件的第一条与对方的交互消息的位置关系来确定扫描基准文件,位置关系分为两种情况,第一种情况为:自两个待排序记录文件发出的第一条与对方的交互消息在时间映射图中没有发生交叉,此时选择发出第一条交互消息较早的记录文件为扫描基准文件;第二种情况,自两个待排序记录文件发出的第一条与对方的交互消息在时间映射图中发生交叉,此时两个待排序记录文件任选一个作为扫描基准文件。

    5、
      根据权利要求1所述的基于时间映射的事件一致性实现方法,其特征在于:所述步骤(4)中形成时间映射分割的方法为:
    (1)设扫描基准文件的SRP表有N项,则N个表项将两个待排序记录文件的时间映射图分成头部、N-1个A型分割块、尾部;扫描已确定的扫描基准文件的SRP表项,将N-1个A型分割块按照顺序关系插入待形成的分割块表;
    (2)扫描另一个记录文件的SRP表项,检查是否对所述的N-1个分割块形成新的分割,如果有,则判断新的分割块的类型,并将新的分割按照新的分割块出现的位置插入到待形成的分割块表中,从而形成时间映射分割。

    6、
      根据权利要求1所述的基于时间映射的事件一致性实现方法,其特征在于:所述步骤(5)实现如下:
    (1)对时间映射图的头部和尾部的排序类似,其排序方式为:依次读取两个记录文件中位于时间映射图头部或尾部的记录,并插入中间文件尾;
    (2)对于分割块的排序方式则要依据所述分割块的类型采用不同的处理方式:
    ①当分割块为A或B型时,步骤如下:
    a.将A型或B分割块的左上定点αu代表的记录插入中间文件尾;
    b.依次扫描另一记录文件中位于右上顶点βu和右下定点之间的βd的记录;
    c.若右上顶点βu和右下定点之间的βd的记录是两个记录文件间交互信息的接收事件,则跳过;否则,将右上顶点βu和右下定点之间的βd的记录插入中间文件尾;
    d.将αu到αd之间的记录依次插入中间文件尾,αd以及标识来自另一记录文件的消息的接收事件的记录除外;
    ②当分割块为C或D型时,步骤如下:
    a.将右上定点βu代表的记录插入中间文件尾;
    b.依次扫描所确定的扫描基准文件中位于左上顶点αu和左下顶点αd之间的记录;
    c.若左上顶点αu和左下顶点αd之间的记录是两个记录文件间交互信息的接收事件,则跳过;否则,将左上顶点αu和左下顶点αd之间的记录插入中间文件尾;
    d.将右上定点βu到右下定点之间的βd之间的记录依次插入中间文件尾,右下定点之间的βd以及标识来自扫描基准文件的消息的接收事件的记录除外。

    说明书

    一种基于时间映射的事件一致性实现方法
    技术领域
    本发明属于分布式系统与计算机网络领域,具体地说是一种基于时间映射的事件一致性实现方法,用于解决分布式系统运行结束后,各节点记录的本地事件整合时的事件顺序一致性问题。
    背景技术
    分布式系统是指通过网络将地理上分散的节点加以连接,从而构成的物理分布、逻辑一致的计算机系统。它使置于其中的各个节点可以互相协调工作,共同完成一项任务。分布式系统以其强大的计算能力和广泛的应用空间成为计算机学科的重要研究领域之一。
    在集中式系统中,时间的概念很清楚,要取得事件的一致性很容易;然而在分布式系统中,由于传播延迟抖动的不可测性,并且没有共用的时钟或其他精确的全局时间资源,使得取得事件的一致性变得困难。在分布式系统运行中,往往需要一个记录者对整个运行过程进行记录,便于运行结束后检索事件、回放运行过程。由于时钟不一致,从各个节点采集到的事件无法仅依据本地时戳排序,因此需要事件一致性算法来保证全局事件的一致性。另外,一致性算法还应尽量减少对分布式系统运行实时性的影响。
    应用于分布式环境的事件一致性算法大致分为三种:基于时间服务器的一致性算法、逻辑事件一致性算法和仿真时间一致性算法。基于时间服务器的一致性算法,在整个系统中,有一台机器作为时间服务器,其他所有的机器与它同步。时间服务器的算法原理简单,易于实现。但是由于网络传播时延的不可测性、不确定性,使得所谓“统一的对时结果”并不可靠。另外,各个机器时钟的频率不完全相同,即使对时的结果一致,随着时间的推移,各个机器的时间也会偏离全局时钟。因此,这种方法仅适用于对时钟精度要求较低的情况。逻辑时间一致性算法,定义了向量时钟的概念,使用n维的整数向量表示时间(n为节点数目),并在此基础上规定了时钟进展的规则。这种算法能够完全捕获事件间的因果或并发关系,然而,Charron-Bost证明为了维护时钟同构,向量时钟的大小必须至少等于系统中的进程数目,这样,存储和通讯的额外耗费随着系统大小线性增长,使大规模分布式系统中使用向量时钟的成本高,可扩展性差,并牺牲了实时性。仿真时间一致性算法的核心在于所有仿真节点选择一个相同的精确时钟,确保在仿真过程中所发生的事件在逻辑上的正确性,以及所发送的消息在逻辑上的有序性。但由于能精确保证事件一致性,使得算法的效率在三种类型的算法中最低,严重影响系统运行的效率。
    综上所述,三种算法都不能很好的满足分布式系统记录整合的要求,尤其是以低延迟、高更新速率(low latency,high updating rate)为系统的基本要求之一的分布式虚拟环境。为此,需要设计一种新的一致性算法,能够应用到分布式系统记录整合中,在保证一致性精度的前提下,尽量降低对分布式系统运行实时性的影响。
    发明内容
    本发明的技术解决问题:克服现有技术的不足,提供一种基于时间映射的事件一致性实现方法,该方法能够在分布式系统运行结束后,保证因果一致性的条件下,对事件进行排序,便于事件检索、系统评估等,并尽量减少对系统实时性的影响。
    本发明采用的技术方案为:一种基于时间映射的事件一致性实现方法,在分布式系统运行结束后,执行以下步骤:
    (1)确定待排序的两个记录文件,提取记录文件中记录节点的信息,所述的记录节点的信息包括发送方和接收方;
    (2)根据已提取的记录节点的信息,提取待排序的两个记录文件的发送-接收对(SRP)信息,形成所述两个记录文件各自的SRP表;
    (3)扫描形成的两个SRP表,检测是否存在矛盾,如果存在矛盾,则并消除该矛盾;所述的存在矛盾是指:在两个记录文件中事件的发生顺序不一致;
    (4)从两个记录文件中确定扫描基准文件,然后分别扫描两个记录文件,形成时间映射分割;所述的时间映射分割为:在时间映射图中由两垂直线之间的相邻的带箭头的线将两垂直线之间的平面区域划分成矩形或三角形;所述的时间映射图为:在时空视图中以水平方向代表空间,垂直方向代表时间,带标志的点表示事件,带箭头的线代表消息,带标志的垂直线表示记录文件;
    (5)根据已形成的时间映射分割,再次扫描两个记录文件,并根据时间映射分割中分割块的类型对所述分割块中的事件进行排序;所述的时间映射分割中分割块类型共分为四种类型,即A型分割块、B型分割块、C型分割块和D型分割块,以扫描基准文件为视角,将分割块的四个顶点分别定义为αu、αd、βu、βd,其中αu、αd是分别是位于扫描基准文件中的上、下两个点,βu、βd是则分别是位于另一记录文件中的上、下两个点;每个分割块由其四个顶点和它的类型唯一表示,即αu,αd,βu,βd;连接αu、βu的带箭头的线,即位置在上的线,称为该分割块的上边界;连接αd、βd的带箭头的线,即位置在下的线,称为该分割块的下边界;A型分割块的上边界和下边界的箭头走向均是从扫描基准文件指向另一文件;B型分割块的上边界由扫描基准文件指向另一文件,下边界的指向相反;C型分割块的上边界和下边界的箭头走向均是从另一文件指向扫描基准文件;D型分割块的上边界是由另一文件指向扫描基准文件,下边界指向相反。
    所述步骤(2)中采用a.log和b.log分别表示两个待排序的记录文件,其具体实现步骤如下:
    (2.1)顺次扫描a.log,若a.log中的当前记录是来自b.log的消息的接收事件,将该接收事件在a.log中的位置信息记录到b.log的待形成的SRP表的对应项中,同时记录该接收事件的发送方和发送消息句柄;
    (2.2)顺次扫描b.log,若b.log中的当前记录为来自a.log的消息的接收事件,将该接收事件在b.log中的位置信息记录到a.log的待形成的SRP表的对应项中,同时记录该接收事件的发送方和发送消息句柄;若b.log当前记录为消息的发送事件,则扫描b.log的待形成的SRP表,b.log检查是否有同一消息的接收事件存在,如果有,则在b.log的待形成的SRP表的相应位置记下当前记录在b.log中的位置信息,从而形成b.log的SRP表;
    (2.3)再次扫描a.log,若a.log中的当前记录为消息的发送事件,则扫描a.log的待形成的SRP表,a.log检查是否有同一消息的接收事件存在,如果有,则在a.log待形成的SRP表的相应位置记下当前记录在a.log中的位置信息,从而形成a.log的SRP表。
    所述步骤(3)中消除矛盾的步骤如下:
    A.交换两个SRP表项;
    B.采用后一个SRP表项的右项取代前一个SRP表项的右项。
    所述步骤(4)中确定扫描基准文件的方法为:根据两个待排序记录文件的第一条与对方的交互消息的位置关系来确定扫描基准文件,位置关系分为两种情况,第一种情况为:自两个待排序记录文件发出的第一条与对方的交互消息在时间映射图中没有发生交叉,此时选择发出第一条交互消息较早的记录文件为扫描基准文件;第二种情况,自两个待排序记录文件发出的第一条与对方的交互消息在时间映射图中发生交叉,此时两个待排序记录文件任选一个作为扫描基准文件,作为参考,本发明中选择SRP表长度较大的记录文件为扫描记录文件。
    所述步骤(4)中形成时间映射分割的方法为:
    (4.1)设扫描基准文件的SRP表有N项,则N个表项将两个待排序记录文件的时间映射图分成头部、N-1个A型分割块、尾部;扫描已确定的扫描基准文件的SRP表项,将N-1个A型分割块按照顺序关系插入待形成的分割块表;
    (4.2)扫描另一个记录文件的SRP表项,检查是否对所述的N-1个分割块形成新的分割,如果有,则判断新的分割块的类型,并将新的分割按照新的分割块出现的位置插入到待形成的分割块表中,从而形成时间映射分割。
    所述步骤(5)的实现如下:
    (5.1)对时间映射图的头部和尾部的排序类似,其排序方式为:依次读取两个记录文件中位于时间映射图头部或尾部的记录,并插入中间文件尾;
    (5.2)对于分割块的排序方式则要依据所述分割块的类型采用不同的处理方式:
    (5.2.1)当分割块为A或B型时,步骤如下:
    a.将A型或B分割块的左上定点αu代表的记录插入中间文件尾;
    b.依次扫描另一记录文件中位于右上顶点βu和右下定点之间的βd的记录;
    c.若右上顶点βu和右下定点之间的βd的记录是两个记录文件间交互信息的接收事件,则跳过;否则,将右上顶点βu和右下定点之间的βd的记录插入中间文件尾;
    d.将αu到αd之间的记录依次插入中间文件尾,αd以及标识来自另一记录文件的消息的接收事件的记录除外。
    (5.2.2)当分割块为C或D型时,步骤如下:
    a.将右上定点βu代表的记录插入中间文件尾;
    b.依次扫描所确定的扫描基准文件中位于左上顶点αu和左下顶点αd之间的记录;
    c.若左上顶点αu和左下顶点αd之间的记录是两个记录文件间交互信息的接收事件,则跳过;否则,将左上顶点αu和左下顶点αd之间的记录插入中间文件尾。
    d.将βu到βd之间的记录依次插入中间文件尾,βd以及标识来自扫描基准文件的消息的接收事件的记录除外。
    本发明与现有的技术方法相比的优点如下:
    (1)为了减少对分布式系统实时性的影响,本发明采用在分布式系统运行结束后排序的方案,只在系统运行时进行事件的记录,而在系统运行结束后,搜集并集中各个节点的记录文件,继而进行排序。与现有技术的三种一致性算法相比,本发明克服了在运行阶段保证一致性对系统实时性的影响,具有执行效率高的优点。
    (2)本发明是在遵循“因果关系”定义的基础上的设计,排除了对不精确的时钟的依赖,根据消息的发送-接收事件的一一对应关系进行排序,保证了事件逻辑关系的正确性。
    (3)本发明的复杂度只与系统中交互事件的数目有关,不需要维护与节点数目相当的数据结构,克服了逻辑时钟一致性算法可扩展性差的特点。
    附图说明
    图1为时空视图和时间映射图对比,其中图1a为时空视图,图1b为时间映射图;
    图2为分割块类型图,其中图2a为A型分割块,图2b为A型分割块的第一种特殊情况,图2c为A型分割块的第二种特殊情况,图2d为B型分割块,图2e为C型分割块,图2f为D型分割块;
    图3为本发明的流程图;
    图4为本发明的SRP信息提取实例图;
    图5为本发明者的文件中存在矛盾的时间映射图;
    图6为本发明的文件存在矛盾时SRP表的情况图;
    图7为本发明的处理矛盾后的时间映射图和SRP表;
    图8为本发明的两待排序记录文件的第一条交互消息的位置关系图,图8a为两个待排序记录文件的第一条交互消息不发生交叉的情况示图,图8b为两个待排序记录文件的第一条交互消息不发生交叉的情况图;
    图9为本发明的形成时间映射图分割实例图;
    图10为本发明的生成全序实例图。
    具体实施方式
    在对本发明详细阐述之前,对其中涉及的一些基本概念进行一下解释和说明。
    A.时空视图:时空视图是表示分布式系统中事件之间关系的方法,它使用水平方向代表空间,垂直方向代表时间,带标志的垂直线代表进程,带标志的点表示事件,带箭头的线代表消息,如图1a所示。
    B.时间映射图:在时空视图的基础上定义时间映射图,即水平方向代表空间,垂直方向代表时间,带标志的点表示事件,带箭头的线代表消息,带标志的垂直线表示记录文件,可以是原始的节点记录文件,也可以是排序过程中产生的中间文件,也就是说记录文件排序的对象,可能是各个节点的原始记录文件或排序过程中形成的中间文件,而记录文件中的记录是来自至少一个节点的消息发送或接收事件,如图1b所示;
    C.时间映射分割:在时间映射图中,由两垂直线之间的相邻的带箭头的线将其之间的平面区域划分成的矩形或三角形。
    D.时间映射分割的类型:在时间映射分割中分割块类型共分为四种类型,即A型分割块、B型分割块、C型分割块和D型分割块,以扫描基准文件为视角,如图2所示,将分割块的四个顶点分别定义为αu、αd、βu、βd,其中αu、αd是分别是位于扫描基准文件中的上、下两个点,βu、βd是则分别是位于另一文件中的上、下两个点。每个分割块可由其四个顶点和它的类型唯一表示,即αu,αd,βu,βd。连接αu、βu的带箭头的线,即位置在上的线,称为该分割块的上边界;连接αd、βd的带箭头的线,即位置在下的线,称为该分割块的下边界。A型分割块的上边界和下边界的箭头走向均是从扫描基准文件指向另一记录文件。其特殊情况1发生的条件是:扫描基准文件中记录的发送消息同时被两个节点接收,而另一记录文件恰由这个节点的记录文件合成。A型分割块的特殊情况2发生的条件是:当在两个待排序文件中检测到存在矛盾时,依据相应的算法对矛盾进行消除,处理后的SRP所对应的时空映射图即会出现A型分割块的特殊情况2。B型分割块的上边界由扫描基准文件指向另一记录文件,下边界的指向相反。C型分割块的上边界和下边界的箭头走向均是从另一记录文件指向扫描基准文件,需要特别说明的是,C型分割块也存在如A型分割块的两种特殊情况,其对应的第一种特殊情况在排序中本发明并不关心,因此不特别指出,而对应的第二种特殊情况和A型的发生条件一样,是由本发明消除矛盾后产生的。D型分割块的上边界是由另一记录文件指向扫描基准文件,下边界指向相反。
    E.SRP和SRP表
    发送-接收对(Send-Receive Pair,简记作SRP):为有序二元组(T(S(mi,j)),T(R(mi,j))),由消息mi,j的发送事件逻辑时间和接收事件逻辑时间构成。
    T(S(mi,j))表示消息mi,j的发送事件对应的本地逻辑时间,由计数器实现;
    T(R(mi,j))表示消息mi,j的接收事件对应的接收方的逻辑时间,由计数器实现;
    S(mi,j)表示消息mi,j的发送事件;
    R(mi,j)表示消息mi,j的接收事件
    {mi,j}表示仿真过程中,节点ni发出的第j个消息;ni表示分布式系统中的第i个节点,i为正整数;
    {n1,n2,...,nN}表示具有N个节点的分布式系统。
    SRP表:参与排序的两个记录文件中,所有由一方发送给另外一方的消息的SRP的线性表。
    本发明是提供一种分布式系统以及计算机网络领域中的分布节点记录整合的方法,便在分布式系统运行结束后,能在保证因果一致性的条件下,对事件进行排序,便于事件检索、系统评估等,并尽量减少对系统实时性的影响。
    如图3所示,本发明具体实现步骤如下:
    步骤1,确定待排序的两个记录文件,提取记录文件中记录节点的信息,所述的记录节点的信息包括发送方和接收方。
    首先指出记录文件的文件名的命名规则:
    1.1)源文件以节点handle命名,扩展名为:.log;
    1.2)中间文件则以构成它的文件的文件名中的节点handle的集合命名:handle{,handle}.log;
    1.3)最终的回放文件命名为replay.log。
    然后根据待排序记录文件的文件名,分别提取其中的节点handle信息。
    根据记录文件到达收集服务器的顺序,选取前两个记录文件为待排序记录文件,并依据文件名提取文件中的节点信息,提取节点信息的方法参考上述记录文件命名规则。
    步骤2,根据已提取的记录节点的信息,提取待排序的两个记录文件的发送-接收对(SRP)信息,形成所述两个记录文件各自的SRP表。
    如图4所示,采用a.log和b.log分别表示两个待排序的记录文件,该步骤具体实现如下:
    (2.1)如图4,顺次扫描a.log,发现事件R(mi3,j3)和事件R(mi4,j4)是来自b.log的消息的接收事件,于是,将他们在a.log里的位置信息,即3、5分别记录到b.log待形成的SRP表对应的项中,并记录这两个接收事件的发送方和发送消息句柄;
    (2.2)如图4,扫描b.log,S(mi3,j3)是消息的发送事件,则扫描b.log待形成的SRP表,检查是否有同一消息的接收事件存在,结果为有,即先前记录的R(mi3,j3),于是在记录R(mi3,j3)的SRP项的相应位置,并记下S(mi3,j3)在b.log中的位置信息,至此,形成图4中b.log的SRP表的第一个SRP项(1,3);继续扫描b.log,R(mi1,j1)是来自记录文件a.log的发送事件,于是将其在b.log中的位置信息,即2,记录到a.log待形成的SRP表的相应位置中,并记录这个接收事件的发送方和发送消息句柄;以此类推,当扫描b.log完毕时,形成记录文件b.log的SRP表,如图4所示,而记录文件a.log待形成的SRP表中,所有的SRP项中只有消息接收事件的信息,即图4的文件a.log的SRP表中,只有右半部分被填写,左半部分空缺;
    (2.3)如图4,再次扫描a.log,S(mi1,j1)是消息发送事件,则扫描a.log的待形成的SRP表,检查是否有同一消息的接收事件存在,结果为有,即R(mi1,j1),它已被记录在a.log的待形成的SRP表中的第一个SRP项中,于是,在此SRP项的发送事件对应的位置上记录S(mi1,j1)在a.log中的位置信息,即1,进而形成一个完整的SRP项(1,2);依次类推,当再此扫描a.log结束时,形成a.log的SRP表,如图4所示。
    步骤3,扫描形成的两个SRP表,检测是否存在矛盾,如果存在矛盾,则消除该矛盾。
    在分析记录文件的过程中,并不能保证发送序和接收序的一致性,即由于网络传输延迟等原因,消息的发送顺序与接收顺序不一致。在时间映射图中,其表现为来自同一文件的带箭头的线出现交叉,如图5所示。对两个文件提取相应的SRP信息后,分别对两个SRP表进行扫描排序(原表是按照接收方的记录顺序排列的),当检测到记录文件中存在矛盾时,即在两个记录文件中事件的发生顺序不一致,SRP表的情况如图6所示,并不能按照常规的思路进行分析、排序,而要进行特殊的处理,以消除矛盾。
    如图7所示,处理消除矛盾的步骤如下:
    (3.1)交换两个SRP表项,即将图6中SRP表(a2,b1)、(a1,b2),变成(a1,b2)、(a2,b1);
    (3.2)采用后一个SRP表项的右项取代前一个SRP表项的右项,即采用(a2,b1)中的b1取代(a1,b2)中的b2,使(a1,b2)变成(a1,b1),至此,经过矛盾消除,新的SRP如图7所示。
    步骤4,从两个记录文件中确定扫描基准文件,然后分别扫描两个记录文件,形成时间映射分割。
    确定扫描基准文件的方法为:为了方便处理分割的头部和尾部,根据两个待排序文件的第一条与对方的交互消息的位置关系来确定扫描基准文件。位置关系两种情况,如图8所示。对于情况8a,选择a.log为扫描基准文件,因为如果选择b.log,就会错过视图中显示的A型分割块;而对于情况8b,原则上可选择任意一个,本发明中选择SRP表长度较大的记录文件为扫描基准文件。
    如图9所示,形成时间映射分割的步骤如下:
    (4.1)设扫描基准文件的SRP表有N项,则N个表项将两个待排序记录文件的时间映射图分成头部、N-1个A型分割块、尾部;扫描已确定的扫描基准文件的SRP表项,将N-1个A型分割块按照顺序关系插入待形成的分割块表;
    (4.2)扫描另一个记录文件的SRP表项,检查是否对所述的N-1个分割块形成新的分割,如果有,则判断新的分割块的类型,并将新的分割按照新的分割块出现的位置插入到待形成的分割块表中,从而形成时间映射分割。
    步骤5,根据已形成的时间映射分割,再次扫描两个记录文件,并根据时间映射分割中分割块的类型对所述分割块中的事件进行排序
    如图10所示,该步骤具体可分为一下几步:
    (5.1)对时间映射图的头部和尾部的排序类似,其排序方式为:依次读取两个记录文件中位于时间映射图头部或尾部的记录,并插入中间文件尾;结合图10说明,对于扫描基准文件,不存在位于时间映射图头部的记录,而另一记录文件中记录b1、b2、b3位于时间映射图的头部,因此将记录b1、b2、b3插入中间文件尾部。尾部的处理类似,但要在处理完尾部之上的全部分割块后进行。
    (5.2)对于分割块的排序方式则要依据所述分割块的类型采用不同的处理方式:
    (5.2.1)当分割块为A或B型时,步骤如下:
    a.将A型或B分割块的左上定点αu代表的记录插入中间文件尾;
    b.依次扫描另一记录文件中位于右上顶点βu和右下定点之间的βd的记录;
    c.若右上顶点βu和右下定点之间的βd的记录是两个记录文件间交互信息的接收事件,则跳过;否则,将右上顶点βu和右下定点之间的βd的记录插入中间文件尾;
    d.将αu到αd之间的记录依次插入中间文件尾,αd以及标识来自另一记录文件的消息的接收事件的记录除外。
    结合图10说明A型分割块(a1,b4,a4,b5)的处理。首先将记录a1插入中间文件尾;然后依次扫描另一记录文件中位于b4、b5之间的记录,没有满足要求的记录需要插入中间文件尾;然后将位于a1和a4之间的记录,除了a4以及标识来自另一文件的消息的接收事件的记录a3,即a2插入中间文件尾。因此,A型分割块(a1,b4,a4,b5)处理完成后,中间文件中的记录为:b1、b2、b3、a1、a2。对与B型分割块(a4,b5,a8,b6)的处理类似,处理完成后,中间文件中的记录为:b1、b2、b3、a1、a2、a4、a5、a6、a7。
    (5.2.2)当分割块为C或D型时,步骤如下:
    a.将右上定点βu代表的记录插入中间文件尾;
    b.依次扫描所确定的扫描基准文件中位于左上顶点αu和左下顶点αd之间的记录:
    c.若左上顶点αu和左下顶点αd之间的记录是两个记录文件间交互信息的接收事件,则跳过;否则,将左上顶点αu和左下顶点αd之间的记录插入中间文件尾。
    d.将βu到βd之间的记录依次插入中间文件尾,βd以及标识来自扫描基准文件的消息的接收事件的记录除外。
    结合图10说明C型分割块(a8,b6,a9,b7)的处理.首先将记录b6插入中间文件尾;然后依次检查扫描基准文件中位于a8、a9之间的记录,没有满足要求的记录需要插入中间文件尾;然后检查位于b6、b7之间的记录,也没有满足要求的记录需要插入中间文件尾。因此C型分割块(a8,b6,a9,b7)处理完成后,中间文件中的记录为:b1、b2、b3、a1、a2、a4、a5、a6、a7、b6。对与D型分割块(a9,b7,a10,b9)的处理类似,处理完成后,中间文件中的记录为:b1、b2、b3、a1、a2、a4、a5、a6、a7、b6、b7、b8。
    最后,结合图10说明尾部的处理,处理方法如(5.1)所述。处理完成后,中间文件中的记录为:b1、b2、b3、a1、a2、a4、a5、a6、a7、b6、b7、b8、a10。至此,中间文件形成。
    总之,本发明具有执行效率高、保证事件的因果一致性的优点,应用到分布式系统本地记录整合中,保证一致性的前提下,对分布式系统运行的实时性的影响很小。
    本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
    以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

    关 键  词:
    一种 基于 时间 映射 事件 一致性 实现 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于时间映射的事件一致性实现方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1034261.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1