System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 分布式数据库中全局事务的管理方法及装置制造方法及图纸_技高网

分布式数据库中全局事务的管理方法及装置制造方法及图纸

技术编号:40796981 阅读:4 留言:0更新日期:2024-03-28 19:24
本申请涉及一种分布式数据库中全局事务的管理方法及装置,该方法包括:在当前事务为写事务的情况下,在GTM中生成当前事务对应的GTID、第一字段以及第二字段;发送GTID与第二字段至CN,并发送第一字段与第二字段至DN;在DN获取到第一字段与第二字段后,根据第一字段与第二字段维护GTID活跃列表;在CN获取到GTID与第二字段后,在DN中的待操作数据行中获取待操作数据行的GTID标识,根据GTID标识、第二字段以及GTID活跃列表判断GTID标识是否处于活跃状态;在GTID标识未处于活跃状态的情况下,根据GTID对待操作数据行进行操作,完成当前事务。通过采用本申请提供的技术方案,有效的减小了分布式数据库的网络负担。

【技术实现步骤摘要】

本申请涉及分布式数据库领域,尤其涉及一种分布式数据库中全局事务的管理方法及装置


技术介绍

1、分布式数据库通过将数据分布在不同的数据节点中来减小单一数据节点的压力,提升数据库的整体性能。在分布式数据库中,通常会存在同一事务涉及到不同数据节点的情况,为了保证事务的一致性,需要对分布式数据库进行全局事务管理。

2、目前,通常通过引入全局事务管理(global transaction manager,gtm)节点进行分布式数据库的全局事务管理,例如在一种分布式数据库中,构建有计算节点(computernode,cn)、数据节点(data node,dn)、全局事务管理节点相互配合的架构,在事务开始时,cn从gtm申请事务编号(global transaction identity,gtid),同时gtm将分配给cn的gtid加入到活跃列表中,然后下发到dn,dn处理数据的时候将gtid一并记录;在事务结束时,gtm释放gtid,并且从活跃列表中移除;在部分分片事务失败时,通过gtid来进行所有相关分片事务管理,从而保证事务一致性。

3、然而,在存在大量事务的场景下,活跃的gtid列表较大,cn从gtm获取活跃的gtid列表很长,网络损耗较大;同时,如果使用多版本并发控制(mutil version concurrencycontrol,mvcc),cn还需要将活跃列表带给dn,这将带来更大的网络流量损耗。综上所述,现有技术中的全局事务管理方法对分布式数据库的网络负担大。


技术实现思

1、本申请提供了一种分布式数据库中全局事务的管理方法及装置,以减小分布式数据库的网络负担。

2、第一方面,本申请提供了一种全局事务的管理方法,所述方法包括:

3、在当前事务为写事务的情况下,在gtm中生成所述当前事务对应的gtid、第一字段以及第二字段;其中,所述第一字段用于记录所述gtid的创建操作,所述第二字段用于标识所述gtid与所述第一字段;

4、发送所述gtid与所述第二字段至cn,并发送所述第一字段与所述第二字段至dn;

5、在dn获取到所述第一字段与所述第二字段后,根据所述第一字段与所述第二字段维护gtid活跃列表,所述gtid活跃列表包括有多张,各所述gtid活跃列表以所述第二字段为唯一标识;

6、在cn获取到所述gtid与所述第二字段后,在dn中的待操作数据行中获取所述待操作数据行的gtid标识,根据所述gtid标识、所述第二字段以及所述gtid活跃列表判断所述gtid标识是否处于活跃状态;

7、在所述gtid标识未处于所述活跃状态的情况下,根据所述gtid对所述待操作数据行进行操作,完成所述当前事务。

8、第二方面,本申请提供了一种全局事务的管理装置,包括:

9、生成模块,用于在当前事务为写事务的情况下,在gtm中生成所述当前事务对应的gtid、第一字段以及第二字段;其中,所述第一字段用于记录所述gtid的创建操作,所述第二字段用于标识所述gtid与所述第一字段;

