事务处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36691093 阅读:15 留言:0更新日期:2023-02-27 19:58
本申请涉及一种事务处理方法、装置、电子设备及存储介质,该方法包括:接收客户端发送的目标语句;对目标语句进行语法解析,得到至少一个可执行子语句;将预先定义的目标语句对应的保存点携带于可执行子语句中,并发送给数据节点;接收数据节点返回的处理结果;在处理结果指示目标分片的可执行子语句执行失败的情况下,向数据节点发送回退指令,以供数据节点将除目标分片之外的其他分片的数据回退至各自对应的初始数据,并生成回退成功响应;接收数据节点返回的回退成功响应,并基于回退成功响应向客户端发送目标语句的执行结果。这样不仅可以保证事务的一致性,还可以有效提高了目标事务的执行效率。目标事务的执行效率。目标事务的执行效率。

【技术实现步骤摘要】
事务处理方法、装置、电子设备及存储介质


[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]第一接收模块,用于接收客户端发送的目标语句,所述目标语句为目标事务内的任一语句;
[0030]语法解析模块,用于对所述目标语句进行语法解析,得到至少一个可执行子语句;
[0031]第一发送模块,用于将预先定义的所述目标语句对应的保存点携带于所述可执行子语句中,并发送给数据节点,以供所述数据节点基于所述目标语句对应的保存点,保存各所述可执行子语句对应分片的初始数据,并执行各所述可执行子语句,得到各所述可执行
子语句对应的处理结果;
[0032]第二接收模块,用于接收所述数据节点返回的所述处理结果;
[0033]第二发送模块,用于在所述处理结果指示目标分片的可执行子语句执行失败的情况下,向所述数据节点发送回退指令,以供所述数据节点将除所述目标分片之外的其他分片的数据回退至各自对应的初始数据,并生成回退成功响应,所述目标分片为各所述可执行子语句对应分片中的任一分片;
[0034]第三发送模块,用于接收所述数据节点返回的所述回退成功响应,并基于所述回退成功响应向所述客户端发送所述目标语句的执行结果。
[0035]第四方面,本申请还提供了一种事务处理装置,应用于数据节点,所述装置包括:
[0036]第三接收模块,用于接收计算节点发送的至少一个可执行子语句,并解析得到各所述可执行子语句中所携带的目标语句对应的保存点,所述目标语句对应的保存点是预先定义的,所述可执行子语句是由所述计算节点对目标语句进行语法解析得到,所述目标语句为客户端向所述计算节点发送的所述目标事务内的任一语句;
[0037]保存与执行模块,用于基于所述目标语句对应的保存点,保存各所述可执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种事务处理方法,其特征在于,应用于计算节点,所述方法包括:接收客户端发送的目标语句,所述目标语句为目标事务内的任一语句;对所述目标语句进行语法解析,得到至少一个可执行子语句;将预先定义的所述目标语句对应的保存点携带于所述可执行子语句中,并发送给数据节点,以供所述数据节点基于所述目标语句对应的保存点,保存各所述可执行子语句对应分片的初始数据,并执行各所述可执行子语句,得到各所述可执行子语句对应的处理结果;接收所述数据节点返回的所述处理结果;在所述处理结果指示目标分片的可执行子语句执行失败的情况下,向所述数据节点发送回退指令,以供所述数据节点将除所述目标分片之外的其他分片的数据回退至各自对应的初始数据,并生成回退成功响应,所述目标分片为各所述可执行子语句对应分片中的任一分片;接收所述数据节点返回的所述回退成功响应,并基于所述回退成功响应向所述客户端发送所述目标语句的执行结果。2.根据权利要求1所述的方法,其特征在于,所述将预先定义的所述目标语句对应的保存点携带于所述可执行子语句中,并发送给数据节点,包括:将所述目标语句对应的保存点以注释的形式拼接于所述可执行子语句中,并发送给所述数据节点。3.根据权利要求2所述的方法,其特征在于,所述将预先定义的所述目标语句对应的保存点携带于所述可执行子语句中,并发送给数据节点,还包括:在所述可执行子语句为多个,且多个所述可执行子语句中存在至少两个可执行子语句对应所述数据节点上的同一分片的情况下,仅将所述目标语句对应的保存点携带于所述至少两个可执行子语句中的第一个可执行子语句中,并发送给所述数据节点。4.根据权利要求1所述的方法,其特征在于,在所述接收所述数据节点返回的所述处理结果之后,所述方法还包括:在所述处理结果指示各所述可执行子语句执行成功的情况下,直接向所述客户端发送所述目标语句的执行结果。5.一种事务处理方法,其特征在于,应用于数据节点,所述方法包括:接收计算节点发送的至少一个可执行子语句,并解析得到各所述可执行子语句中所携带的目标语句对应的保存点,所述目标语句对应的保存点是预先定义的,所述可执行子语句是由所述计算节点对目标语句进行语法解析得到,所述目标语句为客户端向所述计算节点发送的所述目标事务内的任一语句;基于所述目标语句对应的保存点,保存各所述可执行子语句对应分片的初始数据,并执行各所述可执行子语句,得到各所述可执行子语句对应的处理结果;将所述处理结果发送给所述计算节点;在接收到所述计算节点发送的回退指令的情况下,将除目标分片之外的其他分片的数据回退至各自对应的初始数据,并生成回退成功响应,所述目标分片为各所述可执行子语句对应分片中的任一分片,所述回退指令是在所述处理结果指示目标分片的可执行子语句执行失败的情况下由所述计算节点生成的;将所述回退成功响应发送至所述计算节点,以供所述计算节点基于所述回退成功响
应,向所述客户端发送所述目标语句的执行结果。6.根据权利要求5所述的方法,其特征在于,在所述在接收到所述计算节点发送的回退指令的情况下,将除目标分片之外的其他分片的数据回退至各自对应的初始数据,并生成回退成功响应,包括:在接收到所述计算节点发送的回退指令的情况下,解析获取所述回退指令中所...

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

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

1