System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及数据库,尤其涉及一种分布式事务处理方法、装置、设备及存储介质。
技术介绍
1、在数据计算和数据高可用的驱动下,数据中心的数量越来越多。在传统的业务模式中,事务聚焦单个数据中心的数据访问。随着业务模式的变化,跨数据中心进行数据项操作的分布式事务越来越普遍。
2、在分布式事务处理过程中,协调节点将分布式事务划分为多个子事务,然后将多个子事务分别发送至相应的参与节点。每个参与节点在接收到子事务时,对子事务涉及的数据项进行加锁并处理,然后返回执行结果至协调节点。协调节点在接收到所有子事务的执行结果后,返回分布式事务的最终状态至各个参与节点。每个参与节点在接收到处理状态后,对已加锁的数据项解锁。
3、在上述处理过程中,协调节点需要接收到所有子事务对应的执行结果,才能触发各个参与节点分别对已加锁的数据项解锁。然而,不同子事务的执行结果到达协调节点的时间是不相同的,这样使得最快子事务(执行结果最早到达协调节点的子事务)对应的参考节点需要等待最慢子事务(执行结果最晚到达协调节点的子事务)对应的参考节点返回执行结果时,才能对已加锁的数据项解锁。而数据项在加锁状态下无法被其他分布式事务操作,导致其他分布式事务需要等待。在分布式事务的数量较多时,容易造成事务处理阻塞,进而影响分布式数据库的吞吐性能。
技术实现思路
1、本申请实施例提供了一种分布式事务处理方法、装置、设备及存储介质,用于提高分布式数据库的吞吐性能。
2、一方面,本申请实施例提供了一种分布
3、将分布式事务划分为多个子事务,每个子事务对应一个参与节点;
4、针对所述多个子事务,分别执行以下操作:基于一个子事务对应的参与节点与协调节点之间的网络时延,获得所述一个子事务对应的目标发送时延,所述目标发送时延与所述网络时延呈负相关;
5、按照获得的多个目标发送时延,分别将所述多个子事务发送至相应的参与节点进行事务处理;
6、基于所述多个子事务各自对应的参与节点返回的子事务处理消息,获得所述分布式事务的处理状态。
7、一方面,本申请实施例提供了一种分布式事务处理装置,包括:
8、划分模块,用于将分布式事务划分为多个子事务,每个子事务对应一个参与节点;
9、处理模块,用于针对所述多个子事务,分别执行以下操作:基于一个子事务对应的参与节点与所述协调节点之间的网络时延,获得所述一个子事务对应的目标发送时延,所述目标发送时延与所述网络时延呈负相关;
10、发送模块,用于按照获得的多个目标发送时延,分别将所述多个子事务发送至相应的参与节点进行事务处理;
11、所述处理模块,还用于基于所述多个子事务各自对应的参与节点返回的子事务处理消息,获得所述分布式事务的处理状态。
12、可选地,所述划分模块具体用于:
13、基于所述分布式事务关联的多个数据项各自对应的参与节点,将所述分布式事务划分为多个子事务,其中,每个子事务对应至少一个数据项,且每个子事务对应一个参与节点。
14、可选地,所述处理模块具体用于:
15、获取所述多个子事务各自对应的参与节点,分别与所述协调节点之间的网络时延;
16、从所述多个子事务各自对应的网络时延中获得最大网络时延;
17、基于所述最大网络时延和所述一个子事务对应的网络时延,获得所述一个子事务对应的目标发送时延,其中,所述最大网络时延与所述一个子事务对应的网络时延之间的时延差值,与所述目标发送时延呈正相关。
18、可选地,所述处理模块具体用于:
19、基于所述一个子事务对应的网络时延,获得所述一个子事务对应的总执行时延;
20、基于所述最大网络时延,获得所述分布式事务的总执行时延;
21、将所述分布式事务的总执行时延,与所述一个子事务对应的总执行时延之间的时延差值,作为所述一个子事务对应的目标发送时延。
22、可选地,所述处理模块具体用于:
23、基于所述一个子事务对应的网络时延,以及所述一个子事务对应的参与节点本地执行所述一个子事务的执行时延,获得所述一个子事务对应的目标发送时延,其中,所述执行时延与所述目标发送时延呈负相关。
24、可选地,所述处理模块具体用于:
25、接收所述多个子事务各自对应的参与节点返回的子事务处理消息;
26、针对所述多个子事务,分别执行以下操作:从一个子事务对应的子事务处理消息中,获取所述一个子事务关联的数据项的锁争用状态;
27、若所述多个子事务各自对应的锁争用状态均为:已对关联的数据项加锁,则确定所述分布式事务的处理状态为:提交状态。
28、可选地,所述处理模块具体用于:
29、分别向所述多个子事务各自对应的参与节点发送收集请求,所述收集请求用于指示参与节点返回相应子事务的执行结果;
30、接收所述多个子事务各自对应的参与节点返回的子事务处理消息,所述子事务处理消息中包括:子事务的执行结果;
31、当所述多个子事务各自对应的执行结果均为:执行成功时,确定所述分布式事务的处理状态为:提交状态。
32、所述发送模块还用于:
33、基于所述多个子事务各自对应的参与节点返回的子事务处理消息,获得所述分布式事务的处理状态之后,将所述分布式事务的处理状态,分别发送至所述多个子事务各自对应的参与节点,以使每个参与节点对相应的数据项进行解锁。
34、一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述分布式事务处理方法的步骤。
35、一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述分布式事务处理方法的步骤。
36、一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述分布式事务处理的步骤。
37、本申请实施例中,协调节点在接收到分布式事务之后,先将分布式事务划分为在不同参与节点上执行的子事务。针对每个子事务,基于该子事务对应的参与节点与协调节点之间的网络时延,确定协调节点在发送该子事务时的目标发送时延。由于子事务对应的目标发送时延与子事务对应的网络时延呈负相关,因此,对应网络时延越长的子事务,其对应的目标发送时延越短,即协调节点会越早发送该子事务至相应的参与节点进行事务处理;对于网络时延越短的子事务,其对应的目标发送时延越长,即协调节点会越晚发送该子事务至相应的参与节点进行事务处理。
38、对于网络时延较短的子事务来说,由于协调节本文档来自技高网...
【技术保护点】
1.一种分布式事务处理方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述将分布式事务划分为多个子事务,包括:
3.如权利要求1所述的方法,其特征在于,所述基于一个子事务对应的参与节点与所述协调节点之间的网络时延,获得所述一个子事务对应的目标发送时延,包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述最大网络时延和所述一个子事务对应的网络时延,获得所述一个子事务对应的目标发送时延,包括:
5.如权利要求1所述的方法,其特征在于,所述基于一个子事务对应的参与节点与所述协调节点之间的网络时延,获得所述一个子事务对应的目标发送时延,包括:
6.如权利要求1-5任一项所述的方法,其特征在于,所述基于所述多个子事务各自对应的参与节点返回的子事务处理消息,获得所述分布式事务的处理状态,包括:
7.如权利要求1-5任一项所述的方法,其特征在于,所述基于所述多个子事务各自对应的参与节点返回的子事务处理消息,获得所述分布式事务的处理状态,包括:
8.如权利要求1-5任一所述的方法,其特征
9.一种分布式事务处理装置,其特征在于,包括:
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~8任一所述方法的步骤。
11.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~8任一所述方法的步骤。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行权利要求1-8任一项所述方法的步骤。
...【技术特征摘要】
1.一种分布式事务处理方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述将分布式事务划分为多个子事务,包括:
3.如权利要求1所述的方法,其特征在于,所述基于一个子事务对应的参与节点与所述协调节点之间的网络时延,获得所述一个子事务对应的目标发送时延,包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述最大网络时延和所述一个子事务对应的网络时延,获得所述一个子事务对应的目标发送时延,包括:
5.如权利要求1所述的方法,其特征在于,所述基于一个子事务对应的参与节点与所述协调节点之间的网络时延,获得所述一个子事务对应的目标发送时延,包括:
6.如权利要求1-5任一项所述的方法,其特征在于,所述基于所述多个子事务各自对应的参与节点返回的子事务处理消息,获得所述分布式事务的处理状态,包括:
7.如权利要求1-5任一项所述的方法,其特征在于,所述基于所述多个子事务各自对应的参与节...
【专利技术属性】
技术研发人员:卢卫,杜小勇,李彤,庄琪钰,陈育兴,潘安群,
申请(专利权)人:深圳市腾讯计算机系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。