10、发送模块,用于发送所述gtid与所述第二字段至cn,并发送所述第一字段与所述第二字段至dn;

11、维护模块,用于在dn获取到所述第一字段与所述第二字段后,根据所述第一字段与所述第二字段维护gtid活跃列表,所述gtid活跃列表包括有多张,各所述gtid活跃列表以所述第二字段为唯一标识;

12、判断模块,用于在cn获取到所述gtid与所述第二字段后,在dn中的待操作数据行中获取所述待操作数据行的gtid标识,根据所述gtid标识、所述第二字段以及所述gtid活跃列表判断所述gtid标识是否处于活跃状态;

13、操作模块,用于在所述gtid标识未处于所述活跃状态的情况下,根据所述gtid对所述待操作数据行进行操作,完成所述当前事务。

14、第三方面,本申请提供了一种电子设备,包括:至少一个通信接口;与所述至少一个通信接口相连接的至少一个总线;与所述至少一个总线相连接的至少一个处理器;与所述至少一个总线相连接的至少一个存储器,其中,所述处理器被配置为用于执行上述第一方面所述的全局事务的管理方法。

15、第四方面,本申请还提供了一种计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一方面所述的全局事务的管理方法。

16、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,在进行分布式事务时,在gtm中生成gtid、第一字段以及第二字段,gtid用于对当前事务进行唯一标识,第一字段用于记录gtid的创建操作,第二字段用于对gtid以及gtid的创建操作进行唯一标识,dn将会从gtm获取第一字段与第二字段,通过第一字段与第二字段维护自身的gtid活跃列表,cn将会从gtm获取gtid与第二字段,通过第二字段与dn的gtid活跃列表对当前事务的待操作数据行的gtid标识进行活跃判断,仅在当前事务的待操作数据行不活跃的情况下对待操作数据行进行操作,避免了其他cn当前正在操作待操作数据行而导致的事务冲突的问题,实现了多分支事务的正常进行。在本申请提供的技术方案中,cn仅需从gtm获取gtid与第二字段即可完成事务,dn仅需从gtm获取第一字段与第二字段即可对存在于dn缓存中的gtid活跃列表的维护,即便在存在大量事务的场景下,也无需相互交互数据量巨大的gtid活跃列表,从而有效的减小了分布式数据库的网络负担。

本文档来自技高网...

【技术保护点】

1.一种全局事务的管理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在GTM中生成所述当前事务对应的GTID、第一字段以及第二字段,包括:

3.根据权利要求2所述的方法,其特征在于,在GTM的第一列表中生成所述当前事务对应的所述GTID,包括:

4.根据权利要求2所述的方法,其特征在于,在GTM的第二列表中分别生成所述第一字段与所述第二字段,包括:

5.根据权利要求2所述的方法,其特征在于,根据所述第一字段与所述第二字段维护GTID活跃列表,包括:

6.根据权利要求1所述的方法,其特征在于,根据所述GTID标识、所述第二字段以及所述GTID活跃列表判断所述GTID标识是否处于活跃状态,包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.一种全局事务的管理装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括:至少一个通信接口;与所述至少一个通信接口相连接的至少一个总线;与所述至少一个总线相连接的至少一个处理器;与所述至少一个总线相连接的至少一个存储器,其中,所述处理器被配置为能够实现权利要求1-7中任一所述的方法。

10.一种计算机存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1-7中任一所述的方法。

...

【技术特征摘要】

1.一种全局事务的管理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在gtm中生成所述当前事务对应的gtid、第一字段以及第二字段,包括:

3.根据权利要求2所述的方法,其特征在于,在gtm的第一列表中生成所述当前事务对应的所述gtid,包括:

4.根据权利要求2所述的方法,其特征在于,在gtm的第二列表中分别生成所述第一字段与所述第二字段,包括:

5.根据权利要求2所述的方法,其特征在于,根据所述第一字段与所述第二字段维护gtid活跃列表,包括:

6.根据权利要求1所述的方法,其特征在于,根据所述gtid标识、所述第...

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

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

1