基于区域间混合逻辑时钟的分布式事务授时方法技术

技术编号:38326028 阅读:16 留言:0更新日期:2023-07-29 09:08
本发明专利技术公开了一种基于区域间混合逻辑时钟的分布式事务授时方法,该方法将分布式系统的节点分为至少两个区域,在每个区域内均选择一个节点作为授时节点。区域内部的节点事务交互时,均向当前区域内的授时节点申请时间戳,并直接对两个事务的时间戳进行比较;区域间的节点事务交互时,事务从各自区域内部的授时节点申请时间戳,通过混合逻辑时钟的方式,在事务提交或者读取事务数据时等待不确定时间区间,再对两个事务的时间戳进行比较。通过将分布式系统的节点进行区域划分,从而在区域内部节点事务交互时,消除不确定时间区间,消除事务等待,有利于减少事务总体执行时间,且在区域间节点事务交互时,亦可降低固定的网络开销,减少事务执行延时。减少事务执行延时。减少事务执行延时。

【技术实现步骤摘要】
基于区域间混合逻辑时钟的分布式事务授时方法


[0001]本专利技术涉及一种分布式数据库事务授时方法,更具体的说,本专利技术主要涉及一种基于区域间混合逻辑时钟的分布式事务授时方法。

技术介绍

[0002]目前应用的分布式事务授时的方法主要有两种:一是集中式授时,二是分布式授时。集中式授时比较容易理解,集群中部署一个授时服务,所有的节点都从这一个服务集中式的来获取事务的时间戳。具有代表性的有Postgres

XL的GTM、TiDB的TSO、OceanBase的GTS等。分布式授时主要有两种,一种是基于高精度硬件的授时服务,具有代表性的是Google发表的TrueTime,硬件上基于原子钟和GPS授时,来保证节点间的时钟误差控制在较小的范围之内。
[0003]另外一种是混合逻辑时钟(HLC
ꢀ‑ꢀ
hybrid logical clock)。混合逻辑时钟的时间戳由Wall Time和Logic Time两部分组成。Wall Time为节点当前已知的最大物理时间,LogicTime是在Wall Time不变的时候递增的逻辑计数。在消息发送和接收的时候,对本地的混合逻辑时钟进行更新,来确保相互关联的事件之间的顺序。通过先判断Wall Time,再判断Logic Time能够确定两个事件的先后顺序。前述集中式授时的方案,所有的授时操作都需要通过集中的服务,有一个固定的网络开销,特别是授时服务和事务执行节点间的网络性能较差的时候,影响会比较大。混合逻辑时钟的方案,存在一个不确定时间区间。在这个不确定时间区间中的两个时间戳不能确定先后关系,因此造成事务总体执行时间的增加。故有必要针对分布式事务授时方法作进一步的研究和改进。

技术实现思路

[0004]本专利技术的目的之一在于针对上述不足,提供一种基于区域间混合逻辑时钟的分布式事务授时方法,以期望解决现有技术中集中授时的方式网络开销造成延迟明显,分布式因存在不确定时间区间会造成事务总体执行时间增加等技术问题。
[0005]为解决上述的技术问题,本专利技术采用以下技术方案。
[0006]本专利技术所提供的一种基于区域间混合逻辑时钟的分布式事务授时方法,所述的方法包括如下步骤:步骤A、将分布式系统的节点分为至少两个区域,且在每个区域内均选择一个节点作为授时节点。
[0007]步骤B、区域内部的节点事务交互时,均向当前区域内部的授时节点申请时间戳,并直接对两个事务的时间戳进行比较;区域间的节点事务交互时,事务从各自区域内部的授时节点申请时间戳,然后通过混合逻辑时钟的方式,在事务提交或者读取事务数据时等待不确定时间区间,然后再对两个事务的时间戳进行比较。
[0008]步骤C、所述区域内事务的时间戳与区域间事务的时间戳的区分方式为,事务的时间戳保存在当前事务的节点中,当前事务的节点所在的区域为事务的时间戳所属的区域,
由接收事务的节点对时间戳所属的区域进行比较,通过节点属性判断当前两个时间戳是否为在同一个区域的授时节点中所申请的。
[0009]作为优选,进一步的技术方案是:所述方法用于对分布式数据库的节点服务器之间交互的事务进行授时。
[0010]更进一步的技术方案是:每个区域内的节点均为完全相同的节点服务器,任意选择当前区域内的节点服务器作为所述授时节点。
[0011]更进一步的技术方案是:分布式数据库中的节点服务器随机分为至少两个区域,且每个区域内的节点数量均为非对称的。
[0012]与现有技术相比,本专利技术的有益效果之一是:通过将分布式系统的节点进行区域划分的方式,从而在区域内部节点事务交互时,消除不确定时间区间,消除事务等待,有利于减少事务总体执行时间,且在区域间节点事务交互时,亦可降低固定的网络开销,减少事务执行延时。
附图说明
[0013]图1为用于说明本专利技术一个实施例的节点区域跨分框图。
[0014]图2为用于说明本专利技术另一个实施例的节点区域跨分框图。
具体实施方式
[0015]正如上述
技术介绍
中提到的,集中式授时的方案,所有的授时操作都需要通过集中的服务,有一个固定的网络开销,特别是授时服务和事务执行节点间的网络性能较差的时候,影响比较大。比如说,事务执行节点和授时服务节点不在一个数据中心的情况下。混合逻辑时钟的方案,存在一个不确定时间区间。在这个不确定时间区间中的两个时间戳不能确定先后关系。为了解决这个问题,有两种方案:一是在事务提交的时候进行等待,等待一个不确定时间区间。二是在数据读取的时候进行等待,等待一个不确定时间区间。这两种方案都会造成事务总体执行时间的增加。
[0016]鉴于上述的情况,本专利技术提出一种基于区域间混合逻辑时钟的分布式事务授时方法,该方法用于对分布式数据库的节点服务器之间交互的事务进行授时,方法可降低区域间授时的开销,并消除区域内不确定时间区间,从而提高总体事务执行的性能。
[0017]本专利技术把逻辑时钟使用场景中的节点按照区域进行划分,不同节点间的关系由对等关系,变化为二维关系。两种节点间关系分别为区域内节点关系与区域间节点关系。前述区域的划分可以是随机的,或者依赖某种外部条件进行划分,具体如图1所示,每个区域内的节点数量均为非对称的。前述每个区域内的节点均为完全相同的节点服务器,任意选择当前区域内的节点服务器作为所述授时节点。
[0018]如图1所示,将分布式系统的节点分为至少两个区域,且在每个区域内均选择一个节点作为授时节点,且在每个区域内均选择一个节点作为授时节点;同样的,授时节点选择的方法可以是随机选择,或者其他选择方法。
[0019]区域内部节点事务交互的授时,通过本区域内的授时节点。区域内可以保证网络的性能,跨节点授时过程的网络开销较小,从而可以保证授时的性能。另外,因为区域内都是从同一个节点授时,同一区域内申请的两个时间戳可以直接进行比较,因此消除了区域
内事务之间的不确定时间区间,无需区域内的事务之间进行等待。
[0020]区域间的事务交互,通过混合逻辑时钟的方式。当区域1发起的事务Txn1和区域2中发起的事务Txn2交互的时候,因为二者不是从同一个区域获取的时间戳,因此,需要通过混合逻辑时钟的方式来判定时间戳的先后关系。即提交时等待或者数据读取时等待的方式。
[0021]同时,可通过如下方式区分是否是同一区域中申请的时间戳:即当某一个时间戳申请到之后,会保存到一个节点中,节点所在的区域就是时间戳所属的区域。当节点和其他区域中的节点交互的时候,接收消息的节点对时间戳所属的区域进行比较,通过节点属性即可判断两个时间戳是否是在同一个区域中申请的。换言之,事务的时间戳保存在当前事务的节点中,当前事务的节点所在的区域为事务的时间戳所属的区域,由接收事务的节点对时间戳所属的区域进行比较,通过节点属性即可判断当前两个时间戳是否为在同一个区域的授时节点中所申请。
[0022]基于本专利技术上述的操作方式,通过将分布式系统的节点进行区域划分的方式,从而在区域内部节点事务交互时,消除本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区域间混合逻辑时钟的分布式事务授时方法,其特征在于所述的方法包括如下步骤:将分布式系统的节点分为至少两个区域,且在每个区域内均选择一个节点作为授时节点;区域内部的节点事务交互时,均向当前区域内部的授时节点申请时间戳,并直接对两个事务的时间戳进行比较;区域间的节点事务交互时,事务从各自区域内部的授时节点申请时间戳,然后通过混合逻辑时钟的方式,在事务提交或者读取事务数据时等待不确定时间区间,然后再对两个事务的时间戳进行比较;所述区域内事务的时间戳与区域间事务的时间戳的区分方式为,事务的时间戳保存在当前事务的节点中,当前事务的节点所在的区域为事务的时间戳所属的区域,由接收事务的...

【专利技术属性】
技术研发人员:王建忠武新李建衡
申请(专利权)人:贵州易鲸捷信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1