[发明专利]分布式事务处理的方法、装置与系统有效
申请号: | 201610790099.9 | 申请日: | 2016-08-30 |
公开(公告)号: | CN107797850B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 姜宇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/23 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨文娟;刘芳 |
地址: | 开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 事务处理 方法 装置 系统 | ||
本发明提供一种分布式事务处理的方法、装置与系统,方法包括:接收终端发送的目标事务的分支请求,所述分支请求中包括所述目标事务的修改项的信息;判断所述修改项是否被占用;若判断结果为否,则形成所述第一全局事务日志与所述修改项之间的映射关系,所述第一全局事务日志为所述目标事务的全局事务日志。根据本发明,能够避免在资源管理器对应的数据库中建立影子表以及维护影子表的开销。
技术领域
本发明涉及互联网技术,尤其涉及一种分布式事务处理的方法、装置与系统。
背景技术
所谓事务,是数据库中一个操作单元,在该操作单元中所有的操作要么都成功,要么都失败,执行结果不可逆转,事务具备四个基本的特性:原子性、一致性、隔离性、持久性,也简称为事务的ACID特性。随着互联网的发展和用户需求的不断变化,分布式事务系统的应用越来越广泛。
分布式事务系统通常包含客户端、资源管理器、事务协调器几个角色,分别位于分布式系统的不同节点之上。其中,事务协调器负责协调整个事务从开始到完成的所有相关处理流程,是系统核心角色,其可用性决定了分布式事务整体的可用性。为了避免因为一个事务协调器不可用而造成其负责的事务无法进行下去,需要事务协调器的高可用性。
在分布式系统中,不同事务并发修改同一数据而发生冲突是必须解决的问题。现有技术中,为了解决数据修改会发生冲突的问题,常用办法是为每张客户端的数据表创建一个影子表,把事务协调器修改的数据插入到影子表,并且在分布式事务完成(提交或回滚)后删除插入到影子表的数据。如果数据插入影子表成功,则明加锁成功,如果要插入影子表的数据已经在影子表中存在,则表明数据修改冲突,插入操作失败,即加锁失败,从而避免了数据冲突。
举例来说,假设有两个分布式事务Tx1和Tx2。Tx1和Tx2分别代表转账操作的执行终端,Tx1对应的转账操作是从A账户转给B账户200元,Tx2对应的转账操作是从B账户转给C账户100元。Tx1修改资源管理器对应的数据库中的DB_A的表Table_A的主键为1的一行记录(A账户减200),以及资源管理器对应的数据库DB_B的表Table_B的主键为2的一行记录(B账户加200);Tx2修改资源管理器对应的数据库DB_B的表Table_B的主键为2的一行记录(B账户减100),以及资源管理器对应的数据库DB_C的表Table_C的主键为3的一行记录(C账户加100)。如果两个事务发生以下执行顺序:
1)Tx1 begin
2)Tx2 begin
3)Tx1 update DB_A/Table_A/1
4)Tx2 update DB_B/Table_B/2
5)Tx1 update DB_B/Table_B/2
6)Tx2 update DB_C/Table_C/3
7)Tx1 commit
8)Tx2 commit
显然,两个事务都修改了DB_B的表Table_B的主键为2这行数据,也就是两个事务并发修改了B账户金额。如果不加控制就会造成数据冲突,因此,现有技术中采用影子表方案以防止数据冲突。具体地:
Tx1、Tx2先后开启;
Tx1修改DB_A时,在Table_A的影子表Table_A_temp插入一行记录,主键为1,插入成功;
Tx2修改DB_B时,在Table_B的影子表Table_B_temp插入一行记录,主键为2,插入成功;
Tx1修改DB_B时,在Table_B的影子表Table_B_temp插入一行记录,主键为2,由于记录已存在而插入失败,接下来,Tx1会重试加锁直到成功;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610790099.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:分布式事务处理的方法、装置与系统
- 下一篇:任务调度方法、装置及移动终端