一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

维持分布式集群中混合逻辑时钟全局一致性的方法和装置与流程

2022-11-14 15:07:33 来源:中国专利 TAG:


1.本发明涉及分布式时钟技术领域,尤其涉及一种维持分布式集群中混合逻辑时钟全局一致性的方法和装置。


背景技术:

2.混合逻辑时钟hlc是将物理时钟和逻辑时钟进行组合产生的。高位采用一定精度的物理时钟,低位采用逻辑时钟。高位的物理时钟保障了时间关联性,低位的逻辑时钟满足高并发的需求。分布式集群中不同节点的混合逻辑时钟,随着消息的扩散,在集群中进行同步。通过对比本机物理时钟、本机混合逻辑时钟以及远端消息中的混合逻辑时钟来更新本机的混合逻辑时钟。消息扩散触发的同步策略,保证了混合逻辑时钟在分布式集群中的一致性。在实际应用中,存在以下不足:1.当时钟往前跳变时,集群的可用生命周期变短;2.当时钟向后跳变时,集群的hlc失去了时间关联性;3.当集群故障时,发生时间跳变,将无法保证hlc的单调递增性。
3.因此,如何提供一种时钟跳变场景下有效的分布式时钟方法,成为亟待解决的技术问题。


技术实现要素:

4.有鉴于此,为了克服现有技术的不足,本发明通过引入物理时钟的跳变值,来保证混合逻辑时钟在时间跳变时满足时间关联性和单调递增性,维持分布式集群中混合逻辑时钟的全局一致性,使得混合逻辑时钟在分布式集群中存在时间跳变时或在故障场景下,依然能够正常工作。
5.一方面,本发明提供一种维持分布式集群中混合逻辑时钟全局一致性的方法,包括:
6.步骤s1:获取t1时刻本节点的混合逻辑时钟值与物理时钟值;
7.步骤s2:根据t1时刻本节点的混合逻辑时钟值计算t2时刻本节点的混合逻辑时钟值;
8.步骤s3:获取t2时刻本节点的物理时钟值,根据时钟跳变类型,计算本节点物理时钟的跳变值,根据跳变值判断是否发生时间跳变;
9.步骤s4:获取t3时刻本节点的物理时钟值,更新t3时刻本节点的混合逻辑时钟值。
10.进一步地,本发明维持分布式集群中混合逻辑时钟全局一致性的方法,步骤s1中,以不超过2s的时间间隔获取t1时刻本节点的混合逻辑时钟值。
11.进一步地,本发明维持分布式集群中混合逻辑时钟全局一致性的方法,步骤s2中,t2时刻本节点的混合逻辑时钟值等于t1时刻本节点的混合逻辑时钟值加1。
12.进一步地,本发明维持分布式集群中混合逻辑时钟全局一致性的方法,步骤s3中,根据时钟跳变类型,计算本节点物理时钟的跳变值,包括:
13.当本节点向未来跳变时,本节点物理时钟的跳变值等于t1时刻的混合逻辑时钟值
与t2时刻的物理时钟值的差值;
14.当本节点向过去跳变时,本节点物理时钟的跳变值等于t2时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值。
15.进一步地,本发明维持分布式集群中混合逻辑时钟全局一致性的方法,步骤s3中,根据跳变值判断是否发生时间跳变,包括:当计算出所得的物理时钟的跳变值大于2s,判定发生时间跳变。
16.进一步地,本发明维持分布式集群中混合逻辑时钟全局一致性的方法,其特征在于,步骤s4中,更新t3时刻本节点的混合逻辑时钟值,包括:
17.步骤s41:对t3时刻本节点的物理时钟值与本节点物理时钟的跳变值求和,得到第一求和值;
18.步骤s42:对t2时刻的混合逻辑时钟值进行加1求和处理,得到第二求和值;
19.步骤s43:比较第一求和值与第二求和值,将较大的值作为t3时刻的混合逻辑时钟值。
20.另一方面,本发明还提供一种维持分布式集群中混合逻辑时钟全局一致性的装置,所述装置包括:
21.混合逻辑时钟值获取模块,用于以不超过2s的时间间隔获取t1时刻本节点的混合逻辑时钟值;
22.物理时钟值获取模块,用于获取t1时刻本节点的物理时钟值、t2时刻本节点的物理时钟值以及t3时刻本节点的物理时钟值;
23.混合逻辑时钟值计算模块,用于根据t1时刻本节点的混合逻辑时钟值计算t2时刻本节点的混合逻辑时钟值;
24.物理时钟跳变值计算模块,用于根据时钟跳变类型,计算本节点物理时钟的跳变值,根据跳变值判断是否发生时间跳变;
25.混合逻辑时钟值更新模块,用于更新t3时刻本节点的混合逻辑时钟值。
26.进一步地,本发明的维持分布式集群中混合逻辑时钟全局一致性的装置,t2时刻本节点的混合逻辑时钟值等于t1时刻本节点的混合逻辑时钟值加1。
27.进一步地,本发明的维持分布式集群中混合逻辑时钟全局一致性的装置中,混合逻辑时钟值计算模块,用于根据时钟跳变类型,计算本节点物理时钟的跳变值,包括:
28.当本节点向未来跳变时,本节点物理时钟的跳变值等于t1时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值;
29.当本节点向过去跳变时,本节点物理时钟的跳变值等于t2时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值。
30.进一步地,本发明的维持分布式集群中混合逻辑时钟全局一致性的装置中,混合逻辑时钟值更新模块,用于对t3时刻本节点的物理时钟值与本节点物理时钟的跳变值求和,得到第一求和值;对t2时刻的混合逻辑时钟值进行加1求和处理,得到第二求和值;比较第一求和值与第二求和值,将较大的值作为t3时刻的混合逻辑时钟值。
31.本发明维持分布式集群中混合逻辑时钟全局一致性的方法和装置,具有以下有益效果:
32.1.可以在2s内快速检测到单节点的时钟跳变。
33.2.在无性能损耗的前提下,可以确保hlc在故障场景下的时间关联性和单调递增性。
34.3.可以确保hlc在分布式集群中的一致性,能够容忍集群中各节点物理时间存在差异。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
36.图1为本发明第一实施例维持分布式集群中混合逻辑时钟全局一致性的方法的流程图。
37.图2为本发明第二实施例维持分布式集群中混合逻辑时钟全局一致性的方法的流程图。
38.图3为本发明第三实施例维持分布式集群中混合逻辑时钟全局一致性的装置的架构图。
39.图4为本发明第四实施例维持分布式集群中混合逻辑时钟全局一致性方法的原理图。
40.图5为本发明第五实施例维持分布式集群中混合逻辑时钟全局一致性方法的原理图。
具体实施方式
41.下面结合附图对本发明实施例进行详细描述。
42.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
43.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
44.图1为根据本发明示例性第一实施例的一种维持分布式集群中混合逻辑时钟全局一致性的方法的流程图,如图1所示,本实施例所述方法,包括:
45.步骤s1:获取t1时刻本节点的混合逻辑时钟值与物理时钟值;
46.步骤s2:根据t1时刻本节点的混合逻辑时钟值计算t2时刻本节点的混合逻辑时钟值;
47.步骤s3:获取t2时刻本节点的物理时钟值,根据时钟跳变类型,计算本节点物理时钟的跳变值,根据跳变值判断是否发生时间跳变;
48.步骤s4:获取t3时刻本节点的物理时钟值,更新t3时刻本节点的混合逻辑时钟值。
49.本实施例方法的步骤s1中,以不超过2s的时间间隔获取t1时刻本节点的混合逻辑时钟值。
50.本实施例方法的步骤s2中,t2时刻本节点的混合逻辑时钟值等于t1时刻本节点的混合逻辑时钟值加1。本实施例方法中,混合逻辑时钟值的单位是十六分之一纳秒,因此本实施例方法步骤s2中的“1”表示1个十六分之一纳秒。
51.本实施例方法的步骤s3中,根据时钟跳变类型,计算本节点物理时钟的跳变值,包括:
52.当本节点向未来跳变时,本节点物理时钟的跳变值等于t1时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值;
53.当本节点向过去跳变时,本节点物理时钟的跳变值等于t2时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值。
54.本实施例方法的步骤s3中,根据跳变值判断是否发生时间跳变,包括:当计算出所得的物理时钟的跳变值大于2s,判定发生时间跳变。
55.图2为根据本发明示例性第二实施例的一种维持分布式集群中混合逻辑时钟全局一致性的方法的流程图,本实施例是图1所示方法的优选实施例,如图2所示,本实施例方法的步骤s4中,更新t3时刻本节点的混合逻辑时钟值,包括:
56.步骤s41:对t3时刻本节点的物理时钟值与本节点物理时钟的跳变值求和,得到第一求和值;
57.步骤s42:对t2时刻的混合逻辑时钟值进行加1求和处理,得到第二求和值;
58.步骤s43:比较第一求和值与第二求和值,将较大的值作为t3时刻的混合逻辑时钟值。
59.本实施例方法中,混合逻辑时钟值的单位是十六分之一纳秒,因此本实施例方法步骤42中的“1”表示1个十六分之一纳秒。
60.图3为根据本发明示例性第三实施例的一种维持分布式集群中混合逻辑时钟全局一致性的装置的架构图,如图3所示,本实施例的装置包括:
61.混合逻辑时钟值获取模块,用于以不超过2s的时间间隔获取t1时刻本节点的混合逻辑时钟值;
62.物理时钟值获取模块,用于获取t1时刻本节点的物理时钟值、t2时刻本节点的物理时钟值以及t3时刻本节点的物理时钟值;
63.混合逻辑时钟值计算模块,用于根据t1时刻本节点的混合逻辑时钟值计算t2时刻本节点的混合逻辑时钟值;
64.物理时钟跳变值计算模块,用于根据时钟跳变类型,计算本节点物理时钟的跳变值,根据跳变值判断是否发生时间跳变;
65.混合逻辑时钟值更新模块,用于更新t3时刻本节点的混合逻辑时钟值。
66.本实施例的维持分布式集群中混合逻辑时钟全局一致性的装置,t2时刻本节点的混合逻辑时钟值等于t1时刻本节点的混合逻辑时钟值加1。
67.本实施例的维持分布式集群中混合逻辑时钟全局一致性的装置中,混合逻辑时钟值计算模块,用于根据时钟跳变类型,计算本节点物理时钟的跳变值,包括:
68.当本节点向未来跳变时,本节点物理时钟的跳变值等于t1时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值;
69.当本节点向过去跳变时,本节点物理时钟的跳变值等于t2时刻的混合逻辑时钟值与t2时刻的物理时钟值的差值。
70.本实施例的维持分布式集群中混合逻辑时钟全局一致性的装置中,混合逻辑时钟值更新模块,用于对t3时刻本节点的物理时钟值与本节点物理时钟的跳变值求和,得到第一求和值;对t2时刻的混合逻辑时钟值进行加1求和处理,得到第二求和值;比较第一求和值与第二求和值,将较大的值作为t3时刻的混合逻辑时钟值。
71.本发明示例性第四实施例提供一种维持分布式集群中混合逻辑时钟全局一致性的方法,本实施例方法是图1所示方法的优选实施例,本实施例方法在混合逻辑时钟向未来跳变时的应用原理如图4所示。
72.具体的,如图4所示,t1时刻,本节点的混合逻辑时钟值crt_hlc1与本节点的物理时钟值pt1保持一致;t2时刻,本节点时钟向未来跳变,跳变后的本节点物理时钟值为pt2。时间向未来跳变后,本节点第一次获取到的混合逻辑时钟值hlc为:crt_hlc2=crt_hlc1 1,即采用t1时刻的混合逻辑时钟值crt_hlc1加1来获得t2时刻的混合逻辑时钟值crt_hlc2。同时计算出本节点物理时钟的跳变值为:delta=crt_hlc1

