[发明专利]一种事务处理方法及系统在审
| 申请号: | 202210233564.4 | 申请日: | 2022-03-10 |
| 公开(公告)号: | CN114579260A | 公开(公告)日: | 2022-06-03 |
| 发明(设计)人: | 李昕辉 | 申请(专利权)人: | 星环信息科技(上海)股份有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/27 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 初春 |
| 地址: | 200233 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 事务处理 方法 系统 | ||
本发明公开了一种事务处理方法及系统。所述方法包括:在分布式锁服务中完成协调者服务的注册;在通过有效的数据库会话执行SQL的过程中,基于注册过程中得到的协调者的编号生成事务身份标识号;基于所述事务身份标识号开启新事务;基于XA协议以及创建的提交里程碑表进行所述新事物的提交。利用该方法,能够解决现有的两阶段提交过程在特定状态下存在发生单点故障、数据不一致、对事务状态不确定等问题。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种事务处理方法及系统。
背景技术
分布式数据库需要保证事务的ACID特性,其中的A即原子性以及D即持久性通常由两阶段提交协议或其变体来实现。两阶段提交是一种确保分布式数据库中的事务的原子性和持久性的一种算法。
两阶段提交包括第一阶段和第二阶段,第一阶段为提交请求阶段,包括:协调者向所有参与者节点询问是否可以执行提交操作,并等待各参与者节点的响应。第二阶段为提交执行阶段,包括:当协调者节点从所有参与者节点获得的响应消息都为“同意”时,协调者节点向所有参与者节点发出“正式提交”的请求,协调者节点收到所有参与者节点反馈的“完成”消息后,完成事务;如果任一参与者节点返回给协调者节点的响应消息为“终止”,或者协调者节点在第一阶段的询问超时之前无法获取所有参与者节点的响应消息时,协调者节点向所有参与者节点发出“回滚操作”的请求,协调者节点收到所有参与者节点反馈的“回滚完成”消息后,取消事务。
上述两阶段提交存在单点故障、数据不一致、极限情况下对某一事务的不确定性等问题,这些问题会导致分布式事务的原子性和持久性受影响。
发明内容
本发明提供了一种事务处理方法及系统,以解决现有的两阶段提交过程在特定状态下存在发生单点故障、数据不一致、对事务状态不确定等问题。
根据本发明的一方面,提供了一种事务处理方法,包括:
在分布式锁服务中完成协调者服务的注册;
在通过有效的数据库会话执行SQL的过程中,基于注册过程中得到的协调者的编号生成事务身份标识号;
基于所述事务身份标识号开启新事务;
基于XA协议以及创建的提交里程碑表进行所述新事物的提交。
根据本发明的另一方面,提供了一种事务处理系统,包括:
至少一个协调者服务、分布式锁服务以及至少一个子数据库,所述分布式锁服务分别与所述至少一个协调者服务通信连接,每个协调者服务分别与所述至少一个子数据库通信连接;
所述一个或多个协调者服务用于在所述分布式锁服务中完成协调者服务的注册;
所述一个或多个协调者服务还用于基于注册过程中得到的协调者的编号生成事务身份标识号;
所述一个或多个协调者服务还用于基于所述事务身份标识号开启新事务;
所述一个或多个协调者服务还用于基于XA协议以及创建的提交里程表进行所述新事物的提交;
所述一个或多个子数据库用于在接收到所述协调者服务发送的XA协议的正式提交请求后,执行事务的正式提交操作;
所述一个或多个子数据库还用于在接收到所述协调者服务发送的XA协议的回滚请求后,执行事务的回滚操作。
根据本发明的另一方面,提供了一种协调者服务设备,所述协调者服务设备包括:至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的事务处理方法
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星环信息科技(上海)股份有限公司,未经星环信息科技(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210233564.4/2.html,转载请声明来源钻瓜专利网。





