首页> 中国专利> 在分布式存储系统中确定事件之间关系的方法及装置

在分布式存储系统中确定事件之间关系的方法及装置

摘要

本发明公开了一种在分布式存储系统中确定事件之间关系的方法及装置。该方法包括:获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟;其中,第一混合逻辑时钟包括第一集群逻辑计数,第二混合逻辑时钟包括第二集群逻辑计数,第一集群逻辑计数和第二集群逻辑计数表示目标数据的事件的发生顺序;计算第一集群逻辑计数和第二集群逻辑计数的第一差值;当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系。本发明实施例能够解决无法确定事件之间关系是否为直接触发关系的问题。

著录项

  • 公开/公告号CN108984101A

    专利类型发明专利

  • 公开/公告日2018-12-11

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201710404747.7

  • 发明设计人 钟延辉;何彦斌;

    申请日2017-06-01

  • 分类号

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人彭琼

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 07:35:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-08

    授权

    授权

  • 2019-01-04

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20170601

    实质审查的生效

  • 2018-12-11

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,尤其涉及一种在分布式存储系统中确定事件之间关系的方法及装置。

背景技术

混合逻辑时钟(Hybrid Logical Clock,HLC)是将逻辑时钟和物理时钟联系起来的一种时钟,常用于记录发生的事件之间的先后顺序关系,目的是确定各个事件的发生次序,并且基于这种事件之间的先后次序推导出多个程序(Process)上发生的各个事件的整体次序关系(Total Ordering)。

分布式系统中,数据处理和数据传输作为事件,在事件发生时计算当时的混合逻辑时钟,并携带在数据中。通常根据发生数据处理或数据传输时对应混合逻辑时钟的大小来确定两个事件发生的先后顺序。

虽然混合逻辑时钟虽然可以确定出事件发生的先后顺序,但是无法直接确定两个事件是否为连续发生,即无法直接确定两个事件之间的触发关系是否为直接触发。

发明内容

本发明实施例提供了一种在分布式存储系统中确定事件之间关系的方法及装置,能够解决现有混合逻辑时钟无法确定事件之间是否为直接触发关系。

第一方面,本发明实施例提供了一种在分布式存储系统中确定事件之间关系的方法,包括:

获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟;其中,第一混合逻辑时钟包括第一逻辑计数,第二混合逻辑时钟包括第二逻辑计数,第一逻辑计数和第二逻辑计数表示目标数据的事件的发生顺序;

计算第一逻辑计数和第二逻辑计数的第一差值;

当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系。

结合第一方面,在第一方面的第一种可能的实现方式中,方法还包括:

获得目标数据的第三事件对应的第三混合逻辑时钟以及目标数据的第四事件对应的第四混合逻辑时钟;其中,第三混合逻辑时钟包括第三逻辑计数,第四混合逻辑时钟包括第四逻辑计数,第三逻辑计数和第四逻辑计数表示目标数据的事件的发生顺序;

计算第三逻辑计数和第四逻辑计数的第二差值;

当第二差值的绝对值大于预设值时,确定第三事件与第四事件的触发关系为间接关系。

结合第一方面或上述可能的实现方式,在第一方面的第二种可能的实现方式中,确定第三事件与第四事件的触发关系为间接关系之后,还包括:

计算第二差值的绝对值与预设值的商;

根据商确定第三事件和第四事件之间发生目标数据的事件的数量。

结合第一方面或上述可能的实现方式,在第一方面的第三种可能的实现方式中,第一事件和第二事件为目标数据处理或发送目标数据;

第一集群逻辑计数等于第一事件发生之前的集群逻辑计数递增预设值后的值;

第二集群逻辑计数等于第二事件发生之前的集群逻辑计数递增预设值后的值。

结合第一方面或上述可能的实现方式,在第一方面的第四种可能的实现方式中,第一事件和第二事件为接收目标数据;

在获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟之前,还包括:

确定接收目标数据发生前的混合逻辑时钟,接收数据发生前的混合逻辑时钟包括第五混合逻辑时钟和第六混合逻辑时钟,第五混合逻辑时钟为接收数据中包括的混合逻辑时钟,第六混合逻辑时钟为接收目标数据的节点在接收目标前执行的事件对应的混合逻辑时钟;

当第五混合逻辑时钟的集群逻辑计数大于或等于第六混合逻辑时钟的集群逻辑计数时,将第六混合逻辑时钟的集群逻辑计数递增预设值后,作为接收目标数据对应混合逻辑时钟的集群逻辑计数;

当第五混合逻辑时钟的集群逻辑计数小于第六混合逻辑时钟的集群逻辑计数,将第六混合逻辑时钟的集群逻辑计数作为接收目标数据对应混合逻辑时钟的集群逻辑计数。

结合第一方面或上述可能的实现方式,在第一方面的第五种可能的实现方式中,获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟之后,还包括:

