[发明专利]一种分布式事务处理方法、装置及系统有效
| 申请号: | 202010947573.0 | 申请日: | 2020-09-10 |
| 公开(公告)号: | CN111984665B | 公开(公告)日: | 2023-07-25 |
| 发明(设计)人: | 李兵;胡东旭;申大伟 | 申请(专利权)人: | 度小满科技(北京)有限公司 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2455;G06F16/2458;G06F16/248;G06F16/27 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张静 |
| 地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 事务处理 方法 装置 系统 | ||
1.一种分布式事务的处理方法,其特征在于,所述方法应用于分布式系统中的TM事务管理器,包括:
所述TM事务管理器接收Mysql分片数据库发送的分布式事务的子事务的版本号;
在接收到预设的触发指令的情况下,将已完成的分布式事务的各个子事务的版本号发送给预设的缓存数据库,所述版本号为所述预设的缓存数据库进行更新的基础;所述已完成的分布式事务为所有子事务的版本号均已被接收的分布式事务;
当接收到客户端的查询指令的情况下,在所述预设的缓存数据库中获取目标Mysql分片数据库的目标版本号;所述目标Mysql分片数据库为所述查询指令指向的Mysql分片数据库;所述预设的缓存数据库中存储有各个Mysql分片数据库的版本号;
将所述查询指令和所述目标版本号发送给所述目标Mysql分片数据库;所述目标版本号是所述目标Mysql分片数据库反馈所述查询指令对应的分布式事务的子事务的执行结果的依据,并且所述反馈的所述执行结果的分布式事务的子事务的版本号不超过所述目标版本号的指示范围;
接收Mysql分片数据库反馈的分布式子事务的执行结果,并将所述分布式子事务的执行结果发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取所述预设的缓存数据库中每个Mysql分片数据库对应的版本号,作为待留存的版本号;
向每个Mysql分片数据库发送版本号清除指令和相对应的待留存的版本号;所述清除指令和待留存的版本号用于指示所述Mysql分片数据库清除所述待留存版本号之内的其它版本号。
3.根据权利要求1所述的方法,其特征在于,还包括:
在分布式事务执行的过程中,若出现所述TM事务管理器与Mysql分片数据库断开的情况,确定标记有待恢复模式的子事务;所述待恢复模式的子事务为所述TM事务管理器与所述Mysql分片数据库断开时,处于XA PREPARE阶段的子事务;
获取与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态;
基于所述其它子事务的状态,确定所述待恢复模式的子事务的操作指令;所述操作指令包括提交或者回滚;
在所述TM事务管理器再次与所述Mysql分片数据库建立连接的情况下,向所述Mysql分片数据库发送所述待恢复模式的子事务的操作指令。
4.根据权利要求3所述的方法,其特征在于,所述基于所述其它子事务执行的状态,确定所述待恢复模式的子事务的操作指令,包括:
若与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态均为已提交,则所述待恢复模式的子事务的操作指令为提交;
若与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态中包含回滚状态,则所述待恢复模式的子事务的操作指令为回滚;
若与所述待恢复模式的子事务属于同一分布式事务的其它子事务的状态均不存在回滚或者提交状态,则依据预设的操作规则确定所述待恢复模式的子事务的操作指令。
5.一种分布式事务的处理方法,其特征在于,所述方法应用于分布式事务的Mysql分片数据库,包括:
分布式事务的子事务在Mysql分片数据库中执行了提交操作的情况下,生成所述子事务的版本号,并将所述子事务的版本号发送给TM事务管理器;
在接收到TM事务管理器发送的查询指令和目标版本号的情况下,获取版本号在所述目标版本号的指示范围内且所述查询指令对应的分布式事务的子事务的执行结果;所述目标版本号是在预设的缓存数据库中获取的;所述缓存数据库中存储有各个Mysql分片数据库的版本号,且所述预设的缓存数据库中的版本号是通过所述TM事务管理器发送的已完成的分布式事务的各个子事务的版本号进行更新的,所述已完成的分布式事务为所述TM事务管理器中分布式事务的所有子事务的版本号均已被接收的分布式事务;
将所述版本号在所述目标版本号的指示范围内且所述查询指令对应的分布式事务的子事务的执行结果,发送给所述TM事务管理器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于度小满科技(北京)有限公司,未经度小满科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010947573.0/1.html,转载请声明来源钻瓜专利网。





