CN114116144B - 一种轻量级全局事务管理器及其控制方法 - Google Patents
一种轻量级全局事务管理器及其控制方法 Download PDFInfo
- Publication number
- CN114116144B CN114116144B CN202210077561.6A CN202210077561A CN114116144B CN 114116144 B CN114116144 B CN 114116144B CN 202210077561 A CN202210077561 A CN 202210077561A CN 114116144 B CN114116144 B CN 114116144B
- Authority
- CN
- China
- Prior art keywords
- transaction
- submission
- computing
- computing node
- commit
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 claims abstract description 30
- 230000002085 persistent effect Effects 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 19
- 238000005096 rolling process Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000002360 preparation method Methods 0.000 claims description 2
- 230000002688 persistence Effects 0.000 abstract description 21
- 238000012423 maintenance Methods 0.000 abstract description 6
- 230000004044 response Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 abstract description 2
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- BROYWHABVCPAPN-UHFFFAOYSA-N 1,3-dichloro-4,4,5,5-tetramethylimidazolidin-2-one Chemical compound CC1(C)N(Cl)C(=O)N(Cl)C1(C)C BROYWHABVCPAPN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机技术领域,特别是涉及一种轻量级全局事务管理器及其控制方法,所述轻量级全局事务管理器包括计算层以及存储层;所述计算层与客户端连接,包括若干个计算节点,同一时刻仅有一个计算节点为主计算节点,所述计算层用于事务状态的展现与分发;所述存储层与所述计算层连接,用于事务的最终提交状态的判定与持久化。本发明提供的轻量级全局事务管理器将事务提交状态持久化与可见性判定分离,主计算节点提供事务的版本申请和事务快照管理的功能,不负责事务状态的持久化,无需考虑事务状态进行日志记录和主备计算节点间的同步,降低了响应延迟;计算层采用轻量动态库的方式与分布式数据库计算层融合,降低了部署成本和运维复杂度。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种轻量级全局事务管理器及其控制方法。
背景技术
数据库全局事务管理器是数据库的核心模块,通常涉及到数据库事务版本的分配和活跃事务快照的维护,是数据库的核心模块。不同于传统集中式数据库产品,分布式数据库集群全局事务管理与数据存储通常是相互分离,所以就涉及到了分布式事务信息如何实现持久化的问题。
目前市面上常见的分布式集群事务管理器模型有如下特征:1、全局事务管理器作为分布式事务是否提交完成的唯一判定标识;2、全局事务管理器需要持久化分布式事务的状态信息,当集群failover,特别是全局事务管理器进行故障切换时,新全局事务管理器需要继续故障前的状态进行事务管理。
目前市面上常见的分布式集群事务管理器模型主要有如下弊端:
1、全局事务管理器(GTM)进行事务状态持久化需要针对每次事务管理操作进行,例如事务版本的分配和事务活跃快照的新增与删除等。持久化过程如图1所示,在事务开启的时候需要进行“分配事务编号”和“新增活跃事务列表事务”操作,而事务提交的时候需要进行“删除活跃事务列表事务”操作,上述的操作都是在GTM主节点进行操作,持久化过程包括:GTM主的日志落盘和GTM备的日志落盘,即2次落盘持久化操作,由于持久化涉及到IO和文件系统sync操作,是代价较大的操作,会显著增加事务响应延迟。
2、全局事务管理器(GTM)进行事务状态持久化需要在主备GTM节点间进行强同步,即至少1个备GTM节点需要完成日志同步和执行落盘。如图1所示,GTM主节点持久化生产的落盘日志需要同步到GTM备节点,这样会至少增加一次GTM主到GTM备的网络交互,会显著增加响应延迟。
3、全局事务管理器(GTM)通常需要独立进行部署,需要额外消耗服务器资源,增加部署成本和运维复杂度。
对于上述问题,现有技术没有提供有效的解决方案。
发明内容
基于此,有必要针对上述的问题,提供一种轻量级全局事务管理器及其控制方法,可解决背景技术中提出的至少一个问题。
本发明实施例是这样实现的,一种轻量级全局事务管理器,所述轻量级全局事务管理器包括计算层以及存储层;
所述计算层与客户端连接,包括若干个计算节点,同一时刻仅有一个计算节点为主计算节点,所述计算层用于事务状态的展现与分发;
所述存储层与所述计算层连接,用于事务的最终提交状态的判定与持久化。
在其中一个实施例中,本发明提供了一种轻量级全局事务管理器的控制方法,应用于本发明实施例所述的轻量级全局事务管理器,所述轻量级全局事务管理器的控制方法包括以下步骤:
接收到事务处理请求,申请并分配事务ID以及活跃事务列表;
返回事务ID以及活跃事务列表,执行事务;
执行事务的一阶段提交以及事务的第一个操作请求shard提交,其中,事务的第一个操作请求shard记作first_conn shard;
计算层完成事务状态变更并应答客户端;
执行事务的二阶段提交。
本发明提供的轻量级全局事务管理器将事务提交状态持久化与可见性判定分离,主计算节点提供事务的版本申请和事务快照管理的功能,不负责事务状态的持久化,无需考虑事务状态进行日志记录和主备计算节点间的同步,降低了响应延迟;计算层采用轻量动态库的方式与分布式数据库计算层融合,降低了部署成本和运维复杂度。
附图说明
图1为现有技术提供的全局事务管理器实现持久化过程的示意图;
图2为本发明实施例提供的轻量级全局事务管理器的结构框图;
图3为本发明实施例提供的轻量级全局事务管理器的控制方法的流程图;
图4为现有技术提供的全局事务管理器事务处理的流程图;
图5为本发明实施例提供的轻量级全局事务管理器事务处理的流程图;
图6为一个实施例中计算机设备的内部结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
如图2所示,本发明实施例提供了一种轻量级全局事务管理器,所述轻量级全局事务管理器包括计算层以及存储层;
所述计算层与客户端连接,包括若干个计算节点,同一时刻仅有一个计算节点为主计算节点,所述计算层用于事务状态的展现与分发;
所述存储层与所述计算层连接,用于事务的最终提交状态的判定与持久化。
在本实施例中,作为一种可选的具体实现方式,所述存储层包括若干个存储分区,每个存储分区包括一个主存储区以及若干个备存储区。
在本实施例中,轻量级全局事务管理器(DTM)事务体系整体架构如图2所示,包含计算层计算节点和存储层数据节点,DTM为计算节点的一个模块,同一时间只有一个计算节点作为DTM主节点;其他计算节点从DTM主节点申请事务ID和活跃事务列表,用于事务SQL的执行。
在本实施例中,DTM节点负责对事务最终状态的展现与分发,而事务的最终提交状态的判定由“基于first_conn的两阶段提交协议”在数据节点存储层执行并持久化。DTM主节点的故障切换不影响事务最终状态的一致性。
本实施例提供的方案将事务的执行完成判定与事务的可见判定相分离,执行完成与否与是否可见不直接相关;通过活跃事务列表和事务版本的强时间属性控制故障切换前后事务的可见性,对DTM故障前后事务形成物理分割;基于数据节点的原生持久化实现事务信息的持久化,避免DTM进行事务信息持久化。通过这种设置,本发明提供的轻量级全局事务管理器无需考虑事务状态进行日志记录和主备计算节点间的同步,降低了响应延迟;计算层能够采用轻量动态库的方式与分布式数据库计算层融合,降低了部署成本和运维复杂度。
如图3所示,在一个实施例中,提出了一种轻量级全局事务管理器的控制方法,本实施例主要以该方法应用于上述图2中的轻量级全局事务管理器。具体可以包括以下步骤:
步骤S302,接收到事务处理请求,申请并分配事务ID以及活跃事务列表。
在本实施例中,该过程主要在计算层内执行。
步骤S304,返回事务ID以及活跃事务列表,执行事务。
在本实施例中,该过程主要由DTM主与DTN备共同完成。
步骤S306,执行事务的一阶段提交以及事务的第一个操作请求shard提交,其中,事务的第一个操作请求shard记作first_conn shard。
在本实施例中,First_conn是事务第一个操作请求shard,由它负责记录事务的最终提交状态;事务访问的其他shard则在事务信息中存储指向first_conn shard的事务关联信息,事务的最终提交状态由first_conn shard的提交状态决定。
步骤S308,计算层完成事务状态变更并应答客户端。
在本实施例中,此过程的实现可以参考现有技术。
步骤S310,执行事务的二阶段提交。
在本实施例中,图4示出了传统的全局事务管理器实现流程,从事务开始到应答客户端,大约需要12个步骤。图5示出了本发明提供的方案,从事务开始到应答客户端,大约需要8个步骤,主要得益于本发明提供的方案无需轻量级全局事务管理器(DTM)进行持久化和主备同步;事务的原子性由“基于first_conn的两阶段提交协议”保证,同时基于逻辑混合时钟的DTID分配机制和DTM事务可见性判定算法,实现了事务的执行完成判定与事务的可见判定相分离,DTM不存储事务状态也不影响分布式事务的原子性实现和可见性判定的正确性。
在一个实施例中,计算层主计算节点在事务执行第一条实际数据操作SQL时进行事务ID的分配;
其中,事务ID采用混合逻辑时钟的方式生成以保持唯一性和单调递增,包含物理时钟部分和逻辑时钟部分。
在本实施例中,DTM主节点在事务执行第一条实际数据操作SQL时进行事务ID(DTID)的分配。为了确保ID的唯一性和单调递增,事务ID采用混合逻辑时钟的方式生成,包含了物理时钟部分和逻辑时钟部分。在同一个物理时间戳下,不同的事务ID通过递增的逻辑序号进行排序区分。DTM主节点和DTM备节点服务器间有时间同步要求,一般时间差不能超过秒级,后续DTM 故障切换的RTO将与DTM主备间所能容忍的机器时间差直接相关,这个所能容忍的机器时间差定义为diff_max_T。
在一个实施例中,所述执行事务的一阶段提交以及事务的第一个操作请求shard提交,之后包括以下步骤:
存储层将事务相关作息持久化;
将未完成提交的事务信息同步到所有shard对应的荣誉副本中。
在本实施例中,事务的原子性通过“基于first_conn的两阶段提交协议”实现。具体地,First_conn是事务第一个操作请求shard,由它负责记录事务的最终提交状态;事务访问的其他shard则在事务信息中存储指向first_conn shard的事务关联信息,事务的最终提交状态由first_conn shard的提交状态决定;每个shard的提交过程都是两阶段提交。所有shard都完成prepare一阶段提交后,事务相关信息进行数据库引擎存储层持久化,未完成提交的事务信息将同步到所有shard对应的荣誉副本中;而后进行first_conn shard的第二阶段提交。
在一个实施例中,所述执行事务的二阶段提交,包括以下步骤:
进行first_conn shard的第二阶段提交,提交完成即表示事务提交成功,并将事务成功信息更新给主计算节点;
执行其它事务shard的第二阶段异步提交。
在本实施例中,first_conn shard的第二阶段提交完成即表示事务提交成功,并将事务成功信息更新给DTM主节点; 最后其他事务shard进行异步的第二阶段提交。
在一个实施例中,所述轻量级全局事务管理器的控制方法还包括以下步骤:
判断所有shard的prepare一阶段提交是否存在故障,若是,则事务全局回滚;
若所有shard的prepare一阶段提交完成,则判断first_conn shard的第二阶段提交是否提交成功,若否,则事务全局回滚;若是,则判断异步提交过程中是否存在shard失败,若有,则基于对应shard的冗余副本继续提交;
first_conn shard的第二阶段提交完成后,判断计算节点是否提交失败,若是,则进行周期性重试,直到主计算节点提交成功或发现主计算节点故障切换。
在本实施例中,上述过程描述了提交过程中的异常处理方法,具体地:
(1)、如果在所有shard的prepare一阶段提交期间出现任何故障,事务全局回滚,保持事务原子性。
(2)、如果所有shard的prepare一阶段提交完成,但first_conn shard的第二阶段提交失败,那么事务全局回滚,保持事务原子性。
(3)、如果所有shard的prepare一阶段提交完成,但first_conn shard的第二阶段提交完成,但异步提交过程中有shard失败,那么基于对应shard的冗余副本继续提交,确保事务全局提交完成。
(4)、如果first_conn shard的第二阶段提交完成后,DTM提交失败,将进行周期性重试,直到确定DTM主节点提交成功或发现DTM主failover,无论那种情况该事务最终状态为提交成功。
基于数据节点的原生持久化实现事务信息的持久化,避免了DTM进行事务信息持久化,依然保障了事务的原子性。
在一个实施例中,所述轻量级全局事务管理器的控制方法还包括以下步骤:
判断事务ID是否小于当前活跃事务列表中的最小ID,若是,事务可见;
判断事务ID是否大于当前活跃事务列表中的最大ID,若是,则事务不可见;
判断事务ID是否被当前活跃事务列表包含,若是,则事务不可见。
在本实施例中,事务的全局可见性基于DTM实现,DTM中维护了当前集群的活跃事务列表active_view,其中包含了目前所有还处于活跃状态的事务ID。
可见性的判定逻辑具体为:
1、事务ID小于目前active_view中最小ID的为可见事务
2、事务ID大于目前actvie_view中最大ID的为不可见事务
3、事务ID被avtive_view包含的也为不可见事务(除自己的事务ID外)
由于事务ID是采用混合逻辑时钟方式,是单调递增的,所以新事务的ID会大于旧事务。
在一个实施例中,所述轻量级全局事务管理器的控制方法还包括以下步骤:
启动主计算节点故障监测线程;
若监测到主计算节点故障,则执行计算节点的主从切换。
在本实施例中,DTM不进行事务信息的持久化,是纯内存态运行的模块,进行事务ID的分配和当前活跃事务ID的维护。当DTM发生failover时,新DTM节点将接管事务ID的分配,由于事务ID是逻辑混合时钟,包含了强物理时间信息,而DTM的切换是秒级的,时间至少需要大于容忍的机器时间差diff_max_T,所以切换后的新DTM的起始事务ID分配时间可以很容易的与故障DTM已分配的事务ID进行区分,实现DTM故障前后事务的物理分割。
在一个实施例中,所述计算节点主从切换后,对于原主计算节点中的活跃事务:
若处于未进入提交状态,则相关事务协调器感知主从切换并进入事务的回滚流程;
若进入提交状态,但还未完成prepare阶段,则相关事务协调器感知主从切换并进入事务的回滚流程;
若进入提交状态并且已经完成prepare阶段,则在新主计算节点启用前,检查后端数据节点所有处于prepare完成阶段的事务,若对应的事务first_conn shard未进行二阶段提交,则回滚事务,否则使对应的事务协调器继续完成提交。
在本实施例中,对于原DTM节点中处于活跃状态的事务ID,新DTM将不再维护到活跃事务列表中。对于原DTM的活跃事务,如果:
1、处于未进入提交状态,那么在DTM failover过程中,相关事务协调器会感知DTM的failover并进入事务的回滚流程。
2、进入提交状态,但还未完成prepare阶段的,那么在DTM failover过程中,相关事务协调器会感知DTM的failover并进入事务的回滚流程。
3、进入提交状态,并且已经完成prepare阶段的,如果DTM failover,那么在新DTM正式启用前,会检查后端数据节点所有处于prepare完成阶段的事务;如果对应的事务first_conn shard未进行二阶段提交,那么回滚事务;如果对应的事务first_conn shard已经完成二阶段提交,那么让对应的事务协调器继续完成提交。
4、所以原DTM failover并且新DTM接管后,不会再有还处于活跃状态的原DTM事务。
当DTM主正常的时候,事务提交完成后,通过DTM主将事务可见的信息公开给其他客户端会话;当DTM主异常的时候,在特定提交阶段中的事务可以继续完成提交,新DTM主会检查和处理这类特定提交阶段中的事务,确保其进行提交,并因为逻辑混合时钟机制分配的新事务ID必然大于上述特定提交阶段的事务ID,所以新DTM主的avtive_view中的最小事务ID也大于上述特定提交阶段的事务ID,按照事务可见性判定的算法,这些述特定提交阶段的事务就对其他客户的会话可见了。
通过上述算法,实现了将事务的执行完成判定与事务的可见判定相分离,DTM不存储事务状态也不影响分布式事务的原子性实现和可见性判定的正确性。
图6示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图2中的计算节点或者存储节点。如图6所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现本发明实施例提供的轻量级全局事务管理器的控制方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行本发明实施例提供的轻量级全局事务管理器的控制方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收到事务处理请求,申请并分配事务ID以及活跃事务列表;
返回事务ID以及活跃事务列表,执行事务;
执行事务的一阶段提交以及事务的第一个操作请求shard提交,其中,事务的第一个操作请求shard记作first_conn shard;
计算层完成事务状态变更并应答客户端;
执行事务的二阶段提交。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
接收到事务处理请求,申请并分配事务ID以及活跃事务列表;
返回事务ID以及活跃事务列表,执行事务;
执行事务的一阶段提交以及事务的第一个操作请求shard提交,其中,事务的第一个操作请求shard记作first_conn shard;
计算层完成事务状态变更并应答客户端;
执行事务的二阶段提交。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种轻量级全局事务管理器,其特征在于,所述轻量级全局事务管理器包括计算层以及存储层;
所述计算层与客户端连接,包括若干个计算节点,同一时刻仅有一个计算节点为主计算节点,所述计算层用于事务状态的展现与分发;
所述存储层与所述计算层连接,用于事务的最终提交状态的判定与持久化;
所述轻量级全局事务管理器用于执行以下步骤:
接收到事务处理请求,申请并分配事务ID以及活跃事务列表;
返回事务ID以及活跃事务列表,执行事务;
执行事务的一阶段提交以及事务的第一个操作请求shard提交,其中,事务的第一个操作请求shard记作first_conn shard;
计算层完成事务状态变更并应答客户端;
执行事务的二阶段提交;
所述执行事务的一阶段提交以及事务的第一个操作请求shard提交,之后包括以下步骤:
存储层将事务相关作息持久化;
将未完成提交的事务信息同步到所有shard对应的荣誉副本中;
所述执行事务的二阶段提交,包括以下步骤:
进行first_conn shard的第二阶段提交,提交完成即表示事务提交成功,并将事务成功信息更新给主计算节点;
执行其它事务shard的第二阶段异步提交。
2.根据权利要求1所述的轻量级全局事务管理器,其特征在于,所述存储层包括若干个存储分区,每个存储分区包括一个主存储区以及若干个备存储区。
3.一种轻量级全局事务管理器的控制方法,应用于如权利要求1或2所述的轻量级全局事务管理器,其特征在于,所述轻量级全局事务管理器的控制方法包括以下步骤:
接收到事务处理请求,申请并分配事务ID以及活跃事务列表;
返回事务ID以及活跃事务列表,执行事务;
执行事务的一阶段提交以及事务的第一个操作请求shard提交,其中,事务的第一个操作请求shard记作first_conn shard;
计算层完成事务状态变更并应答客户端;
执行事务的二阶段提交;
所述执行事务的一阶段提交以及事务的第一个操作请求shard提交,之后包括以下步骤:
存储层将事务相关作息持久化;
将未完成提交的事务信息同步到所有shard对应的荣誉副本中;
所述执行事务的二阶段提交,包括以下步骤:
进行first_conn shard的第二阶段提交,提交完成即表示事务提交成功,并将事务成功信息更新给主计算节点;
执行其它事务shard的第二阶段异步提交。
4.根据权利要求3所述的轻量级全局事务管理器的控制方法,其特征在于,计算层主计算节点在事务执行第一条实际数据操作SQL时进行事务ID的分配;
其中,事务ID采用混合逻辑时钟的方式生成以保持唯一性和单调递增,包含物理时钟部分和逻辑时钟部分。
5.根据权利要求3所述的轻量级全局事务管理器的控制方法,其特征在于,所述轻量级全局事务管理器的控制方法还包括以下步骤:
判断所有shard的prepare一阶段提交是否存在故障,若是,则事务全局回滚;
若所有shard的prepare一阶段提交完成,则判断first_conn shard的第二阶段提交是否提交成功,若否,则事务全局回滚;若是,则判断异步提交过程中是否存在shard失败,若有,则基于对应shard的冗余副本继续提交;
first_conn shard的第二阶段提交完成后,判断计算节点是否提交失败,若是,则进行周期性重试,直到主计算节点提交成功或发现主计算节点故障切换。
6.根据权利要求3所述的轻量级全局事务管理器的控制方法,其特征在于,所述轻量级全局事务管理器的控制方法还包括以下步骤:
判断事务ID是否小于当前活跃事务列表中的最小ID,若是,事务可见;
判断事务ID是否大于当前活跃事务列表中的最大ID,若是,则事务不可见;
判断事务ID是否被当前活跃事务列表包含,若是,则事务不可见。
7.根据权利要求3所述的轻量级全局事务管理器的控制方法,其特征在于,所述轻量级全局事务管理器的控制方法还包括以下步骤:
启动主计算节点故障监测线程;
若监测到主计算节点故障,则执行计算节点的主从切换。
8.根据权利要求7所述的轻量级全局事务管理器的控制方法,其特征在于,所述计算节点主从切换后,对于原主计算节点中的活跃事务:
若处于未进入提交状态,则相关事务协调器感知主从切换并进入事务的回滚流程;
若进入提交状态,但还未完成prepare阶段,则相关事务协调器感知主从切换并进入事务的回滚流程;
若进入提交状态并且已经完成prepare阶段,则在新主计算节点启用前,检查后端数据节点所有处于prepare完成阶段的事务,若对应的事务first_conn shard未进行二阶段提交,则回滚事务,否则使对应的事务协调器继续完成提交。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210077561.6A CN114116144B (zh) | 2022-01-24 | 2022-01-24 | 一种轻量级全局事务管理器及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210077561.6A CN114116144B (zh) | 2022-01-24 | 2022-01-24 | 一种轻量级全局事务管理器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114116144A CN114116144A (zh) | 2022-03-01 |
CN114116144B true CN114116144B (zh) | 2022-07-26 |
Family
ID=80361050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210077561.6A Active CN114116144B (zh) | 2022-01-24 | 2022-01-24 | 一种轻量级全局事务管理器及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116144B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896258B (zh) * | 2022-04-26 | 2022-12-16 | 北京科杰科技有限公司 | 事务数据的同步方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532069A (zh) * | 2019-08-22 | 2019-12-03 | 北京宝兰德软件股份有限公司 | 一种分布式事务提交方法及装置 |
CN112182103A (zh) * | 2020-09-24 | 2021-01-05 | 广州巨杉软件开发有限公司 | 一种分布式数据库及其实现跨节点事务强一致性的方法 |
CN112231071A (zh) * | 2020-05-20 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302368B (zh) * | 2015-06-11 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 事务处理方法及装置 |
-
2022
- 2022-01-24 CN CN202210077561.6A patent/CN114116144B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532069A (zh) * | 2019-08-22 | 2019-12-03 | 北京宝兰德软件股份有限公司 | 一种分布式事务提交方法及装置 |
CN112231071A (zh) * | 2020-05-20 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算机设备及存储介质 |
CN112182103A (zh) * | 2020-09-24 | 2021-01-05 | 广州巨杉软件开发有限公司 | 一种分布式数据库及其实现跨节点事务强一致性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114116144A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729129B (zh) | 存储集群系统的配置修改方法、存储集群及计算机系统 | |
US7779295B1 (en) | Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints | |
US6061769A (en) | Data set backup in a shared environment | |
US5964838A (en) | Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster | |
WO2018103318A1 (zh) | 分布式事务处理方法和系统 | |
EP0988596B1 (en) | Method and system for recovery in a partitioned shared nothing database system using virtual shared disks | |
US5802267A (en) | Method for checkpointing in computer system under distributed processing environment | |
CN103077222B (zh) | 机群文件系统分布式元数据一致性保证方法及系统 | |
EP2434729A2 (en) | Method for providing access to data items from a distributed storage system | |
JPS633341B2 (zh) | ||
WO2018068661A1 (zh) | 一种基于Paxos协议的分布式一致性系统的在线扩容、在线缩容的方法和装置 | |
JPS62105247A (ja) | デ−タ・ベ−ス・システムの管理方法 | |
CN110413687B (zh) | 基于节点互证校验的分布式事务故障处理方法及相关设备 | |
CN114116144B (zh) | 一种轻量级全局事务管理器及其控制方法 | |
US11522966B2 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
CN115202925A (zh) | 基于rdma的支持细粒度容错的共识方法及系统 | |
CN113297134A (zh) | 数据处理系统及数据处理方法、装置、电子设备 | |
EP0834128B1 (en) | Data set backup in a shared environment | |
Bowen et al. | Restart services for highly available systems | |
CN116860398A (zh) | 基于时序数据库的事务处理方法、装置、设备及存储介质 | |
CN115408037A (zh) | 软件的升级投产方法及装置 | |
CN118093251A (zh) | 一种故障处理方法、装置及电子设备和存储介质 | |
CN116382971A (zh) | 一种基于ignite的主备数据同步方法 | |
CN114840365A (zh) | 异常状态的双活卷扩容方法、系统、终端及存储介质 | |
CN117730314A (zh) | 计算设备及在该计算设备中使用的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |