一种应用于分布式数据库的时间戳分配方法及装置制造方法及图纸

技术编号:36821745 阅读:23 留言:0更新日期:2023-03-12 01:02
本说明书提出了一种应用于分布式数据库的时间戳分配方法及装置,所述分布式数据库的节点包括授时节点和普通节点,所述方法应用于任一节点,该方法可以包括:响应于接收的事务提交请求,提交相应的待授时事务并记录待授时事务的开始提交时刻;查询任一节点针对其他事务向授时节点发送授时请求的授时请求发送时刻;在任一其他事务的授时请求发送时刻不早于待授时事务的开始提交时刻的情况下,将授时节点针对该任一其他事务反馈的时间戳分配至待授时事务。通过本说明书的技术方案,可以有效降低各节点向授时节点发送获取时间戳请求的频率,减少授时节点的负载,避免因授时节点过载导致授时节点返回授时响应过久的问题,提高各个事务的处理效率。各个事务的处理效率。各个事务的处理效率。

【技术实现步骤摘要】
一种应用于分布式数据库的时间戳分配方法及装置


[0001]本说明书一个或多个实施例涉及数据库
,尤其涉及一种应用于分布式数据库的时间戳分配方法及装置。

技术介绍

[0002]分布式数据库作为分布式系统中的重要应用部分,不仅继承了传统单机数据库的核心特性,同时还拥有分布式系统的处理能力,具有低硬件成本、高可扩展性、高可用性等特性。分布式数据库由多个节点组成,各个节点需要通过交换消息来相互通信。由于每个节点上的数据库实例拥有独立的时钟,而每个节点上的时钟不能反映全局的顺序,因此会存在时钟偏移、无法保证分布式数据库的一致性的情况。
[0003]为了避免发生时钟偏移,可以通过时钟服务来提供全局一致的版本号。时钟服务即利用时间戳(timestamp,ts)为数据库中的事务建立一个先后关系,时间戳越大表示事务的版本号越大,该事务的顺序越靠后。相关技术中通过单一的授时节点统一给数据库中的事务提供时钟服务,单一授时节点可以保证按照递增的方式给各节点的事务分配时间戳,从而确保数据库中事务的一致性。
[0004]对于此类使用单点授时时钟服务的分布式数据库来说,所有节点针对每个事务都需要向该授时节点发送获取时间戳的请求,容易导致该授时节点负载过高,当达到授时节点的处理上限时,会大大增加时间戳获取请求的响应时间。再者,对各个事务而言,每次提交时都需要向授时节点发送请求,并等待授时节点返回分配的时间戳,会大大增加各个事务处理的时间,降低数据库性能。

技术实现思路

