一种事务提交方法及装置制造方法及图纸

技术编号:36821752 阅读:19 留言:0更新日期:2023-03-12 01:02
本说明书公开了一种事务提交方法及装置,在提交阶段,由参与者根据事务提交请求将该参与者自身已存储的待提交数据进行提交的同时,将该事务提交请求转发至迁移节点,由迁移节点根据该事务提交请求将该迁移节点自身存储的待提交数据进行提交。再由该参与者根据自身的提交结果以及接收到的迁移节点的提交结果,返回该事务提交请求对应的执行结果,以此来完成该数据库事务的提交。本方法通过由参与者将其对应的迁移节点进行记录,并在提交阶段,由参与者将事务提交请求转发给迁移节点,来完成该迁移节点中待提交数据的提交。保证了数据库事务的执行效率和准确率。务的执行效率和准确率。务的执行效率和准确率。

【技术实现步骤摘要】
一种事务提交方法及装置


[0001]本说明书涉及计算机
,尤其涉及一种事务提交方法及装置。

技术介绍

[0002]目前,随着计算机技术和业务深入融合的需要,分布式计算、区块链等业务场景的出现,采用分布式数据库执行业务的需求在不断增加。而分布式数据库的各节点在执行数据库事务的过程中,为了避免个别节点由于负载过大宕机,需保证各节点的负载均衡。其中,数据库事务通常包含执行阶段和提交阶段。
[0003]基于此,如何在提交阶段进行负载均衡,本说明书提供一种事务提交方法。

技术实现思路