pt2,即采用t1时刻的混合逻辑时钟值crt_hlc1与t2时刻的物理时钟值pt2的差值作为跳变值delta。在后续t3时候更新hlc时,对t3时刻本节点的物理时钟值pt3与本节点物理时钟的跳变值delta求和,得到第一求和值;对t2时刻的混合逻辑时钟值crt_hlc2进行加1求和处理,得到第二求和值;比较第一求和值与第二求和值,将较大的值作为t3时刻的混合逻辑时钟值crt_hlc3。
73.本发明示例性第五实施例提供一种维持分布式集群中混合逻辑时钟全局一致性的方法,本实施例方法是图1所示方法的优选实施例,本实施例方法在混合逻辑时钟向过去跳变时的应用原理如图5所示。
74.具体的,如图5所示,t1时刻,本节点的混合逻辑时钟值crt_hlc1与本节点的物理时钟值pt1保持一致;t2时刻,时钟向过去跳变,跳变后的物理时钟值为pt2,t2时刻本节点混合逻辑时钟crt_hlc2的值为t1时刻的混合逻辑时钟crt_hlc1的值加1,t2时刻计算出的时钟跳变值delta为t2时刻的混合逻辑时钟值crt_hlc2与t2时刻的物理时钟值pt2的差值;在后续t3时候更新hlc时,对t3时刻本节点的物理时钟值pt3与本节点物理时钟的跳变值delta求和,得到第一求和值;对t2时刻的混合逻辑时钟值crt_hlc2进行加1求和处理,得到第二求和值;比较第一求和值与第二求和值,将较大的值作为t3时刻的混合逻辑时钟值crt_hlc3。
75.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献