比较第一逻辑计数和第二逻辑计数的大小;

当第一逻辑计数大于第二逻辑计数时,确定第一事件先于第二事件发生;

当第一逻辑计数大于第二逻辑计数时,确定第二事件先于第一事件发生。

结合第一方面或上述可能的实现方式,在第一方面的第六种可能的实现方式中,还包括:

获得目标数据的第五事件对应的第五集群逻辑计数以及目标数据的第六事件对应的第六集群逻辑计数,第五事件和第六事件为同一集群中发生顺序相邻的目标数据的事件;

计算第五集群逻辑计数和第六集群逻辑计数的第三差值;

当第三差值大于预设值时,确定第五事件和第六事件中发生顺序在后的事件为接收同一集群以外的其他集群发送的目标数据。

第二方面,本发明实施例提供了一种在分布式存储系统中确定事件之间关系的装置,包括:

时钟获取单元,用于获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟;其中,第一混合逻辑时钟包括第一逻辑计数,第二混合逻辑时钟包括第二逻辑计数,第一逻辑计数和第二逻辑计数表示目标数据的事件的发生顺序;

计算单元,用于计算第一逻辑计数和第二逻辑计数的第一差值;

关系确定单元,用于当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系。

结合第二方面,在第二方面的第一种可能的实现方式中,时钟获取单元还用于获得目标数据的第三事件对应的第三混合逻辑时钟以及目标数据的第四事件对应的第四混合逻辑时钟;其中,第三混合逻辑时钟包括第三逻辑计数,第四混合逻辑时钟包括第四逻辑计数,第三逻辑计数和第四逻辑计数表示目标数据的事件的发生顺序;

计算单元还用于计算第三逻辑计数和第四逻辑计数的第二差值;

关系确定单元还用于当第二差值的绝对值大于预设值时,确定第三事件与第四事件的触发关系为间接关系。

结合第二方面或上述可能的实现方式,在第二方面的第二种可能的实现方式中,计算单元还用于计算第二差值的绝对值与预设值的商;

装置还包括:

数量确定单元,用于根据商确定第三事件和第四事件之间发生目标数据的事件的数量。

结合第二方面或上述可能的实现方式,在第二方面的第三种可能的实现方式中,第一事件和第二事件为目标数据处理或发送目标数据;

第一集群逻辑计数等于第一事件发生之前的集群逻辑计数递增预设值后的值;

第二集群逻辑计数等于第二事件发生之前的集群逻辑计数递增预设值后的值。

结合第二方面或上述可能的实现方式,在第二方面的第四种可能的实现方式中,第一事件和第二事件为接收目标数据;装置还包括:

时钟确定单元,用于确定接收目标数据发生前的混合逻辑时钟,接收数据发生前的混合逻辑时钟包括第五混合逻辑时钟和第六混合逻辑时钟,第五混合逻辑时钟为接收数据中包括的混合逻辑时钟,第六混合逻辑时钟为接收目标数据的节点在接收目标前执行的事件对应的混合逻辑时钟;

计算单元还用于:

当第五混合逻辑时钟的集群逻辑计数大于或等于第六混合逻辑时钟的集群逻辑计数时,将第六混合逻辑时钟的集群逻辑计数递增预设值后,作为接收目标数据对应混合逻辑时钟的集群逻辑计数;

当第五混合逻辑时钟的集群逻辑计数小于第六混合逻辑时钟的集群逻辑计数,将第六混合逻辑时钟的集群逻辑计数作为接收目标数据对应混合逻辑时钟的集群逻辑计数。

结合第二方面或上述可能的实现方式,在第二方面的第五种可能的实现方式中,还包括:

比较单元,用于比较第一逻辑计数和第二逻辑计数的大小;

顺序确定单元,用于当第一逻辑计数大于第二逻辑计数时,确定第一事件先于第二事件发生;以及,用于当第一逻辑计数大于第二逻辑计数时,确定第二事件先于第一事件发生。

结合第二方面或上述可能的实现方式,在第二方面的第六种可能的实现方式中,时钟获取单元还用于获得目标数据的第五事件对应的第五集群逻辑计数以及目标数据的第六事件对应的第六集群逻辑计数,第五事件和第六事件为同一集群中发生顺序相邻的目标数据的事件;

计算单元还用于计算第五集群逻辑计数和第六集群逻辑计数的第三差值;

装置还包括:

事件确定单元,用于当第三差值大于预设值时,确定第五事件和第六事件中发生顺序在后的事件为接收同一集群以外的其他集群发送的目标数据。

第三方面,本发明实施例提供了一种在分布式存储系统中确定事件之间关系的设备,包括:

存储器、处理器和总线;

存储器和处理器通过总线连接并完成相互间的通信;

存储器用于存储程序代码;

处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行如第一方面所述的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面所述的方法。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面所述的方法。