[0004]本说明书提供一种事务提交方法及装置,以部分的解决现有技术存在的上述问题。
[0005]本说明书采用下述技术方案:
[0006]本说明书提供一种事务提交方法,所述事务提交方法应用于分布式数据库中的参与者,所述方法包括:
[0007]响应于事务提交请求,将参与者自身存储的待提交数据进行提交,确定所述参与者自身的提交结果,并根据存储的迁移节点的节点标识,将所述事务提交请求转发至所述迁移节点,以使所述迁移节点根据所述事务提交请求将所述迁移节点存储的待提交数据进行提交,所述迁移节点为所述参与者将数据迁移至的其他参与者;
[0008]接收所述迁移节点返回的提交结果;
[0009]根据所述参与者自身的提交结果和所述迁移节点返回的提交结果,返回所述事务提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的提交。
[0010]本说明书提供一种事务提交方法,所述事务提交方法应用于分布式数据库中的参与者,所述方法包括:
[0011]响应于预提交请求,将参与者自身存储的待提交数据进行预提交,确定所述参与者自身的预提交结果,并根据存储的迁移节点的节点标识,将所述预提交请求转发至所述迁移节点,以使所述迁移节点根据所述预提交请求将所述迁移节点存储的待提交数据进行预提交,所述迁移节点为所述参与者将数据迁移至的其他参与者;
[0012]接收所述迁移节点返回的预提交结果;
[0013]根据所述参与者自身的预提交结果和所述迁移节点返回的预提交结果,返回所述预提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的预提交。
[0014]本说明书提供一种事务提交装置,所述事务提交装置用于分布式数据库中的参与者,包括:
[0015]处理模块,用于响应于事务提交请求,将参与者自身存储的待提交数据进行提交,确定所述参与者自身的提交结果,并根据存储的迁移节点的节点标识,将所述事务提交请求转发至所述迁移节点,以使所述迁移节点根据所述事务提交请求将所述迁移节点存储的待提交数据进行提交,其中,所述迁移节点为所述参与者将数据迁移至的其他参与者;
[0016]接收模块,用于接收所述迁移节点返回的提交结果;
[0017]提交模块,用于根据所述参与者自身的提交结果和所述迁移节点返回的提交结果,返回所述事务提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的提交。
[0018]本说明书提供一种事务提交装置,所述事务提交装置用于分布式数据库中的参与者,包括:
[0019]预处理模块,用于响应于预提交请求,将参与者自身存储的待提交数据进行预提交,确定所述参与者自身的预提交结果,并根据存储的迁移节点的节点标识,将所述预提交请求转发至所述迁移节点,以使所述迁移节点根据所述预提交请求将所述迁移节点存储的待提交数据进行预提交,所述迁移节点为所述参与者将数据迁移至的其他参与者;
[0020]接收模块,用于接收所述迁移节点返回的预提交结果;
[0021]预提交模块,用于根据所述参与者自身的预提交结果和所述迁移节点返回的预提交结果,返回所述预提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的预提交。
[0022]本说明书提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述事务提交的方法。
[0023]本说明书提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述事务提交的方法。
[0024]本说明书采用的上述至少一个技术方案能够达到以下有益效果:
[0025]在提交阶段,由参与者根据接收到的事务提交请求将该参与者自身已存储的待提交数据进行提交的同时,将该事务提交请求转发至迁移节点,由迁移节点根据该事务提交请求将该迁移节点自身存储的待提交数据进行提交。再由该参与者根据自身的提交结果以及接收到的迁移节点的提交结果,返回该事务提交请求对应的执行结果,以此来完成该数据库事务的提交。
[0026]本方法通过由参与者将其对应的迁移节点进行记录,并在提交阶段,将事务提交请求转发给迁移节点,来完成该迁移节点中待提交数据的提交。保证了数据库事务的执行效率和准确率。
附图说明
[0027]此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附
[0028]图中:
[0029]图1为本说明书提供的事务提交方法的流程示意图;
[0030]图2A为本说明书提供的数据迁移的示意图;
[0031]图2B为本说明书提供的事务提交请求的转发过程示意图;
[0032]图3为本说明书提供的事务提交方法的预提交流程示意图;
[0033]图4为本说明书提供的事务提交方法的两阶段提交流程示意图;
[0034]图5为本说明书提供的事务提交方法的流程示意图;
[0035]图6为本说明书提供的事务提交装置的结构示意图;
[0036]图7为本说明书提供的事务提交装置的结构示意图;
[0037]图8为本说明书提供的对应于图1、3、4的电子设备示意图。
具体实施方式
[0038]为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
[0039]在分布式数据库中,通常设置有协调者和参与者。其中,该协调者用于分发任务,该参与者用于执行协调者下发的任务。而在数据库中,通常可通过执行数据库事务来对外提供业务,因此,该参与者执行的任务,往往为数据库事务包含的操作。其中,数据库事务通常包含有执行阶段和提交阶段。执行阶段即为执行数据库事务对应的各操作的阶段,提交阶段为将执行数据库事务对应的各操作时产生的数据进行持久化的阶段。
[0040]以数据库事务为“A向B转账100元”为例。执行阶段即为执行“从A的账户中减去100元”的操作以及“将B的账户中加上100元本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种事务提交方法,所述事务提交方法应用于分布式数据库中的参与者,所述方法包括:响应于事务提交请求,将参与者自身存储的待提交数据进行提交,确定所述参与者自身的提交结果,并根据存储的迁移节点的节点标识,将所述事务提交请求转发至所述迁移节点,以使所述迁移节点根据所述事务提交请求将所述迁移节点存储的待提交数据进行提交,所述迁移节点为所述参与者将数据迁移至的其他参与者;接收所述迁移节点返回的提交结果;根据所述参与者自身的提交结果和所述迁移节点返回的提交结果,返回所述事务提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的提交。2.如权利要求1所述的方法,响应于事务提交请求,将参与者自身存储的待提交数据进行提交,确定所述参与者自身的提交结果,并根据存储的迁移节点的节点标识,将所述事务提交请求转发至所述迁移节点,具体包括:当接收到事务提交请求时,判断是否首次接收到所述事务提交请求;若是,将所述待提交数据进行提交,确定所述参与者自身的提交结果,以及根据存储的所述迁移节点的节点标识,将所述事务提交请求转发至所述迁移节点;若否,返回已经反馈所述事务提交请求的执行结果的信息。3.如权利要求1所述的方法,返回所述事务提交请求的执行结果,具体包括:根据各提交结果,判断是否存在任一提交失败的提交结果;若是,则返回所述事务提交请求执行失败的执行结果;若否,则返回所述事务提交请求执行成功的执行结果。4.如权利要求1所述的方法,将参与者自身存储的待提交数据进行提交,具体包括:将所述参与者自身存储的所述数据库事务对应的数据以及其他参与者迁移至所述参与者的所述数据库事务对应的数据,确定为待提交数据;将确定出的待提交数据进行提交。5.如权利要求1所述的方法,接收所述迁移节点返回的提交结果,具体包括:针对每个迁移节点,若该迁移节点在预设时段内未返回提交结果,确定该迁移节点对应的提交结果为提交失败。6.一种事务提交方法,所述事务提交方法应用于分布式数据库中的参与者,所述方法包括:响应于预提交请求,将参与者自身存储的待提交数据进行预提交,确定所述参与者自身的预提交结果,并根据存储的迁移节点的节点标识,将所述预提交请求转发至所述迁移节点,以使所述迁移节点根据所述预提交请求将所述迁移节点存储的待提交数据进行预提交,所述迁移节点为所述参与者将数据迁移至的其他参与者;接收所述迁移节点返回的预提交结果;根据所述参与者自身的预提交结果和所述迁移节点返回的预提交结果,返回所述预提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的预提交。7.如权利要求6所述的方法,所述方法还包括:响应于最终提交请求,将所述参与者自身存储的待提交数据进行最终提交,确定所述
参与者自身的最终提交结果,并根据存储的迁移节点的节点标识,将所述最终提交请求转发至所述迁移节点,以使所述迁移节点根据所述最终提交请求将所述迁移节点存储的待提交数据进行最终提交,所述迁移节点为所述参与者将数据迁移至的其他参与者;接收所述迁移节点返回的最终提交结果;根据所述参与者自身的最终提交结果和所述迁移节点返回的最终提交结果,返回所述最终提交请求的执行结果,使所述分布式数据库根据所述执行结果完成所述数据库事务的最终提交;其中,所述最终提交请求为所述分布式数据库完成所述数据库事务的预提交后生成的。8.一种事务提交装置,所述事务提交装置用于分布式数据库中的参与者,包括:处理模块,用于响应于事务提交...

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

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

1