【技术实现步骤摘要】
一种分布式事务处理方法、装置及系统
本专利技术涉及数据处理领域,尤其涉及一种分布式事务处理方法、装置及系统。
技术介绍
分布式事务是指事务的参与者、支持者的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,或者可以理解为,一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用。在分布式事务执行的过程中,需要保证分布式事务处理的隔离性,隔离性表示:事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的,通俗的理解为在一个事务没有执行完成之前,该事务包含的子事务是不能被用户看到的。当前,保障分布式事务执行处理的隔离性一直是分布式事务处理的难题。
技术实现思路
有鉴于此,本专利技术实施例公开了一种分布式事务处理方法、装置及系统,保障了分布式事务在处理的过程中的隔离性的要求。第一方面,本专利技术实施例公开了一种分布式事务的处理方法,其特征在于,所述方法应用于分布式系统中的TM事务管理器,包括:所述TM事务管理器接收Mysql ...
【技术保护点】
1.一种分布式事务的处理方法,其特征在于,所述方法应用于分布式系统中的TM事务管理器,包括:/n所述TM事务管理器接收Mysql分片数据库发送的分布式事务的子事务的版本号;/n在接收到预设的触发指令的情况下,将已完成的分布式事务的各个子事务的版本号发送给预设的缓存数据库,所述版本号为所述预设的缓存数据库进行更新的基础;所述已完成的分布式事务为所有子事务的版本号均已被接收的分布式事务;/n当接收到客户端的查询指令的情况下,在所述预设的缓存数据库中获取目标Mysql分片数据库的目标版本号;所述目标Mysql分片数据库为所述查询指令指向的Mysql分片数据库;所述预设的缓存数据库 ...
【技术特征摘要】
1.一种分布式事务的处理方法,其特征在于,所述方法应用于分布式系统中的TM事务管理器,包括:
所述TM事务管理器接收Mysql分片数据库发送的分布式事务的子事务的版本号;
在接收到预设的触发指令的情况下,将已完成的分布式事务的各个子事务的版本号发送给预设的缓存数据库,所述版本号为所述预设的缓存数据库进行更新的基础;所述已完成的分布式事务为所有子事务的版本号均已被接收的分布式事务;
当接收到客户端的查询指令的情况下,在所述预设的缓存数据库中获取目标Mysql分片数据库的目标版本号;所述目标Mysql分片数据库为所述查询指令指向的Mysql分片数据库;所述预设的缓存数据库中存储有各个Mysql分片数据库的版本号;
将所述查询指令和所述目标版本号发送给所述目标Mysql分片数据库;所述目标版本号是所述目标Mysql分片数据库反馈所述查询指令对应的分布式事务的子事务的执行结果的依据,并且所述反馈的所述执行结果的分布式事务的子事务的版本号不超过所述目标版本号的指示范围;
接收Mysql分片数据库反馈的分布式子事务的执行结果,并将所述分布式子事务的执行结果发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取所述预设的缓存数据库中每个Mysql分片数据库对应的版本号,作为待留存的版本号;
向每个Mysql分片数据库发送版本号清除指令和相对应的待留存的版本号;所述清除指令和待留存的版本号用于指示所述Mysql分片数据库清除所述待留存版本号之内的其它版本号。
3.根据权利要求1所述的方法,其特征在于,还包括:
在分布式事务执行的过程中,若出现所述TM事务管理器与Mysql分片数据库断开的情况,确定标记有待恢复模式的子事务;所述待恢复模式的子事务为所述TM事务管理器与所述Mysql分片数据库断开时,处于XAPREPARE阶段的子事务;
获取与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态;
基于所述其它子事务的状态,确定所述待恢复模式的子事务的操作指令;所述操作指令包括提交或者回滚;
在所述TM事务管理器再次与所述Mysql分片数据库建立连接的情况下,向所述Mysql分片数据库发送所述待恢复模式的子事务的操作指令。
4.根据权利要求3所述的方法,其特征在于,所述基于所述其它子事务执行的状态,确定所述待恢复模式的子事务的操作指令,包括:
若与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态均为已提交,则所述待恢复模式的子事务的操作指令为提交;
若与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态中包含回滚状态,则所述待恢复模式的子事务的操作指令为回滚;
若与所述待恢复模式的子事务属于同一分布式事务的其它子事务的状态均不存在回滚或者提交状态,则依据预设的操作规则确定所述待恢复模式的子事务的操作指令。
5.一种分布式事务的处理方法,其特征在于,所述方法应用于分布式事务的Mysql分片数据库,包括:
分布式事务的子事务在Mysql分片数据库中执行了提交操作的情况下,生成所述子事务的版本号,并将所述子事务的版本号发送给TM事务管理器;
在接收到TM事务管理器发送的查询指令和目标版本号的情况下,获取版本号在所述目标版本号的指示范围内且所述查询指令对应的分布式事务的子事务的执行结果;所述目标版本号是在预设的缓存数据库中获取的;所述缓存数据库中存储有各个Mysql分片数据库的版本号,且所述预设的缓存数据库中的版本号是通过所述TM事务管理器发送的已完成的分布式事务的各个子事务的版本号进行更新的,所述已完成的分布式事务为所述TM事务管理器中分布式事务的所有子事务的版本号均已被接收的分布式事务;
将所述版本号在所述目标版本号的指示范围内且所述查询指令对应的分布式事务的子事务的执行结果,发送给所述TM事务管理器。
6.根据权利要求5所述的方法,其特征在于,所述在接收到TM事务管理器发送的查询指令和目标版本号的情况下,获取版本号在所述目标版本号的指示范围内且所述查询指令对应的分布式事务的子事务的执行结果,包括:
在接收到所述TM事务管理器发送的查询指令和目标版本号的情况下,获取所述查询指令对应的分布式事务的子事务的执行结果;
从所述查询指令对应的分布式事务的子事务的执行结果中筛选出,版本号在所述目标版本号范围内分布式事务的子事务的执行结果。
7.根据权利要求5所述的方法,其特征在于,还包括:
在分布式事务执行的过程中,若出现TM事务管理器与Mysql分片数据库断开的情况,将处于XAPREPARE阶段的子事务标记为待恢复模式;
当所述TM事务管理器再次与所述Mysql分片数据库建立连接的情况下,接收所述TM事务管理器发送的所述待恢复模式的子事务的操作指令;所述待恢复模式的子事务的操作指令是基于与所述待恢复模式的子事务属于同一个分布式事务的其它子事务的状态确定的;
根据所述操作指令对所述待恢复模式的子事务执行提交或者...
【专利技术属性】
技术研发人员:李兵,胡东旭,申大伟,
申请(专利权)人:上海优扬新媒信息技术有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。