第六方面,本发明实施例提供一种计算机程序,当其在计算机上运行时,使得计算机执行第一方面所述的方法。

本发明实施例提供了一种在分布式存储系统中确定事件之间关系的方法及装置,本发明实施例中,首先获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟,第一混合逻辑时钟包括第一逻辑计数,第二混合逻辑时钟包括第二逻辑计数,第一逻辑计数和第二逻辑计数表示目标数据的事件的发生顺序;然后计算第一逻辑计数和第二逻辑计数的第一差值,当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系,即确定出第一事件和第二事件是否为连续发生的事件。本发明实施例中,由于第一逻辑计数和所述第二逻辑计数能够表示所述目标数据的事件的发生顺序,所以可以基于第一集群逻辑计数和第二集群逻辑计数之间的第一差值来确定事件之间的触发关系,即当第一差值的绝对值等于预设值时,可以确定两个事件之间的事件触发关系为直接关系。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。

图1是根据本发明实施例中在分布式存储系统中确定事件之间关系的方法的一种架构示意图;

图2是根据本发明一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图;

图3是根据本发明又一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图;

图4是根据本发明又一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图;

图5是根据本发明又一实施例中混合逻辑时钟的关系示意图;

图6是根据本发明又一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图;

图7是根据本发明一实施例中在分布式存储系统中确定事件之间关系的装置的示意性框图;

图8是根据本发明又一种或多种实施例中在分布式存储系统中确定事件之间关系的装置的示意性框图;

图9是根据本发明一实施例中在分布式存储系统中用确定事件之间关系的设备的示意性框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将参考附图并结合实施例来详细说明本申请。

本发明实施例中适用于通过混合逻辑时钟确定事件触发关系的场景。例如,用于分布式存储系统,图1为本发明实施例使用的一种架构示意图。如图1所示,设分布式集群系统包括集群A和集群B,集群A和集群B可以进行数据传输,集群A包括节点1和节点2,集群A包括节点3和节点4。现有技术中无法直接确定两个事件是否为连续发生本发明实施例中,在混合逻辑时钟中引入了集群逻辑计数这个参数,集群逻辑计数的大小能够表示目标数据相关事件的发生顺序,所以其能够对目标数据相关事件对应的逻辑时钟进行排序,并确定出目标数据相关的两个事件触发关系,解决了现有技术中无法确定事件触发关系是否为直接触发的问题。

本发明实施例中的目标数据是指分布式存储系统中对外呈现的数据,或对用户呈现的数据,例如同一逻辑地址的数据,或同一对象数据等,目标数据可以有不同版本。

图2是根据本发明一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图。如图2所示,该方法包括以下步骤101-103。

101,获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟。

其中,第一混合逻辑时钟包括第一集群逻辑计数,第二混合逻辑时钟包括第二集群逻辑计数,第一集群逻辑计数和第二集群逻辑计数表示目标数据的事件的发生顺序。在每个事件发生计算混合逻辑时钟时,也会计算对应的集群逻辑计数,所以每个事件均对应一个集群逻辑计数,进而集群逻辑计数记录了目标数据相关事件发生的顺序。在获取第一事件的第一混合逻辑时钟和第二事件的第二混合逻辑时钟时,可以确定第一集群逻辑计数和第二集群逻辑计数。

需要说明的是,本发明实施例中混合逻辑时钟还可以包括物理时钟、逻辑时钟和逻辑计数三个参数。

102,计算第一集群逻辑计数和第二集群逻辑计数的第一差值。

其中,每个事件均对应一个集群逻辑计数,所以不同事件之间的集群逻辑计数之间存在差值,差值的大小能够表示事件发生的时间跨度。

103,当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系。

其中,由于差值的大小能够表示事件发生的时间跨度,从而能够确定出事件之间的触发关系。

需要说明的是,步骤101中确定了目标数据的两个事件,即第一事件和第二事件,分别对应的混合逻辑时钟,目标数据的事件之间的触发关系可以通过两两比较的方式实现,所以对于第一事件和第二事件,可以根据此两个事件对应集群逻辑计数时钟之间的差值来确定触发关系。预设值表示目标数据的两个事件之间的事件触发关系为直接关系,即目标数据的两个事件为连续发生的事件时集群逻辑计数之间的差值。预设值的取值可以根据应用场景确定,例如,设置预设值为1。

本发明实施例中,由于第一逻辑计数和所述第二逻辑计数能够表示所述目标数据的事件的发生顺序,所以可以基于第一集群逻辑计数和第二集群逻辑计数之间的第一差值来确定事件之间的触发关系,即当第一差值的绝对值等于预设值时,可以确定两个事件之间的事件触发关系为直接关系。

