分布式数据库的处理方法、装置、电子设备及可读介质制造方法及图纸

技术编号:37764107 阅读:10 留言:0更新日期:2023-06-06 13:22
本申请涉及一种分布式数据库的处理方法、装置、电子设备及可读介质,其中,方法包括:在对第一数据表执行第一事务时为第一数据表生成了第一共享锁、且第二事务等待执行的情况下,获取第二事务的目标语句;确定目标语句是否满足预设条件;在目标语句满足预设条件的情况下,将目标语句的排他锁降级为第二共享锁,以避免排他锁与第一共享锁互斥。通过在已经存在共享锁的情况下,将待执行的符合预设条件的语句的排他锁降级为共享锁,避免排他锁与共享锁互斥,解决了会话堵塞的问题。解决了会话堵塞的问题。解决了会话堵塞的问题。

【技术实现步骤摘要】
分布式数据库的处理方法、装置、电子设备及可读介质


[0001]本申请涉及数据库
,尤其涉及一种分布式数据库的处理方法、装置、电子设备及可读介质。

技术介绍

[0002]随着计算机技术和国民经济的快速发展,传统的集中式数据库越来越无法满足当前庞大数据的存储和事务处理的需求。分布式数据库具有灵活的体系架构,高可用性和扩展性好等特性,能够有效解决数据量爆发式增长与集中式数据库有限容量和性能之间的矛盾。不过在并行在线DDL时短暂的排他锁会导致会话阻塞,从而存在分布式事务死锁的可能,一旦会话阻塞导致分布式事务死锁,需要等待元数据锁的超时时间,对业务影响时间长。
[0003]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本申请提供了一种分布式数据库的处理方法、装置、电子设备及可读介质,以解决上述“会话堵塞”的技术问题。
[0005]根据本申请实施例的一个方面,本申请提供了一种分布式数据库的处理方法,包括:在对第一数据表执行第一事务时为第一数据表生成了第一共享锁、且第二事务等待执行的情况下,获取第二事务的目标语句;确定目标语句是否满足预设条件;在目标语句满足预设条件的情况下,将目标语句的排他锁降级为第二共享锁,以避免排他锁与第一共享锁互斥。
[0006]可选地,确定目标语句是否满足预设条件包括:获取预设语句表,其中,预设语句表中的语句在执行时无实际数据变化;在预设语句表中查找是否存在目标语句;若预设语句表中存在目标语句,则确定目标语句满足预设条件,若预设语句表中不存在目标语句,则确定目标语句不满足预设条件。
[0007]可选地,在将目标语句的排他锁降级为第二共享锁之后,所述方法还包括按照以下方式更新第一数据表:若检测到目标数据待添加至第一数据表中,则对第一数据表进行复制,得到数据表副本;将目标数据添加至数据表副本,得到第二数据表;将引用第一数据表的链接更改至第二数据表,以使执行读取操作时读取到的数据为第二数据表中的数据。
[0008]可选地,所述方法还包括:通过原子变量对第一数据表的元数据数量以及第二数据表的元数据数量进行计数;若原子变量的计数值为零,则释放第一数据表中的数据。
[0009]根据本申请实施例的另一方面,本申请提供了一种分布式数据库的处理装置,包括:获取模块,用于在对第一数据表执行第一事务时为第一数据表生成了第一共享锁、且第二事务等待执行的情况下,获取第二事务的目标语句;确定模块,用于确定目标语句是否满足预设条件;降级模块,用于在目标语句满足预设条件的情况下,将目标语句的排他锁降级为第二共享锁,以避免排他锁与第一共享锁互斥。
[0010]可选地,确定模块包括:获取单元,用于获取预设语句表,其中,预设语句表中的语句在执行时无实际数据变化;查找单元,用于在预设语句表中查找是否存在目标语句;确定单元,用于若预设语句表中存在目标语句,则确定目标语句满足预设条件,若预设语句表中不存在目标语句,则确定目标语句不满足预设条件。
[0011]可选地,装置还包括:更新模块,用于在将目标语句的排他锁降级为第二共享锁之后,更新第一数据表,更新模块包括:复制单元,用于若检测到目标数据待添加至第一数据表中,则对第一数据表进行复制,得到数据表副本;添加单元,用于将目标数据添加至数据表副本,得到第二数据表;更改单元,用于将引用第一数据表的链接更改至第二数据表,以使执行读取操作时读取到的数据为第二数据表中的数据。
[0012]可选地,更新模块还包括:计数单元,用于通过原子变量对第一数据表的元数据数量以及第二数据表的元数据数量进行计数;释放单元,用于若原子变量的计数值为零,则释放第一数据表中的数据。
[0013]根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
[0014]根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
[0015]本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
[0016]本申请通过一种分布式数据库的处理方法,包括:在对第一数据表执行第一事务时为第一数据表生成了第一共享锁、且第二事务等待执行的情况下,获取第二事务的目标语句;确定目标语句是否满足预设条件;在目标语句满足预设条件的情况下,将目标语句的排他锁降级为第二共享锁,以避免排他锁与第一共享锁互斥。通过在已经存在共享锁的情况下,将待执行的符合预设条件的语句的排他锁降级为共享锁,避免排他锁与共享锁互斥,解决了会话堵塞的问题。
附图说明
[0017]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0018]为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为根据本申请实施例提供的一种可选的分布式数据库的处理方法的流程图;
[0020]图2为根据本申请实施例提供的一种可选的分布式数据库的会话堵塞的场景示意图;
[0021]图3为根据本申请实施例提供的一种可选的分布式数据库的处理装置的框图;
[0022]图4为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
[0023]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例
中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024]在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
[0025]随着计算机技术和国民经济的快速发展,传统的集中式数据库越来越无法满足当前庞大数据的存储和事务处理的需求。分布式数据库具有灵活的体系架构,高可用性和扩展性好等特性,能够有效解决数据量爆发式增长与集中式数据库有限容量和性能之间的矛盾。然而,随着业务的不断迭代和变更,数据库的表结构等经常也会随之变化,对于DDL(Data Definition Language,数据定义语言)这类操作通常会有MDL(Meta Data Lock,元数据锁)加锁过程,在此过程中表上有活动事务也不可以对元数据进行写入操作,所以很多线上服务升级等都会选择避开流量高峰,避免影响线上业务,甚至当服务更新周期较长时,会选择停服。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的处理方法,其特征在于,包括:在对第一数据表执行第一事务时为第一数据表生成了第一共享锁、且第二事务等待执行的情况下,获取所述第二事务的目标语句;确定所述目标语句是否满足预设条件;在所述目标语句满足预设条件的情况下,将所述目标语句的排他锁降级为第二共享锁,以避免所述排他锁与第一共享锁互斥。2.根据权利要求1所述的方法,其特征在于,所述确定所述目标语句是否满足预设条件包括:获取预设语句表,其中,所述预设语句表中的语句在执行时无实际数据变化;在所述预设语句表中查找是否存在所述目标语句;若所述预设语句表中存在所述目标语句,则确定所述目标语句满足所述预设条件,若所述预设语句表中不存在所述目标语句,则确定所述目标语句不满足所述预设条件。3.根据权利要求1所述的方法,其特征在于,在将所述目标语句的排他锁降级为第二共享锁之后,所述方法还包括按照以下方式更新所述第一数据表:若检测到目标数据待添加至所述第一数据表中,则对所述第一数据表进行复制,得到数据表副本;将所述目标数据添加至所述数据表副本,得到第二数据表;将引用所述第一数据表的链接更改至所述第二数据表,以使执行读取操作时读取到的数据为所述第二数据表中的数据。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:通过原子变量对所述第一数据表的元数据数量以及所述第二数据表的所述元数据数量进行计数;若所述原子变量的计数值为零,则释放所述第一数据表中的数据。5.一种分布式数据库的处理装置,其特征在于,包括:获取模块,用于在对第一数据表执行第一事务时为第一数据表生成了第一共享锁、且第二事务等待执行的情况下,获取所述第二事务的目标语句;确定模块,用于确定所述目标语句是否满足预设条件;降级模块,用于在所述目标语句满足预设条件的情况下,将所述目标语...

【专利技术属性】
技术研发人员:李雪飞
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1