CN103294479A - 分布式事务处理方法与系统 - Google Patents
分布式事务处理方法与系统 Download PDFInfo
- Publication number
- CN103294479A CN103294479A CN2013102418794A CN201310241879A CN103294479A CN 103294479 A CN103294479 A CN 103294479A CN 2013102418794 A CN2013102418794 A CN 2013102418794A CN 201310241879 A CN201310241879 A CN 201310241879A CN 103294479 A CN103294479 A CN 103294479A
- Authority
- CN
- China
- Prior art keywords
- transaction
- affairs
- behalf
- agency
- remote
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多节点数据库集群中的分布式事务处理方法与系统,用于任务跨节点执行时保持其事务特性,其核心在于使用了远程事务代理的机制,它包括主事务模块,代理事务模块,事务远程代理及关联模块。主事务模块包括:事务初始化生成,事务保存点设置,事务回滚,事务提交。其中事务保存点可以在复杂事务过程中设置多个,事务回滚可以有回滚当前命令,回滚至指定保存点,回滚整个事务等;代理事务模块包括:代理事务初始化生成,代理事务保存点设置,代理事务回滚,代理事务提交等。事务远程代理及关联模块,包括主事务创建远程事务代理存根,主事务传递事务环境变量,代理事务关联远程主事务环境,代理事务执行后反馈等。
Description
技术领域
本发明涉及一种数据库接群中任务跨节点执行保持事务特性的方法,属于计算机技术领域。
背景技术
目前,在分布式系统下,任务的执行在单节点情况下可以保持事务特性,而在多节点下,跨节点的操作部分并不能保持事务特性;在云数据库系统下,表数据等资源是分布式存放的,使得任务执行时会出现要操作的数据不在本地,需要在事务环境下跨节点执行操作,因此云数据库的事务执行不同于单服务数据库系统,其一项任务的执行可能需要多个工作节点的工作机,存储机协同完成,在操作异节点资源时,因事务运行环境不同,难以保证非本地节点的事务ACID特性,目前未见可用的措施。
发明内容
本发明是为了保证数据库集群中,分布式事务跨节点保证事务特性。其核心在于使用了远程事务代理的机制保证数据操作的事务一致性,它包括主事务模块,代理事务模块,事务远程代理及关联模块。主事务模块包括:事务初始化生成,事务保存点设置,事务回滚,事务提交。代理事务模块包括:代理事务初始化生成,代理事务保存点设置,代理事务回滚,代理事务提交。主事务与代理事务之间通过事务远程代理及关联模块交互信息,主事务的变化通过底层消息通讯传递到代理事务节点,代理事务根据消息内容,选择相应的处理单元绑定事务执行操作。
远程事务代理的含义:在云数据库系统下,表数据等资源是分布式存放的,使得任务执行时会出现要操作的数据不在本地,需要在事务环境下跨节点执行操作(此处称为主叫事务,主事务),为保证事务特性,在资源所在的远程节点新起一个事务(此处称为远程代理事务)在本地操作数据,并把结果反馈给主事务,此种模式是为远程事务代理。
远程事务代理的过程包括,根据任务的执行需要创建事务并初始化,在需要跨节点执行并需要保持事务特性时,创建远程事务代理,保存远程事务代理存根,并传递事务环境变量,远程执行节点创建代理事务,保存其代理的主事务的节点号和事务号,接收并关联传递来的事务环境,执行任务,反馈回主事务;主事务可根据需要设置保存点,执行回滚和提交,并根据远程事务代理存根将同样的操作传递至代理节点,代理节点根据代理事务映射表关联事务环境,执行与主事务一致的操作并反馈。主事务与远程事务节点间通过底层消息通讯机制进行通讯。分布式事务的核心运行机制在于其上述通过远程事务代理的方式保证任务跨节点执行的事务特性,通过这种方式主事务与代理事务保持一致性,从而保证了跨节点任务整体的事务一致性。
分布式事务方法,它包括以下步骤:
1. 创建主事务:在用户执行的会话中,启用事务环境,所创建的事务我们称为主事务,又叫原生事务,在任务执行中,遇到除了需要在本地执行之外,需要使用远程节点的资源,于是部分操作被放到远程节点执行,同时为保证其事务特性,在远程也创建新事务环境,新事务是与主事务相关联的,他代理了主事务在远程节点的事务特性。
2. 创建代理事务:如步骤1中所述,在任务的跨节点执行中,异于主事务所在节点的资源所在节点需要事务环境,故根据主事务传递来的事务环境变量创建新事务(即代理事务),并在其事务控制结构中的事务代理结构中记载他代理的主事务的事务号与节点号,绑定事务环境,执行任务操作。
3. 关联主事务与远程代理事务:主事务因任务需要创建远程代理事务,并在事务控制结构中创建远程代理事务存根,主事务通过存根访问其代理事务。代理事务节点根据事务的代理信息创建事务代理映射表,以此关联并绑定主事务传递来的信息以及传递信息回主事务。主事务与远程代理事务的关联绑定为分布式事务的提交和回滚提供了基础。
4. 事务的保存点:在事务执行中,执行过程较为复杂的事务可以设置多个保存点使得事务的运行可根据用户的需求从保存点回滚或重做,尽可能的保留已经处理过的有效操作或处理过程;此操作在主事务中设置保存点并通过远程事务代理关联,使代理事务在本地的同样事务位置设置保存点,方便事务的回滚操作的执行。
5. 事务的回滚:事务的回滚从回滚后的位置主要分为三类:
S1.回滚当前命令:在事务中可能出现当前命令错误,但需要保持之前的命令操作有效,此时实行回滚当前命令,在主事务中执行回滚当前命令操作,并访问远程事务代理存根,发消息让远程代理事务根据当前命令号在远程节点本地执行回滚当前命令操作;
S2.回滚到指定的保存点:在事务的执行过程中,设置了事务保存点,事务回滚可根据用户需要回滚至指定的保存点,并释放指定保存点之后的事务保存点。在主事务中执行回滚到指定保存点,并消息通知代理事务执行回滚到指定保存点;
S3.回滚整个事务:事务执行过程中,出现错误需要回滚整个事务回到事务初始状态,执行回滚整个事务操作,主事务在本地执行回滚操作,发消息至代理事务节点,代理事务在本地执行回滚整个事务操作,完成后反馈主事务,主事务执行事务过程中产生的延迟到事务回滚后执行的命令。
6. 事务的提交:分布式事务的提交从主事务开始,执行本地的提交操作,包括执行事务过程中产生的延迟到事务提交时执行的程序;提交远程代理事务:包括访问远程事务代理存根,发消息让远程代理事务提交,等待远程代理事务提交反馈:远程代理事务在本地执行提交操作,并反馈给主事务。完成数据回写,从活动事务表清除此事务,释放事务控制结构,释放事务锁资源。其中完成数据回写操作根据事务处于不同提交模式操作方式不同:
A严格提交模式:等候数据写回磁盘,才确认提交完成;
B非严格提交模式:将回写数据记入重做日志,确认提交完成返回,写盘操作交由后台回写线程完成回写。
本发明的有益效果:
1、 分布式事务,为任务的跨节点执行提供了事务环境,使得各节点数据操作保持事务一致性;
2、 以远程事务代理存根的方式关联主事务与远程代理事务;
3、 以映射表方式关联本地事务和其代理的远程主事务;
4、 通过底层消息通讯机制保证主事务与代理事务的信息传递。
具体的实施方式
下面结合具体实例进一步说明本发明的技术方案,但本发明所保护的内容不局限于以下所述。
在分布式数据库系统中,用户session连接在node1节点上,用户在事务环境中执行update操作,此语句更改的数据资源涉及到node1,node2节点。
具体的事务过程如下:
创建主事务与代理事务:在执行数据更改操作的开始在node1节点创建主事务,规划中部分更改数据涉及node2节点,对于node1本节点更改的数据在主事务环境下完成更改操作;对于操作发生在node2上的数据,发消息在node2上创建代理事务,并记录代理事务存根。Node2节点创建新事务,并创建事务代理控制结构记录其代理的主事务的事务号,节点号;然后关联主事务,绑定对应于主事务的环境变量,在此环境下执行数据更改操作。
事务保存点的创建:此时主事务在本地创建事务保存点信息,并通过代理事务存根发消息到node2节点,内容包含当前事务号以及创建事务保存点信息,node2节点收到消息后,通过node1节点号,主事务号,从代理事务映射表中查找到本地对应的代理事务,绑定事务环境创建事务保存点并反馈回主事务;此时设置了事务保存点,之后的过程如果发生事务回滚操作,就可以回滚到此保存点。
用户在当前事务环境下插入一条新记录,该记录落在节点node2存储上,则主事务记录命令后,通过代理事务存根发送消息至node2节点,node2节点查找代理事务映射表,通过代理事务映射表匹配代理事务号和代理节点找到对应的本地事务,绑定事务环境在本地执行插入新纪录操作。
事务的回滚:用户希望撤销之前的插入操作,回滚到update操作之后,于是发送回滚到保存点命令,主事务接收到此命名后,根据存根发消息到代理事务节点,并清除插入命令的记载,回滚至设置的对应保存点,并检索后面的保存点,如果后面还设置有保存点则清除后面的保存点;代理事务节点node2接到消息后,根据代理事务映射表,匹配消息传来的节点号,事务号,找到本地对应的代理事务,切换至此事务环境,回滚到之前的事务保存点:撤销之前的数据插入操作,并检索后面的保存点,如果后面还设置有保存点则清除后面的保存点,完成后反馈结果至主事务。
事务的提交:用户主动提交事务,主事务根据代理事务存根向代理事务节点发送提交消息,并在本地将之前发生的更改操作回写至磁盘,或者是记入重做日志,由后台写盘线程完成磁盘回写,并从活动事务表从活动事务表清除此事务,删除代理事务存根,释放事务控制结构,释放事务锁资源;代理事务节点根据主事务节点传递来的消息,从代理事务映射表匹配代理事务号与代理节点号找到对应的本地事务,绑定事务环境,执行事务提交操作,将事务过程中发生的更改操作回写至磁盘或记入重做日志,由后台写盘线程完成磁盘回写,并从活动事务表从活动事务表清除此事务,从代理事务映射表删除此条代理事务映射记录,释放事务控制结构,释放事务锁资源。
Claims (7)
1.分布式事务,一种用于集群中任务执行保持事务特性的方法,其特征在于,为保证任务跨节点执行保持事务特性,本发明采用远程事务代理的方式,包括主事务模块,代理事务模块,事务远程代理及关联模块,主事务通过远程事务代理存根联系代理事务,代理事务通过事务代理映射表联系主事务。
2.一种如权利要求1所述的分布式事务处理方法与系统,其特征在于,其主事务模块包括:事务初始化生成,事务保存点设置,事务回滚,事务提交;
其中事务保存点可以在复杂事务过程中设置多个,事务回滚可以有回滚当前命令,回滚至指定保存点,回滚整个事务等。
3.一种如权利要求1所述的分布式事务方法与系统,其特征在于,代理事务模块包括:代理事务初始化生成,代理事务保存点设置,代理事务回滚,代理事务提交等。
4.一种如权利要求1所述的分布式事务处理方法与系统,其特征在于,主事务通过远程事务代理存根关联代理事务,远程事务代理存根中保存了代理事务的节点号,主事务传递事务信息时向代理事务节点传递自身事务号,节点号。
5.一种如权利要求1所述的分布式事务处理方法与系统,其特征在于,代理事务通过代理事务映射表,匹配来自主事务的代理事务号和节点号关联主事务与本地事务。
6.一种如权利要求1所述的分布式事务处理方法与系统,其特征在于,主事务与远程代理事务一致,包括:远程事务环境传递, 提交以及回滚一致。
7.一种如权利要求1所述的分布式事务处理方法与系统,其特征在于,主事务与代理事务的信息传递,通过底层消息通讯机制保证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102418794A CN103294479A (zh) | 2013-06-19 | 2013-06-19 | 分布式事务处理方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102418794A CN103294479A (zh) | 2013-06-19 | 2013-06-19 | 分布式事务处理方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103294479A true CN103294479A (zh) | 2013-09-11 |
Family
ID=49095419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102418794A Pending CN103294479A (zh) | 2013-06-19 | 2013-06-19 | 分布式事务处理方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103294479A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199976A (zh) * | 2014-09-24 | 2014-12-10 | 浪潮通用软件有限公司 | 一种融合原生事务和逻辑事务的方法 |
CN104580525A (zh) * | 2015-02-03 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于事务模型的集群部署系统 |
CN105471880A (zh) * | 2015-12-03 | 2016-04-06 | 中国南方电网有限责任公司信息中心 | 一种可容错的分布式安全事件数据传输协议的实现方法 |
CN105893395A (zh) * | 2015-01-26 | 2016-08-24 | 阿里巴巴集团控股有限公司 | 分布式事务的消息回查方法及其系统 |
CN105988861A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 事务消息的发送方法和装置 |
CN106383737A (zh) * | 2016-09-09 | 2017-02-08 | 浪潮软件股份有限公司 | 一种分布式事务处理方法 |
CN106855822A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 用于分布式事务处理的方法及设备 |
CN107436799A (zh) * | 2016-05-26 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 分布式事务一致性实现方法及装置 |
CN107545024A (zh) * | 2017-06-12 | 2018-01-05 | 中国银联股份有限公司 | 用于分布式数据库的事务保存点管理装置及方法 |
CN107818009A (zh) * | 2017-10-17 | 2018-03-20 | 北京人大金仓信息技术股份有限公司 | 一种基于分布式事务的代理处理的方法 |
CN108205464A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
CN108572959A (zh) * | 2017-03-07 | 2018-09-25 | 中国移动通信集团江西有限公司 | 一种与数据库交互数据的方法和装置 |
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1507597A (zh) * | 2001-05-15 | 2004-06-23 | �Ҵ���˾ | 用于管理分布式事务内跨越多个dbms的分布式保存点的方法 |
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN101341466A (zh) * | 2005-12-19 | 2009-01-07 | 国际商业机器公司 | 分布式系统中事务的提交 |
CN101710288A (zh) * | 2009-11-27 | 2010-05-19 | 成都市华为赛门铁克科技有限公司 | 升级处理方法和系统、升级服务器以及升级设备 |
CN102037463A (zh) * | 2008-02-26 | 2011-04-27 | 甲骨文国际公司 | 使用全局确认的提交进行分布式事务的基于日志的复制 |
US20120084274A1 (en) * | 2010-10-05 | 2012-04-05 | Frank Renkes | Distributed Transaction Management With Tokens |
US20120158650A1 (en) * | 2010-12-16 | 2012-06-21 | Sybase, Inc. | Distributed data cache database architecture |
CN102662793A (zh) * | 2012-03-07 | 2012-09-12 | 江苏引跑网络科技有限公司 | 一种可保证数据一致性的分布式数据库热备份与恢复方法 |
CN103116596A (zh) * | 2011-11-16 | 2013-05-22 | Sap股份公司 | 在分布式数据库中执行快照隔离的系统和方法 |
US20130173553A1 (en) * | 2011-12-29 | 2013-07-04 | Anand Apte | Distributed Scalable Deduplicated Data Backup System |
-
2013
- 2013-06-19 CN CN2013102418794A patent/CN103294479A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1507597A (zh) * | 2001-05-15 | 2004-06-23 | �Ҵ���˾ | 用于管理分布式事务内跨越多个dbms的分布式保存点的方法 |
CN101341466A (zh) * | 2005-12-19 | 2009-01-07 | 国际商业机器公司 | 分布式系统中事务的提交 |
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN102037463A (zh) * | 2008-02-26 | 2011-04-27 | 甲骨文国际公司 | 使用全局确认的提交进行分布式事务的基于日志的复制 |
CN101710288A (zh) * | 2009-11-27 | 2010-05-19 | 成都市华为赛门铁克科技有限公司 | 升级处理方法和系统、升级服务器以及升级设备 |
US20120084274A1 (en) * | 2010-10-05 | 2012-04-05 | Frank Renkes | Distributed Transaction Management With Tokens |
US20120158650A1 (en) * | 2010-12-16 | 2012-06-21 | Sybase, Inc. | Distributed data cache database architecture |
CN103116596A (zh) * | 2011-11-16 | 2013-05-22 | Sap股份公司 | 在分布式数据库中执行快照隔离的系统和方法 |
US20130173553A1 (en) * | 2011-12-29 | 2013-07-04 | Anand Apte | Distributed Scalable Deduplicated Data Backup System |
CN102662793A (zh) * | 2012-03-07 | 2012-09-12 | 江苏引跑网络科技有限公司 | 一种可保证数据一致性的分布式数据库热备份与恢复方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199976A (zh) * | 2014-09-24 | 2014-12-10 | 浪潮通用软件有限公司 | 一种融合原生事务和逻辑事务的方法 |
CN105893395A (zh) * | 2015-01-26 | 2016-08-24 | 阿里巴巴集团控股有限公司 | 分布式事务的消息回查方法及其系统 |
CN105893395B (zh) * | 2015-01-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 分布式事务的消息回查方法及其系统 |
CN104580525A (zh) * | 2015-02-03 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于事务模型的集群部署系统 |
CN105988861A (zh) * | 2015-02-04 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 事务消息的发送方法和装置 |
CN105471880A (zh) * | 2015-12-03 | 2016-04-06 | 中国南方电网有限责任公司信息中心 | 一种可容错的分布式安全事件数据传输协议的实现方法 |
CN106855822A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 用于分布式事务处理的方法及设备 |
CN107436799A (zh) * | 2016-05-26 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 分布式事务一致性实现方法及装置 |
CN107436799B (zh) * | 2016-05-26 | 2020-11-03 | 创新先进技术有限公司 | 分布式事务一致性实现方法及装置 |
CN106383737A (zh) * | 2016-09-09 | 2017-02-08 | 浪潮软件股份有限公司 | 一种分布式事务处理方法 |
CN108205464A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
CN108205464B (zh) * | 2016-12-20 | 2022-05-06 | 阿里云计算有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
CN108572959A (zh) * | 2017-03-07 | 2018-09-25 | 中国移动通信集团江西有限公司 | 一种与数据库交互数据的方法和装置 |
CN108572959B (zh) * | 2017-03-07 | 2021-03-05 | 中国移动通信集团江西有限公司 | 一种与数据库交互数据的方法和装置 |
WO2018228220A1 (zh) * | 2017-06-12 | 2018-12-20 | 中国银联股份有限公司 | 用于分布式数据库的事务保存点管理装置及方法 |
CN107545024A (zh) * | 2017-06-12 | 2018-01-05 | 中国银联股份有限公司 | 用于分布式数据库的事务保存点管理装置及方法 |
US11436250B2 (en) | 2017-06-12 | 2022-09-06 | China Unionpay Co., Ltd. | Transaction savepoint management apparatus and method for distributed database |
CN107818009A (zh) * | 2017-10-17 | 2018-03-20 | 北京人大金仓信息技术股份有限公司 | 一种基于分布式事务的代理处理的方法 |
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
CN113268471B (zh) * | 2021-06-24 | 2023-09-22 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294479A (zh) | 分布式事务处理方法与系统 | |
EP3117349B1 (en) | System and method for massively parallel processing database | |
EP2932370B1 (en) | System and method for performing a transaction in a massively parallel processing database | |
CN113396407A (zh) | 用于利用区块链技术扩充数据库应用的系统和方法 | |
US10747745B2 (en) | Transaction execution commitment without updating of data row transaction status | |
CN102299904B (zh) | 一种实现业务数据备份的系统及方法 | |
EP1402414B1 (en) | Consistent read in a distributed database environment | |
KR102072726B1 (ko) | 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들 | |
CN105393243A (zh) | 事务定序 | |
CN103544153B (zh) | 一种基于数据库的数据更新方法和系统 | |
CN107787490A (zh) | 分布式数据库网格中的直接连接功能 | |
CN102449628A (zh) | 用于持久性Web应用设计的架构模式 | |
CN101268439A (zh) | 数据库片段克隆和管理 | |
CN107577678A (zh) | 处理数据库事务的方法、客户端和服务器 | |
CN103092903A (zh) | 数据库日志并行化 | |
CN112947856B (zh) | 一种内存数据的管理方法、装置、计算机设备及存储介质 | |
CN103026355A (zh) | 数据库管理系统 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN106354732B (zh) | 一种支持并发协同的离线数据版本冲突解决方法 | |
CN102103642A (zh) | 基于oltp的数据删除方法、系统及图形数据库服务器 | |
CN102193991A (zh) | 基于oltp的数据修改方法、系统及图形数据库服务器 | |
CN101551822B (zh) | 一种数据库复制方法和装置 | |
CN110196759A (zh) | 分布式事务处理方法和装置、存储介质及电子装置 | |
CN1829974B (zh) | 借助于非失败节点的并行恢复 | |
CN102413166B (zh) | 分布式交易方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130911 |