需要说明的是,本发明实施例中,可以确定目标数据的两个事件之间的事件触发关系为直接关系,即判断出目标数据的两个事件之间是否存在其他事件发生,进而可以在后期数据故障排查等场景中,直接确定目标数据的两个事件之间是否可能存在故障,如果目标数据的两个事件为直接触发事件,则目标数据的两个事件之间不可能存在故障,从而可以提高故障排查的成功率。

图3是根据本发明又一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图。作为本发明又一个可选的实施例,在分布式存储系统中确定事件之间关系的方法还可以包括步骤104-106。

104,获得目标数据的第三事件对应的第三混合逻辑时钟以及目标数据的第四事件对应的第四混合逻辑时钟。

其中,第三混合逻辑时钟包括第三集群逻辑计数,第四混合逻辑时钟包括第四集群逻辑计数,第三集群逻辑计数和第四集群逻辑计数表示目标数据的事件的发生顺序。

105,计算第三集群逻辑计数和第四集群逻辑计数的第二差值。

106,当第二差值的绝对值大于预设值时,确定第三事件与第四事件的触发关系为间接关系。

其中,预设值表示目标数据的两个事件之间的事件触发关系为直接关系,即此两个事件为连续发生的事件时集群逻辑计数之间差值的绝对值。所以当目标数据的两个事件对应集群逻辑计数时钟之间的差值大于预设值时,说明集群逻辑计数时钟之间差值的绝对值大于目标数据的两个事件为连续发生的事件时集群逻辑计数之间差值的绝对值,则此两个事件不是连续发生的,触发关系为间接触发。当目标数据的两个事件对应集群逻辑计数时钟之间差值的绝对值等于预设值时,说明集群逻辑计数时钟之间差值的绝对值等于目标数据的两个事件为连续发生的事件时集群逻辑计数之间差值的绝对值,则此两个事件是连续发生的,触发关系为直接触发。

需要说明的是,预设值的取值可以根据应用场景确定,例如,设置预设值为1。

图4是根据本发明又一实施例中在分布式存储系统中确定事件之间关系的方法的示意性流程图。作为本发明又一个可选的实施例,在本发明实施例步骤106之后,还可以包括步骤107和步骤108。

107,计算第二差值的绝对值与预设值的商。

108,根据商确定第三事件和第四事件之间发生目标数据的事件的数量。

其中,由于预设值表示目标数据的两个事件为连续发生的事件时集群逻辑计数之间的差值,则目标数据的两个事件对应集群逻辑计数之间差值为预设值的整数倍,所以当目标数据的两个事件之间的触发关系被确定为间接关系时,可以根据集群逻辑计数之间差值与预设值的比值(商)确定两个事件之间发生目标数据相关事件的数量。

例如,设预设值为1,计算得出第二差值与预设值的商为2时,说明第三集群逻辑计数和第四集群逻辑计之间的跨度为2个预设值,进而可以确定在第三事件和第四事件之间还发生了1个与目标数据相关的事件。

在目标数据的事件发生时,如果对目标数据进行修改,通常还需要存储本次事件在事件发生时修改的数据,即不同的版本数据,并在每个版本数据中携带对应事件发生时的混合逻辑时钟。现有技术中,由于混合逻辑时钟只能比较时间发生的大小,所以对于不同版本的数据也只能确定数据修改的先后顺序,在对不同版本数据进行数据存储和读取时,需要统一对各版本进行排序,才能确定出各版本的准确时间顺序。在本发明实施例中,由于根据目标数据的事件对应的集群逻辑计数,可以确定出两个事件之间发生目标数据相关事件的数量,进而在接收到不同版本的数据后,可以基于其携带的混合逻辑时钟确定两个版本数据之间是否还会有其他版本数据,以及会有几个其他版本数据,从而可以预先安排存储各版本数据的空间,在数据读取时,也可以直接根据集群逻辑计数来确定要读取的版本,而不需要再进行统一排序,提升工作效率。

同时,如果某个版本数据丢失或未进行存储时,通过集群逻辑计数可以准确进行判断,避免数据读取时出现错误。

作为本发明又一个可选的实施例,在目标数据的事件发生时,均需要计算发生时的混合逻辑时钟,即每个目标数据的事件对应的混合逻辑时钟。本发明实施例中实施例中,混合逻辑时钟引入集群逻辑计数,所以在步骤101之前,本发明实施例所述的方法还包括计算第一集群逻辑计数和第二集群逻辑计数。目标数据的事件包括处理目标数据、发送目标数据和接收目标数据,不同的事件对应不同的集群逻辑计数计算方法。

具体的,当第一事件和第二事件为目标数据处理或发送目标数据时,第一集群逻辑计数等于第一事件发生之前的集群逻辑计数递增预设值后的值;第二集群逻辑计数等于第二事件发生之前的集群逻辑计数递增预设值后的值。可以理解为当第一事件和第二事件为目标数据处理或发送目标数据时,本发明实施例所述的方法在步骤101之前还可以包括步骤109:将目标数据数据处理或发送目标数据发生之前的集群逻辑计数递增预设值后,作为目标数据处理或发送目标数据对应的集群逻辑计数。