[0005]本说明书提供一种应用于分布式数据库的时间戳分配方法及装置,以解决相关技术中的不足。
[0006]根据本说明书一个或多个实施例的第一方面,提供一种应用于分布式数据库的时间戳分配方法,所述分布式数据库的节点包括授时节点和普通节点,所述方法应用于任一节点,该方法包括:
[0007]响应于接收的事务提交请求,提交相应的待授时事务并记录所述待授时事务的开始提交时刻;
[0008]查询所述任一节点针对其他事务向所述授时节点发送授时请求的授时请求发送时刻;
[0009]在任一其他事务的授时请求发送时刻不早于所述待授时事务的开始提交时刻的情况下,将所述授时节点针对该任一其他事务反馈的时间戳分配至所述待授时事务。
[0010]根据本说明书一个或多个实施例的第二方面,提供一种应用于分布式数据库的时间戳分配装置,所述分布式数据库的节点包括授时节点和普通节点,所述装置应用于任一节点,该装置包括:
[0011]提交模块,用于响应于接收的事务提交请求,提交相应的待授时事务并记录所述待授时事务的开始提交时刻;
[0012]查询模块,用于查询所述任一节点针对其他事务向所述授时节点发送授时请求的授时请求发送时刻;
[0013]分配模块,用于在任一其他事务的授时请求发送时刻不早于所述待授时事务的开始提交时刻的情况下,将所述授时节点针对该任一其他事务反馈的时间戳分配至所述待授时事务。
[0014]根据本说明书一个或多个实施例的第三方面,提供一种电子设备,包括:
[0015]处理器;
[0016]用于存储处理器可执行指令的存储器;
[0017]其中,所述处理器通过运行所述可执行指令以实现如上述第一方面的实施例中所述的方法。
[0018]根据本说明书一个或多个实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述第一方面的实施例中所述方法的步骤。
[0019]由以上技术方案可见,本说明书一个或多个实施例中,通过在分布式数据库的各个节点增加时间戳缓存来保存曾经从授时节点中获取到的时间戳,使得在保证数据库外部一致性的基础上,多个事务可以复用同一个时间戳,从而:一方面,有效降低了各节点向授时节点发送获取时间戳请求的频率,相应的,减少了授时节点处理请求所产生的负载,同时也避免了因授时节点过载导致授时节点返回授时响应过久的问题;另一方面,由于避免了等待授时节点分配时间戳,所以缩短了等待时长,从而大大提高了各个事务的处理效率,保证了数据库的性能。
[0020]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0021]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0022]图1是一示例性实施例提供的一种分布式数据库的架构图。
[0023]图2是一示例性实施例提供的一种应用于分布式数据库的时间戳分配方法的流程图。
[0024]图3a是一示例性实施例提供的一种保证分布式数据库外部一致性的示意图。
[0025]图3b是另一示例性实施例提供的一种保证分布式数据库外部一致性的示意图。
[0026]图4是一示例性实施例提供的一种电子设备的结构示意图。
[0027]图5是一示例性实施例提供的一种应用于分布式数据库的时间戳分配装置的框图。
具体实施方式
[0028]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及
附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
[0029]需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0030]分布式数据库因其高可扩展性、高可靠性而被广泛应用于数据的存储及管理。图1是一示例性实施例提供的一种分布式数据库的架构图。如图1所示,分布式数据库由多个节点组成,包括授时节点和普通节点。所有普通节点均向授时节点发送授时请求,以获取授时节点分配的时间戳。相关技术中通过此架构下单一授时节点统一给数据库中的事务提供时钟服务的方式来保证数据库中事务的一致性。但这种单点授时的方式,使得各普通节点需要针对本节点上的每个事务逐一向授时节点发送授时请求,容易导致授时节点处理授时请求的负载过高,当达到授时节点的处理上限时,会大大增加授时请求的响应时间。再者,对各个事务而言,每次提交时都需要向授时节点发送授时请求,并等待授时节点返回分配的时间戳,会大大增加各个事务执行的时间,降低数据库性能。
[0031]本说明书提供一种应用于分布式数据库的时间戳分配方法,以解决相关技术中的不足。
[0032]图2是一示例性实施例提供的一种应用于分布式数据库的时间戳分配方法的流程图。该方法可以应用于图1中分布式数据库的任一节点。除普通节点外,当授时节点不仅具备授时功能、还能实现普通节点对事本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于分布式数据库的时间戳分配方法,所述分布式数据库的节点包括授时节点和普通节点,所述方法应用于任一节点,该方法包括:响应于接收的事务提交请求,提交相应的待授时事务并记录所述待授时事务的开始提交时刻;查询所述任一节点针对其他事务向所述授时节点发送授时请求的授时请求发送时刻;在任一其他事务的授时请求发送时刻不早于所述待授时事务的开始提交时刻的情况下,将所述授时节点针对该任一其他事务反馈的时间戳分配至所述待授时事务。2.根据权利要求1所述的方法,所述查询所述任一节点针对其他事务向所述授时节点发送授时请求的的授时请求发送时刻,包括:查询所述任一节点针对最新已授时事务向所述授时节点发送授时请求的授时请求发送时刻;其中,在查询到的授时请求发送时刻不早于所述待授时事务的开始提交时刻的情况下,将所述最新已授时事务确定为所述任一其他事务。3.根据权利要求2所述的方法,所述查询所述任一节点针对其他事务向所述授时节点发送授时请求的授时请求发送时刻,包括:在所述最新已授时事务的授时请求发送时刻早于所述待授时事务的开始提交时刻的情况下,查询所述任一节点针对其他未授时事务向所述授时节点发送授时请求的授时请求发送时刻;其中,在任一其他未授时事务的授时请求发送时刻不早于所述待授时事务的开始提交时刻的情况下,将所述任一其他未授时事务作为所述任一其他事务。4.根据权利要求1所述的方法,还包括:在所有其他事务的授时请求发送时刻均早于所述待授时事务的开始提交时刻的情况下,针对所述待授时事务向所述授时节点发送授时请求,以由所述授时节点响应于该授时请求向所述待授时事务分配时间戳。5.根据权利要求1所述的方法,还包括:接收所述授时节点返回的任一授时响应;在所述任一授时响应对...

【专利技术属性】
技术研发人员:韩富晟李欣泽郭进伟高山岩肖金亮
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1