其中,在第一事件和/或第二事件为数据处理或发送数据时,表示此事件发生的节点已经发生了接收目标数据的事件,节点在接收目标数据后对数据执行目标数据处理或发送目标数据的事件,此过程中均为同一个节点在执行,所以将目标数据处理或发送目标数据发生之前此节点的混合逻辑时钟中的集群逻辑计数递增预设值后,即可作为目标数据处理或发送目标数据发生时混合逻辑时钟的集群逻辑计数,即目标数据处理或发送目标数据对应混合逻辑时钟的集群逻辑计数。

具体的,当第一事件和第二事件为接收目标数据时,本发明实施例所述的方法在步骤101之前还可以包括步骤110-112。

110,确定接收目标数据发生前的混合逻辑时钟。

其中,接收数据发生前的混合逻辑时钟包括第五混合逻辑时钟和第六混合逻辑时钟,第五混合逻辑时钟为接收数据中包括的混合逻辑时钟,第六混合逻辑时钟为接收目标数据的节点在接收目标前执行的事件对应的混合逻辑时钟。

当第一事件和/或第二事件为接收目标数据时,表示目标数据由其他节点发送,目标数据中携带着其他节点执行发送目标数据的事件时的混合逻辑时钟,即第五混合逻辑时钟,所以此时接收目标数据的节点需要根据目标数据携带的第五混合逻辑时钟以及接收目标数据的节点在执行接收目标数据的前一个事件时对应的第六混合逻辑时钟来计算接收目标数据发生时的混合逻辑时钟,即接收目标数据对应的混合逻辑时钟。

本发明实施例中,首先通过步骤110确定第五混合逻辑时钟和第六逻辑时钟,基于第五混合逻辑时钟的集群逻辑计数和第六逻辑时钟的集群逻辑计数之间的大小关系,来计算接收目标数据对应混合逻辑时钟的集群逻辑计数,即计算出接收目标数据对应混合逻辑时钟的混合逻辑时钟。

111,当第五混合逻辑时钟的集群逻辑计数大于或等于第六混合逻辑时钟的集群逻辑计数时,将第六混合逻辑时钟的集群逻辑计数递增预设值后,作为接收目标数据对应混合逻辑时钟的集群逻辑计数。

其中,步骤111为第五混合逻辑时钟的集群逻辑计数大于或等于第六混合逻辑时钟的集群逻辑计数的情况,此时需要先将第六混合逻辑时钟的集群逻辑计数递增预设值,然后将递增后的值作为接收目标数据对应混合逻辑时钟的集群逻辑计数。

112,当第五混合逻辑时钟的集群逻辑计数小于第六混合逻辑时钟的集群逻辑计数,将第六混合逻辑时钟的集群逻辑计数作为接收目标数据对应混合逻辑时钟的集群逻辑计数。

其中,步骤112为第五混合逻辑时钟的集群逻辑计数小于第六混合逻辑时钟的集群逻辑计数的情况,此时直接将第六混合逻辑时钟的集群逻辑计数作为接收目标数据对应混合逻辑时钟的集群逻辑计数即可。

需要说明的是,本发明实施例中预设值的取值可以根据实际需求确定,在此不做限定。本发明实施例中,混合逻辑时间还可以包括物理时间、逻辑时间和修正时间,物理时间、逻辑时间和修正时间的计算方式,在此不再限定。

在上述过程中,集群逻辑计数的计算过程中,集群逻辑计数会按照事件发生的先后顺序逐渐增加,即对目标数据而言,其每被执行一次目标数据的事件,对应的集群逻辑计数就会增加,基于此原理,本发明实施例中在确定出与目标数据相关时间对应的混合逻辑时钟后,即可根据混合逻辑时钟中的集群逻辑计数确定出混合逻辑时钟的大小顺序,进而确定出事件发生的先后顺序。

例如,在图1所示架构的基础上,如图5所示,为各节点中事件发生时混合逻辑时钟的变化,图中箭头方向表示数据传输的方向。现有技术中混合逻辑时钟包括三个参数pt、l和c,pt表示事件发生时的物理时钟,l表示事件发生时的逻辑时钟,c表示事件发生时的逻辑计数。本发明实施例中假设预设值为1,如图5所示,每个混合逻辑时钟包括四个参数pt、l、c和cc,表示为(pt,l,c,cc),其中,cc表示事件发生时的集群逻辑计数。

由图5中箭头可知目标数据的处理过程:节点1向节点3发送目标数据,节点1发送目标数据的混合逻辑时钟t1为(10,10,0,0),并且t1会携带在目标数据中发送给节点3;节点3接收节点1发送的目标数据,节点3接收目标数据发生时,根据t1和其在接收目标数据的前一时间的混合逻辑时钟(0,0,0,0),计算其接收目标数据的混合逻辑时钟t2,得出t2为(1,10,1,1);然后节点3将目标数据发送给节点2,并根据t2计算出此时发送目标数据的混合逻辑时钟t3为(2,10,2,2),并且t3会携带在目标数据中发送给节点2;节点2接收目标数据后,依据节点3接收目标数据时混合逻辑时钟的计算过程计算出其接收目标数据的混合逻辑时钟t4为(12,12,0,3);然后节点2将目标数据发送至节点4,节点4接收目标数据后将目标数据发送给节点3,并按照上述混合逻辑时钟的计算方式,计算出节点2发送目标数据的混合逻辑时间t5为(13,13,0,4),节点4接收目标数据的混合逻辑时间t6为(3,13,1,5),节点4发送目标数据的混合逻辑时间t7为(4,14,2,6),节点3第二次接收目标数据的混合逻辑时间t8为(4,14,3,7)。

如图5所示,基于上述目标数据的事件对应的集群逻辑计数计算方式,得出图5中混合逻辑时钟的值。对于集群A中节点1和节点2来说,与目标数据相关事件对应的混合逻辑时钟为t1、t4和t5,图6中可知t1为(10,10,0,0)、t4为(12,12,0,3)和t5(13,13,0,4)。

同时,t1中集群逻辑计数的值为0,t4中集群逻辑计数的值为3,则t1与t4之间集群逻辑计数的差值为3,由于3大于预设值的值1,则说明t1对应事件与t4对应事件之间的触发关系为间接触发,此两事件不是连续发生的。进一步的,3与1之间的商为3,即t1与t4之间集群逻辑计数的差值为预设值的3倍,说明t1对应事件与t4对应事件之间还发生了与目标数据相关的2个事件,即为t2对应的事件和t3对应的事件。

需要说明的是,在上述实施例中所述的方法均可适用于集群间数据传输的场景。

作为本发明又一个可选的实施例,由于集群逻辑计数能够表示目标数据的事件的发生顺序,则可以根据目标数据的事件对应的集群逻辑计数来确定目标数据的事件的发生顺序。另外,由于现有技术中混合逻辑时钟的大小也能表示时间的先后顺序,所以对于目标数据的事件对应的混合逻辑时钟可以根据混合逻辑时钟中的集群逻辑计数来确定大小关系,即对于目标数据的事件对应的混合逻辑时钟,可以基于其中的集群逻辑计数来确定大小顺序。

例如,本发明实施例中,由于设置集群逻辑计数随着目标数据的事件发生而增大,则较大集群逻辑计数所属的混合逻辑时钟大于较小集群逻辑计数所属的混合逻辑时钟。即目标数据的事件发生越早,其对应的混合逻辑时钟中集群逻辑计数越小,此时对于目标数据的事件对应的混合逻辑时钟,较大集群逻辑计数所属的混合逻辑时钟大于较小集群逻辑计数所属的混合逻辑时钟,进而可以对混合逻辑时钟进行排序。

如图5所示,在确定出t1、t4和t5后,分别基于t1、t4和t5中cc的值,即可确定出t1<t4<t5,进而可以确定出对应t1的事件最先发生,对应t5的事件最后发生。

需要说明的是,由于现有技术中通常通过混合逻辑时钟排序,本发明实施例中还可以通过下属过程完成:从目标数据的多个事件对应的混合逻辑时钟中,筛选能够通过逻辑时钟和逻辑计数确定混合逻辑时钟大小的第一混合逻辑时钟集,以及无法通过逻辑时钟和逻辑计数确定混合逻辑时钟大小的第二混合逻辑时钟集;然后通过逻辑时钟和逻辑计数,对第一混合逻辑时钟集排序;再按照集群逻辑计数的大小,将第二混合逻辑时钟集中的混合逻辑时钟插入排序后的第一混合逻辑时钟集的队列中。

其中,通过混合逻辑时钟中逻辑时钟和逻辑计数,可以对目标数据的多个事件对应的混合逻辑时钟的大小,即可以进行排序。而通过混合逻辑时钟中逻辑时钟和逻辑计数,无法确定集群接收其他集群数据的事件对应的混合逻辑时钟的大小,即无法对这些混合逻辑时钟进行排序。所以基于混合逻辑时钟中逻辑时钟和逻辑计数是否能够确定混合逻辑时钟大小,将混合逻辑时钟分为第一混合逻辑时钟集和第二混合逻辑时钟集。

第一混合逻辑时钟集为能够通过逻辑时钟和逻辑计数确定混合逻辑时钟大小的混合逻辑时钟,所以这些混合逻辑时钟可以基于逻辑时钟和混合逻辑时钟的逻辑计数对第一混合逻辑时钟集进行排序。然后基于集群逻辑计数,可以将第二混合逻辑时钟集插入到第一混合逻辑时钟集排序后的队列中,即实现对全部混合逻辑时钟的排序。

上述过程中,在逻辑时钟和逻辑计数对混合逻辑时钟排序的基础上,引入集群逻辑计数,将集群逻辑计数与逻辑时钟和逻辑计数相结合,实现对混合逻辑时钟排序。

图6是根据本发明又一实施例中确定事件之间关系的方法的示意性流程图。作为本发明又一个可选的实施例,在步骤101获取第一混合逻辑时钟和第二混合逻辑时钟后,可以通过比较第一逻辑计数和第二逻辑计数的大小来确定第一事件和第二事件发生的先后顺序。具体可以执行为步骤113-115。

113、比较第一集群逻辑计数和第二集群逻辑计数的大小。

114、当第一集群逻辑计数大于第二集群逻辑计数时,确定第一事件先于第二事件发生。

115、当第一集群逻辑计数大于第二集群逻辑计数时,确定第二事件先于第一事件发生。

其中,本发明实施例中,集群逻辑计数随事件发生逐渐增加,所以在比较第一逻辑计数和第二逻辑计数的大小后,如果第一集群逻辑计数大于第二集群逻辑计数,则说明第一事件先于第二事件发生;如果第一集群逻辑计数小于第二集群逻辑计数,则说明第二事件先于第一事件发生。

作为本发明又一个可选的实施例,在分析目标数据的时间之间关系时,通常是正对某一个集群中目标数据的事件进行分析,即在获取的第五事件和第六事件为同一集群。此时,如果第五事件和第六事件为顺序相邻的连个事件,即在第五事件和第六事件对应的集群中,第五事件和第六事件的发生顺序相邻,则可以根据第五事件对应的第五集群逻辑计数和第六事件对应的集群逻辑计数之间的差值与预设值之间的大小,来确定第五事件和第六事件中是否存在接收其他集群发送的目标数据的事件。具体可以执行为步骤116-118。

116,获得目标数据的第五事件对应的第五集群逻辑计数以及目标数据的第六事件对应的第六集群逻辑计数。

其中,第五事件和第六事件为同一集群中发生顺序相邻的目标数据的事件。

由于本发明实施例中,在接收集群间目标数据的事件发生时,其对应集群逻辑计数会相对于本集群中前一目标数据的事件的集群逻辑计数发生较大的变化,所以基于同一集群中顺序相邻的两个目标数据的事件对应的集群逻辑计数的变换情况,可以判断出是否存在接收集群间目标数据的事件。

117,计算第五集群逻辑计数和第六集群逻辑计数的第三差值。

118,当第三差值的绝对值大于预设值时,确定第五事件和第六事件中发生顺序在后的事件为接收同一集群以外的其他集群发送的目标数据。

其中,预设值可以根据具体场景进行设置,表示顺序相邻的目标数据的两个事件对应的集群逻辑计数的变化程度。如果第三差值的绝对值大于预设值,说明第五事件和第六事件中发生在后事件的集群逻辑计数相对于发生在前事件的集群逻辑计数变化较大,即可确定第五事件和第六事件中发生在后的事件为接收第五事件和第六事件对应集群以外的其他集群发送的目标数据。

例如,如图5所示,预设值的取值为1,集群A中与目标数据相关事件对应的混合逻辑时钟为t1、t4和t5,排序后得出由小到大的顺序为t1、t4、t5。以顺序相邻的两个事件为t1对应事件和t4对应事件为例,两事件对应混合逻辑时钟中集群逻辑计数之间的差值为3,由于3大于1,即差值大于预设值,此时可以确定t4对应事件为接收A集群以外的其他集群发送的数据。

在上述过程中,通过对集群逻辑计数的分析,可以确定目标数据的事件中哪些事件是接收其他集群发送的数据,进而可以建立起集群间的两个发送接收事件的偏序关系。

图7示出了根据本发明一实施例的在分布式存储系统中确定事件之间关系的装置200的示意性框图。如图7所示,该装置200包括:

时钟获取单元201,用于获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟;其中,第一混合逻辑时钟包括第一逻辑计数,第二混合逻辑时钟包括第二逻辑计数,第一逻辑计数和第二逻辑计数表示目标数据的事件的发生顺序;

计算单元202,用于计算第一逻辑计数和第二逻辑计数的第一差值;

关系确定单元203,用于当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系。

本发明实施例中,由于第一逻辑计数和第二逻辑计数能够表示目标数据的事件的发生顺序,所以可以基于第一集群逻辑计数和第二集群逻辑计数之间的第一差值来确定事件之间的触发关系,即当第一差值的绝对值等于预设值时,可以确定两个事件之间的事件触发关系为直接关系。

可以理解的是,时钟获取单元201还用于获得目标数据的第三事件对应的第三混合逻辑时钟以及目标数据的第四事件对应的第四混合逻辑时钟;其中,第三混合逻辑时钟包括第三逻辑计数,第四混合逻辑时钟包括第四逻辑计数,第三逻辑计数和第四逻辑计数表示目标数据的事件的发生顺序;

计算单元202还用于计算第三逻辑计数和第四逻辑计数的第二差值;

关系确定单元203还用于当第二差值的绝对值大于预设值时,确定第三事件与第四事件的触发关系为间接关系。

图8是根据本发明又一个或多个实施例的确定事件之间关系的装置200的示意性框图。

可以理解的是,计算单元202,还用于计算第二差值的绝对值与预设值的商;

如图8所示,该装置200还可以包括:

数量确定单元204,用于根据商确定第三事件和第四事件之间发生目标数据的事件的数量。

可以理解的是,第一事件和第二事件为目标数据处理或发送目标数据;

第一集群逻辑计数等于第一事件发生之前的集群逻辑计数递增预设值后的值;

第二集群逻辑计数等于第二事件发生之前的集群逻辑计数递增预设值后的值。

可以理解的是,第一事件和第二事件为接收目标数据;

如图8所示,该装置200还可以包括:

时钟确定单元205,用于确定接收目标数据发生前的混合逻辑时钟,接收数据发生前的混合逻辑时钟包括第五混合逻辑时钟和第六混合逻辑时钟,第五混合逻辑时钟为接收数据中包括的混合逻辑时钟,第六混合逻辑时钟为接收目标数据的节点在接收目标前执行的事件对应的混合逻辑时钟;

计算单元202还用于:

当第五混合逻辑时钟的集群逻辑计数大于或等于第六混合逻辑时钟的集群逻辑计数时,将第六混合逻辑时钟的集群逻辑计数递增预设值后,作为接收目标数据对应混合逻辑时钟的集群逻辑计数;

当第五混合逻辑时钟的集群逻辑计数小于第六混合逻辑时钟的集群逻辑计数,将第六混合逻辑时钟的集群逻辑计数作为接收目标数据对应混合逻辑时钟的集群逻辑计数。

可以理解的是,如图8所示,该装置200还可以包括:

比较单元206,用于比较第一逻辑计数和第二逻辑计数的大小;

顺序确定单元207,用于当第一逻辑计数大于第二逻辑计数时,确定第一事件先于第二事件发生;以及,用于当第一逻辑计数大于第二逻辑计数时,确定第二事件先于第一事件发生。

可以理解的是,时钟获取单元201还用于获得目标数据的第五事件对应的第五集群逻辑计数以及目标数据的第六事件对应的第六集群逻辑计数,第五事件和第六事件为同一集群中发生顺序相邻的目标数据的事件;

计算单元202还用于计算第五集群逻辑计数和第六集群逻辑计数的第三差值;

如图8所示,该装置200还可以包括:

事件确定单元208,用于当第三差值大于预设值时,确定第五事件和第六事件中发生顺序在后的事件为接收同一集群以外的其他集群发送的目标数据。

根据本发明实施例的在分布式存储系统中确定事件触发关系的装置200,可对应于根据本发明实施例的在分布式存储系统中确定事件触发关系的方法中的执行主体,并且在分布式存储系统中确定事件触发关系的装置200中的各个模块的上述和其它操作和/或功能分别为了实现图2至图6中的各个方法的相应流程,为了简洁,在此不再赘述。

图9是根据本发明一实施例的在分布式存储系统中确定事件之间关系的设备300的示意性框图。如图9所示,设备300包括处理器301和存储器302总结303,总线303用于连接处理器301和存储器302,使处理器301和存储器302通过总线303进行相互通信,存储器302用于存储可执行的程序代码,处理器301通过读取存储器302中存储的可执行程序代码来运行与可执行程序代码对应的程序。

具体地,处理器301还用于执行一种在分布式存储系统中确定事件之间关系的方法;其中,在分布式存储系统中确定事件之间关系的方法包括:

获得目标数据的第一事件对应的第一混合逻辑时钟以及目标数据的第二事件对应的第二混合逻辑时钟;其中,第一混合逻辑时钟包括第一集群逻辑计数,第二混合逻辑时钟包括第二集群逻辑计数,第一集群逻辑计数和第二集群逻辑计数表示目标数据的事件的发生顺序;

计算第一集群逻辑计数和第二集群逻辑计数的第一差值;

当第一差值的绝对值等于预设值时,确定第一事件与第二事件的触发关系为直接关系。

根据本发明实施例的在分布式存储系统中确定事件触发关系的设备300,可对应于根据本发明实施例的在分布式存储系统中确定事件触发关系的方法中的执行主体,并且在分布式存储系统中确定事件触发关系的设备300中的各个模块的上述和其它操作和/或功能分别为了实现图2至图6中的各个方法的相应流程,为了简洁,在此不再赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(olid State Disk,SSD))等。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号