CN112069258A - 事务进度的管理方法、装置及分布式数据库 - Google Patents
事务进度的管理方法、装置及分布式数据库 Download PDFInfo
- Publication number
- CN112069258A CN112069258A CN202010938354.6A CN202010938354A CN112069258A CN 112069258 A CN112069258 A CN 112069258A CN 202010938354 A CN202010938354 A CN 202010938354A CN 112069258 A CN112069258 A CN 112069258A
- Authority
- CN
- China
- Prior art keywords
- snapshot data
- transaction
- target
- progress
- incremental
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000002372 labelling Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 14
- 230000003993 interaction Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 239000000243 solution Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种事务进度的管理方法、装置及分布式数据库,涉及云计算领域。该方法包括:如果接收到事务执行命令,向分布式数据库内的事务管理节点发送事务执行命令对应的当前事务的基量快照数据,以使事务管理节点基于基量快照数据反馈当前事务的增量快照数据;如果接收到事务管理节点反馈的当前事务的增量快照数据,从分布式数据库内的目标存储节点获取当前事务的执行进度;基于执行进度从增量快照数据中确定目标快照数据;将目标快照数据发送至目标存储节点,以使目标存储节点基于目标快照数据更新当前事务的执行进度。本申请可以有效缓解事务管理节点和存储节点带宽压力较大的问题。
Description
技术领域
本申请涉及事务管理技术领域,尤其是涉及一种事务进度的管理方法、装置及分布式数据库。
背景技术
外部读一致性作为分布式数据库的核心话题,相关技术提出利用全局snapshot方式实现分布式数据库的外部读一致性,其中,分布式数据库内设置有GTM(GlobalTransaction Manager,全局事务管理节点)、CN(Coordinater,协调节点)和DN(Datanode,存储节点)。目前,CN在处理用户的SQL(Structured Query Language,结构化查询语言)指令时,CN会从GTM内拉取事务snapshot(快照),并将事务snapshot发送至DN进行存储,由于snapshot的大小与活跃事务的数量相关,即活跃事务越多事务snapshot越大,因此在高并发场景下,上述过程容易致使分布式数据库中GTM和DN的带宽压力过大。
发明内容
有鉴于此,本申请的目的在于提供一种事务进度的管理方法、装置及分布式数据库,可以有效缓解事务管理节点和存储节点带宽压力较大的问题。
第一方面,本申请实施例提供了一种事务进度的管理方法,所述方法应用于分布式数据库内的协调节点,所述方法包括:如果接收到事务执行命令,向所述分布式数据库内的事务管理节点发送所述事务执行命令对应的当前事务的基量快照数据,以使所述事务管理节点基于所述基量快照数据反馈所述当前事务的增量快照数据;如果接收到所述事务管理节点反馈的所述当前事务的增量快照数据,从所述分布式数据库内的目标存储节点获取所述当前事务的执行进度;基于所述执行进度从所述增量快照数据中确定目标快照数据;将所述目标快照数据发送至所述目标存储节点,以使所述目标存储节点基于所述目标快照数据更新所述当前事务的执行进度。
在一种实施方式中,所述基于所述执行进度从所述增量快照数据中确定目标快照数据的步骤,包括:基于所述增量快照数据建立快照视图;其中,所述快照视图包括按照预设顺序排列的所述增量快照数据;基于所述执行进度对所述快照视图中的增量快照数据进行标注,得到进度标注结果;根据所述进度标注结果从所述增量快照数据中确定目标快照数据。
在一种实施方式中,所述执行进度包括所述协调节点与所述目标存储节点在上一次通信时涉及的增量快照数据;所述基于所述执行进度对所述快照视图中的增量快照数据进行标注,得到进度标注结果的步骤,包括:对所述快照视图中与所述执行进度所包含的增量快照数据相匹配的增量快照数据进行标注,得到进度标注结果。
在一种实施方式中,所述根据所述进度标注结果从所述增量快照数据中确定目标快照数据的步骤,包括:基于所述快照视图内增量快照数据的排列顺序,将所述快照视图中位于所述进度标注结果所标注的增量快照数据之后的增量快照数据均确定为目标快照数据。
在一种实施方式中,所述方法还包括:保存所述目标快照数据;按照预设周期向所述目标存储节点发送所述目标快照数据,以使所述目标存储节点基于所述目标快照数据反馈所述目标存储节点内的执行进度;如果接收到所述目标存储节点反馈的执行进度,基于所述执行进度对所述目标快照数据进行更新。
在一种实施方式中,所述分布式数据库内包括的存储节点为多个;各个所述存储节点内存储的所述当前事务的执行进度相同或不同;所述方法还包括:根据各个所述存储节点内存储的所述当前事务的执行进度,判断所述当前事务是否执行完毕;如果是,基于下一事务的基量快照数据从所述事务管理节点获取所述下一事务的增量快照数据;从所述目标存储节点获取所述下一事务的执行进度;基于所述下一事务的执行进度从所述下一事务的增量快照数据中确定所述下一事务的目标快照数据;将所述下一事务的目标快照数据发送至所述目标存储节点,以使所述目标存储节点基于所述下一事务的目标快照数据更新所述下一事务的执行进度。
第二方面,本申请实施例还提供一种事务进度的管理装置,所述装置应用于分布式数据库内的协调节点,所述装置包括:基量快照数据发送模块,用于如果接收到事务执行命令,向所述分布式数据库内的事务管理节点发送所述事务执行命令对应的当前事务的基量快照数据,以使所述事务管理节点基于所述基量快照数据反馈所述当前事务的增量快照数据;执行进度获取模块,用于如果接收到所述事务管理节点反馈的所述当前事务的增量快照数据,从所述分布式数据库内的目标存储节点获取所述当前事务的执行进度;目标快照数据确定模块,用于基于所述执行进度从所述增量快照数据中确定目标快照数据;目标快照数据发送模块,用于将所述目标快照数据发送至所述目标存储节点,以使所述目标存储节点基于所述目标快照数据更新所述当前事务的执行进度。
在一种实施方式中,所述目标快照数据确定模块还用于:基于所述增量快照数据建立快照视图;其中,所述快照视图包括按照预设顺序排列的所述增量快照数据;基于所述执行进度对所述快照视图中的增量快照数据进行标注,得到进度标注结果;根据所述进度标注结果从所述增量快照数据中确定目标快照数据。
第三方面,本申请实施例还提供一种分布式数据库,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面提供的任一项所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面提供的任一项所述的方法的步骤。
本申请实施例提供的一种事务进度的管理方法、装置及分布式数据库,应用于分布式数据库内的协调节点,如果协调节点接收到事务执行命令,将向分布式数据库内的事务管理节点发送事务执行命令对应的当前事务的基量快照数据,以使事务管理节点基于基量快照数据反馈当前事务的增量快照数据,并在接收到事务管理节点反馈的当前事务的增量快照数据时,从分布式数据库内的目标存储节点获取当前事务的执行进度,然后基于执行进度从增量快照数据中确定目标快照数据,将目标快照数据发送至目标存储节点,以使目标存储节点基于目标快照数据更新当前事务的执行进度。上述方法在接受到事务执行命令时,协调节点将基于当前事务的基量快照数据从事务管理节点中获取该当前事务的增量快照数据,并结合目标存储节点内当前事务的执行进度,从增量快照数据中确定目标快照数据,然后将目标快照数据发送至目标存储节点进行保存,本申请实施例中协调节点在与事务管理节点进行数据交互时仅涉及当前事务的增量快照数据,从而可以有效缓解事务管理节点的带宽压力,而且本申请实施例基于从增量快照数据中确定的目标快照数据实现协调节点与存储节点之间的数据交互,还可以显著缓解存储节点的带宽压力。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种事务进度的管理方法的流程示意图;
图2为本申请实施例提供的另一种事务进度的管理方法的流程示意图;
图3为本申请实施例提供的一种CN与GTM的交互示意图;
图4为本申请实施例提供的一种快照视图的示意图;
图5为本申请实施例提供的一种CN与DN的交互示意图;
图6为本申请实施例提供的另一种CN与DN的交互示意图;
图7为本申请实施例提供的一种事务进度的管理装置的结构示意图;
图8为本申请实施例提供的一种分布式数据库的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
事务snapshot也可称之为活跃事务链表,该活跃事务链表内包含当前正在运行的事务,当运行新的事务时会将该事务添加至活跃事物链表内,当某项事务运行结束时会将该事务从活跃事物链表内删除。目前,CN在处理用户的SQL指令时,CN会从GTM内拉取事务snapshot,由于活跃事物链表的长度是与当前并发事务的个数呈正比,因此在高并发场景下,CN每处理一条SQL指令,便将从GTM中拉取较大的活跃事务链表到本地,从而导致GTM带宽压力过大;而且由于CN向DN发送SQL指令时,每个SQL指令均会携带事务snapshot,以通过DN对事务snapshot进行存储,而这一过程将导致DN带宽压力过大。为改善上述问题,本申请实施提供了一种事务进度的管理方法、装置及分布式数据库,可以有效缓解事务管理节点和存储节点带宽压力较大的问题。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种事务进度的管理方法进行详细介绍,该方法应用于分布式数据库内的协调节点,其中,分布式数据库包括事务管理节点GTM、协调节点CN和存储节点DN,事务管理节点负责全局事务读一致性,协调节点用于处理SQL指令,诸如对接收到的SQL指令进行解析或转发,存储节点用于存储事务相关的数据。基于此,参见图1所示的一种事务进度的管理方法的流程示意图,该方法主要包括以下步骤S102至步骤S108:
步骤S102,如果接收到事务执行命令,向分布式数据库内的事务管理节点发送事务执行命令对应的当前事务的基量快照数据,以使事务管理节点基于基量快照数据反馈当前事务的增量快照数据。其中,事务执行命令可以包括SQL命令,该事务执行命令可以携带有当前事务的标识,诸如事务ID(Identity document,身份证标识)等,从而基于事务ID确定当前事务的基量快照数据,将事务执行命令转发至事务管理节点,由于事务管理节点携带有当前事务的基量快照数据,因此事务管理节点可以基于该基量快照数据确定增量快照数据,并将增量快照数据反馈至协调节点。
步骤S104,如果接收到事务管理节点反馈的当前事务的增量快照数据,从分布式数据库内的目标存储节点获取当前事务的执行进度。其中,执行进度可以包括协调节点与目标存储节点在上一次通信时涉及的增量快照数据。在一种实施方式中,协调节点可以与目标存储节点定期进行数据交互,目标存储节点会向协调节点发送当前事务的执行进度,从而使协调节点获取到当前事务的执行进度。
步骤S106,基于执行进度从增量快照数据中确定目标快照数据。在一种实施方式中,可以基于执行进度从增量快照数据中确定上一次协调节点与目标存储节点进行数据交互时所涉及的增量快照数据,然后按照增量快照数据的排列顺序将执行进度所涉及的增量快照数据之后的增量快照数据,确定为目标快照数据,例如,从事务管理节点中获取到的增量快照数据包括delta_snapshot1、delta_snapshot2、delta_snapshot3、delta_snapshot4,假设执行进度中涉及增量快照数据delta_snapshot1,此时可将增量快照数据delta_snapshot2、delta_snapshot3、delta_snapshot4确定为目标快照数据。
步骤S108,将目标快照数据发送至目标存储节点,以使目标存储节点基于目标快照数据更新当前事务的执行进度。在一种实施方式中,可以使上述事务执行命令携带目标快照数据,从而将事务执行命令和目标快照数据一起发送至目标存储节点,目标存储节点接收到目标快照数据后,即可保存目标快照数据,以实现对当前事务的执行进度进行更新。
本申请实施例提供的上述事务进度的管理方法,在接受到事务执行命令时,协调节点将基于当前事务的基量快照数据从事务管理节点中获取该当前事务的增量快照数据,并结合目标存储节点内当前事务的执行进度,从增量快照数据中确定目标快照数据,然后将目标快照数据发送至目标存储节点进行保存,本申请实施例中协调节点在与事务管理节点进行数据交互时仅涉及当前事务的增量快照数据,从而可以有效缓解事务管理节点的带宽压力,而且本申请实施例基于从增量快照数据中确定的目标快照数据实现协调节点与存储节点之间的数据交互,还可以显著缓解存储节点的带宽压力。
为便于对上述步骤S106进行理解,本申请实施例提供了一种基于执行进度从增量快照数据中确定目标快照数据的具体实施方式,参见如下步骤1至步骤3:
步骤1,基于增量快照数据建立快照视图。其中,快照视图包括按照预设顺序排列的增量快照数据。在一种具体的实施方式中,可以结合基量快照数据和增量快照数据建立快照视图,可选的,可以按照预设顺序将基量快照数据和增量快照数据进行排序,即可得到快照视图,例如,快照视图包括:“基量快照数据Base_Snapshot、增量快照数据delta_snapshot1、增量快照数据delta_snapshot2、增量快照数据delta_snapshot3、增量快照数据delta_snapshot4”。
步骤2,基于执行进度对快照视图中的增量快照数据进行标注,得到进度标注结果。其中,进度表注结果可以理解为在快照视图中将协调节点与目标存储节点在上一次通信时涉及的增量快照数据标注出来。其中,执行进度包括协调节点与目标存储节点在上一次通信时涉及的增量快照数据。在一种实施方式中,可以对快照视图中与执行进度所包含的增量快照数据相匹配的增量快照数据进行标注,得到进度标注结果。可选的,当执行进度所包含的增量快照数据与快照视图中的增量快照数据的名称一致时,可以确定快照视图中该增量快照数据与执行进度所包含的增量快照数据匹配。例如,假设执行进度中所包含的增量快照数据的名称为delta_snapshot1,此时可确定快照视图中增量快照数据delta_snapshot1与执行进度中所包含的增量快照数据相匹配,并对该增量快照数据delta_snapshot1进行标注,得到进度标注结果。
步骤3,根据进度标注结果从增量快照数据中确定目标快照数据。在一种实施方式中,可以基于快照视图内增量快照数据的排列顺序,可以将位于进度标注结果所标注的增量快照数据之后的增量快照数据作为目标快照数据。在一种具体的实施方式中,将快照视图中进度标注结果所标注的增量快照数据后一位的增量快照数据直至快照视图中位于末端的增量快照数据,均确定为目标快照数据。例如,快照标注结果为对增量快照数据delta_snapshot1进行标注,且结合上述快照视图可知,增量快照数据delta_snapshot2、delta_snapshot3、delta_snapshot4位于增量快照数据delta_snapshot1之后,且delta_snapshot2为进度标注结果所标注的增量快照数据后一位的增量快照数据,delta_snapshot4为快照视图中位于末端的增量快照数据,因此将增量快照数据delta_snapshot2、delta_snapshot3、delta_snapshot4确定为目标快照数据。
考虑到目标存储节点可能未成功接收到目标快照数据,因此为了推进目标存储节点内当前事务的执行进度,本申请实施例提供的协调节点还可定期与目标存储节点进行数据交互,通过定期将当前事务的目标快照数据推送至目标存储节点,以使目标存储节点基于目标快照数据更新当前事务的执行进度。在一种实施方式中,可以按照如下步骤a至步骤c实现协调节点与目标存储之间的数据交互:
步骤a,保存目标快照数据。
步骤b,按照预设周期向目标存储节点发送目标快照数据,以使目标存储节点基于目标快照数据反馈目标存储节点内的执行进度。其中,预设周期可以设置为毫秒级,例如,协调节点每5ms向目标存储节点推送目标快照数据delta_snapshot2、delta_snapshot3、delta_snapshot4,目标存储节点将反馈该目标快照数据对应的当前事务的执行进度。另外,目标存储节点在接收到目标快照数据后,可对执行进度进行更新,例如,目标存储节点接收到上述目标快照数据后,执行进度所涉及的增量快照数据更新为delta_snapshot4,并将更新后的执行进度反馈至协调节点。
步骤c,如果接收到目标存储节点反馈的执行进度,基于执行进度对目标快照数据进行更新。假设接收到的执行进度所涉及的增量快照数据为delta_snapshot4,则可将快照视图中增量快照数据delta_snapshot4进行标注。如果协调节点再次接收到事务执行命令,且事务管理节点反馈的增量数据包括delta_snapshot1、delta_snapshot2、delta_snapshot3、delta_snapshot4、delta_snapshot5,此时即可根据上述执行进度,将增量快照数据delta_snapshot5确定为目标快照数据。
在实际应用中,分布式数据库内包括的存储节点为多个,各个存储节点内存储的当前事务的执行进度相同或不同。在当前事务处理完毕时协调节点可推进本地快照视图。例如,当前事务的执行进度推进至基础数据Base_Snapshot0+增量快照数据delta_snapshot1+增量快照数据delta_snapshot2+增量快照数据delta_snapshot3+增量快照数据delta_snapshot4+增量快照数据delta_snapshot5,确定当前事务执行完毕,此时可以建立下一事务的快照视图,例如“基量快照数据Base_Snapshot2、增量快照数据delta_snapshot3、增量快照数据delta_snapshot4、增量快照数据delta_snapshot5”。
另外,在当前事务处理完毕后,协调节点还可以对下一事务的执行进度进行管理,在一种具体的实施方式中,参见如下(一)至(五):(一)根据各个存储节点内存储的当前事务的执行进度,判断当前事务是否执行完毕,可选的,对于每个存储节点,可以基于该存储节点内存储的执行进度确定进度标注结果,当每个进度标注结果所标注的增量快照数据均为执行当前事务所需的最后一个增量快照数据时,即可确定当前事务执行完毕;(二)如果是,基于下一事务的基量快照数据从事务管理节点获取下一事务的增量快照数据;(三)从目标存储节点获取下一事务的执行进度;(四)基于下一事务的执行进度从下一事务的增量快照数据中确定下一事务的目标快照数据;(五)将下一事务的目标快照数据发送至目标存储节点,以使目标存储节点基于下一事务的目标快照数据更新下一事务的执行进度。对下一事务的执行进度进行管理的过程可参见前述实施例,本申请实施例在此不再赘述。
为便于对上述实施例提供的事务进度的管理方法进行理解,本申请实施例提供了一种事务进度的管理方法的应用实例,参见图2所示的另一种事务进度的管理方法的流程示意图,该方法主要包括以下步骤S202至步骤S202至步骤S210:
步骤S202,CN从GTM中获取活跃事务链表(也即,上述增量快照数据)。为便于理解,本申请实施例提供了一种CN与GTM的交互示意图,如图3所示,CN将携带有基量快照数据的SQL指令发送至GTM,GTM将增量快照数据,例如,CN将携带有基量快照数据B0的SQL指令发送至GTM,GTM将增量快照数据“S1+S2+S3+S4”。在一种可选的实施方式中,GTM为对每个CN而言,GTM反馈的增量快照数据为基量快照数据到目标位置的增量快照数据,其中,GTM对反馈的增量快照数据进行标号,即为本次返回和上次返回的diff进行版本号标识,例如,比如本次CN发送的SQL指令携带的基量快照数据为B0,则GTM可以基于增量快照数据反馈S1,若下次CN发送的SQL指令携带的基量快照数据仍为B0,且GTM中增量快照数据已经增加至S2,此时GTM将反馈增量快照数据S1+S2,若之后CN发送的SQL指令携带的基量快照数据为B1,则GTM反馈的增量快照数据将为S2+S3。
步骤S204,CN基于基量快照数据和活跃事务链表构建本地的快照视图。为便于理解,本申请实施例还提供一种如图4所示的一种快照视图的示意图,其中,快照视图包括按照编号顺序排列的“基量快照数据B0、增量快照数据S1、增量快照数据S2、增量快照数据S3、增量快照数据S4”。
步骤S206,CN利用快照视图,结合DN内存储的当前事务的执行进度,确定目标快照数据。请继续参照图4,图4中利用执行进度“DN-snapshot-ver”对增量快照数据S1进行标注,并将增量快照数据S2、增量快照数据S3、增量快照数据S4确定为目标快照数据Delta_snapshot,另外还可利用“SQL-snapshot-ver”对增量快照数据S4进行标注,用以表征目标快照数据中位于末端的增量快照数据。
步骤S208,CN将携带有目标快照数据的SQL指令发送至DN。参见图5所示的一种CN与DN的交互示意图,CN将携带有上述目标快照数据“增量快照数据S2、增量快照数据S3、增量快照数据S4”的SQL指令发送至目标存储节点。
步骤S210,CN定期与DN进行交互。参见图6所示的另一种CN与DN的交互示意图,CN定期向DN发送上述目标快照数据,DN在接收到目标快照数据后会向CN反馈执行进度。
综上所述,本申请实施例提供的上述事务进度的管理方法,在高并发场景下,通过传输活跃事务链表的增量快照数据,可以有效改善事务处理节点和存储节点的带宽资源占用情况,假设SQL指令携带快照数据包括3000至5000个活跃事务,分别利用现有技术对各个事务的进度进行管理和利用本申请实施例提供的方法对各个事务的进度进行管理,采用本申请实施例可以将管理事务进度所需的带宽降低至现有技术所需带宽的二十分之一。
对于前述实施例提供的上述事务进度的管理方法。本申请实施例提供了一种事务进度的管理装置,该装置应用于分布式数据库内的协调节点,参见图7所示的一种事务进度的管理装置的结构示意图,该装置主要包括以下部分:
基量快照数据发送模块702,用于如果接收到事务执行命令,向分布式数据库内的事务管理节点发送事务执行命令对应的当前事务的基量快照数据,以使事务管理节点基于基量快照数据反馈当前事务的增量快照数据。
执行进度获取模块704,用于如果接收到事务管理节点反馈的当前事务的增量快照数据,从分布式数据库内的目标存储节点获取当前事务的执行进度。
目标快照数据确定模块706,用于基于执行进度从增量快照数据中确定目标快照数据。
目标快照数据发送模块708,用于将目标快照数据发送至目标存储节点,以使目标存储节点基于目标快照数据更新当前事务的执行进度。
本申请实施例提供的上述事务进度的管理装置,在接受到事务执行命令时,协调节点将基于当前事务的基量快照数据从事务管理节点中获取该当前事务的增量快照数据,并结合目标存储节点内当前事务的执行进度,从增量快照数据中确定目标快照数据,然后将目标快照数据发送至目标存储节点进行保存,本申请实施例中协调节点在与事务管理节点进行数据交互时仅涉及当前事务的增量快照数据,从而可以有效缓解事务管理节点的带宽压力,而且本申请实施例基于从增量快照数据中确定的目标快照数据实现协调节点与存储节点之间的数据交互,还可以显著缓解存储节点的带宽压力。
在一种实施方式中,上述目标快照数据确定模块706还用于:基于增量快照数据建立快照视图;其中,快照视图包括按照预设顺序排列的增量快照数据;基于执行进度对快照视图中的增量快照数据进行标注,得到进度标注结果;根据进度标注结果从增量快照数据中确定目标快照数据。
在一种实施方式中,执行进度包括协调节点与目标存储节点在上一次通信时涉及的增量快照数据;上述目标快照数据确定模块706还用于:对快照视图中与执行进度所包含的增量快照数据相匹配的增量快照数据进行标注,得到进度标注结果。
在一种实施方式中,上述目标快照数据确定模块706还用于:基于快照视图内增量快照数据的排列顺序,将快照视图中位于进度标注结果所标注的增量快照数据之后的增量快照数据均确定为目标快照数据。
在一种实施方式中,上述装置还包括定期发送模块,用于:保存目标快照数据;按照预设周期向目标存储节点发送目标快照数据,以使目标存储节点基于目标快照数据反馈目标存储节点内的执行进度;如果接收到目标存储节点反馈的执行进度,基于执行进度对目标快照数据进行更新。
在一种实施方式中,分布式数据库内包括的存储节点为多个;各个存储节点内存储的当前事务的执行进度相同或不同;上述装置还包括下一事务管理模块,用于:根据各个存储节点内存储的当前事务的执行进度,判断当前事务是否执行完毕;如果是,基于下一事务的基量快照数据从事务管理节点获取下一事务的增量快照数据;从目标存储节点获取下一事务的执行进度;基于下一事务的执行进度从下一事务的增量快照数据中确定下一事务的目标快照数据;将下一事务的目标快照数据发送至目标存储节点,以使目标存储节点基于下一事务的目标快照数据更新下一事务的执行进度。
本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本申请实施例提供了一种分布式数据库,具体的,该分布式数据库包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图8为本申请实施例提供的一种分布式数据库的结构示意图,该分布式数据库100包括:处理器80,存储器81,总线82和通信接口83,所述处理器80、通信接口83和存储器81通过总线82连接;处理器80用于执行存储器81中存储的可执行模块,例如计算机程序。
其中,存储器81可能包含高速随机存储存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线82可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器81用于存储程序,所述处理器80在接收到执行指令后,执行所述程序,前述本申请实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器80中,或者由处理器80实现。
处理器80可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器80中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器80可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器81,处理器80读取存储器81中的信息,结合其硬件完成上述方法的步骤。
本申请实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存储存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种事务进度的管理方法,其特征在于,所述方法应用于分布式数据库内的协调节点,所述方法包括:
如果接收到事务执行命令,向所述分布式数据库内的事务管理节点发送所述事务执行命令对应的当前事务的基量快照数据,以使所述事务管理节点基于所述基量快照数据反馈所述当前事务的增量快照数据;
如果接收到所述事务管理节点反馈的所述当前事务的增量快照数据,从所述分布式数据库内的目标存储节点获取所述当前事务的执行进度;
基于所述执行进度从所述增量快照数据中确定目标快照数据;
将所述目标快照数据发送至所述目标存储节点,以使所述目标存储节点基于所述目标快照数据更新所述当前事务的执行进度。
2.根据权利要求1所述的方法,其特征在于,所述基于所述执行进度从所述增量快照数据中确定目标快照数据的步骤,包括:
基于所述增量快照数据建立快照视图;其中,所述快照视图包括按照预设顺序排列的所述增量快照数据;
基于所述执行进度对所述快照视图中的增量快照数据进行标注,得到进度标注结果;
根据所述进度标注结果从所述增量快照数据中确定目标快照数据。
3.根据权利要求2所述的方法,其特征在于,所述执行进度包括所述协调节点与所述目标存储节点在上一次通信时涉及的增量快照数据;
所述基于所述执行进度对所述快照视图中的增量快照数据进行标注,得到进度标注结果的步骤,包括:
对所述快照视图中与所述执行进度所包含的增量快照数据相匹配的增量快照数据进行标注,得到进度标注结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述进度标注结果从所述增量快照数据中确定目标快照数据的步骤,包括:
基于所述快照视图内增量快照数据的排列顺序,将所述快照视图中位于所述进度标注结果所标注的增量快照数据之后的增量快照数据均确定为目标快照数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
保存所述目标快照数据;
按照预设周期向所述目标存储节点发送所述目标快照数据,以使所述目标存储节点基于所述目标快照数据反馈所述目标存储节点内的执行进度;
如果接收到所述目标存储节点反馈的执行进度,基于所述执行进度对所述目标快照数据进行更新。
6.根据权利要求1所述的方法,其特征在于,所述分布式数据库内包括的存储节点为多个;各个所述存储节点内存储的所述当前事务的执行进度相同或不同;
所述方法还包括:
根据各个所述存储节点内存储的所述当前事务的执行进度,判断所述当前事务是否执行完毕;
如果是,基于下一事务的基量快照数据从所述事务管理节点获取所述下一事务的增量快照数据;
从所述目标存储节点获取所述下一事务的执行进度;
基于所述下一事务的执行进度从所述下一事务的增量快照数据中确定所述下一事务的目标快照数据;
将所述下一事务的目标快照数据发送至所述目标存储节点,以使所述目标存储节点基于所述下一事务的目标快照数据更新所述下一事务的执行进度。
7.一种事务进度的管理装置,其特征在于,所述装置应用于分布式数据库内的协调节点,所述装置包括:
基量快照数据发送模块,用于如果接收到事务执行命令,向所述分布式数据库内的事务管理节点发送所述事务执行命令对应的当前事务的基量快照数据,以使所述事务管理节点基于所述基量快照数据反馈所述当前事务的增量快照数据;
执行进度获取模块,用于如果接收到所述事务管理节点反馈的所述当前事务的增量快照数据,从所述分布式数据库内的目标存储节点获取所述当前事务的执行进度;
目标快照数据确定模块,用于基于所述执行进度从所述增量快照数据中确定目标快照数据;
目标快照数据发送模块,用于将所述目标快照数据发送至所述目标存储节点,以使所述目标存储节点基于所述目标快照数据更新所述当前事务的执行进度。
8.根据权利要求7所述的装置,其特征在于,所述目标快照数据确定模块还用于:
基于所述增量快照数据建立快照视图;其中,所述快照视图包括按照预设顺序排列的所述增量快照数据;
基于所述执行进度对所述快照视图中的增量快照数据进行标注,得到进度标注结果;
根据所述进度标注结果从所述增量快照数据中确定目标快照数据。
9.一种分布式数据库,其特征在于,包括:处理器和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至6任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010938354.6A CN112069258B (zh) | 2020-09-08 | 2020-09-08 | 事务进度的管理方法、装置及分布式数据库 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010938354.6A CN112069258B (zh) | 2020-09-08 | 2020-09-08 | 事务进度的管理方法、装置及分布式数据库 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069258A true CN112069258A (zh) | 2020-12-11 |
CN112069258B CN112069258B (zh) | 2024-04-19 |
Family
ID=73662843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010938354.6A Active CN112069258B (zh) | 2020-09-08 | 2020-09-08 | 事务进度的管理方法、装置及分布式数据库 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069258B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023103990A1 (zh) * | 2021-12-10 | 2023-06-15 | 中兴通讯股份有限公司 | 数据库的事务快照生成方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657483A (zh) * | 2015-02-28 | 2015-05-27 | 华为技术有限公司 | 处理事务的方法、处理节点、中心节点和集群 |
WO2018170276A2 (en) * | 2017-03-15 | 2018-09-20 | Fauna, Inc. | Methods and systems for a database |
CN110188238A (zh) * | 2019-05-15 | 2019-08-30 | 上海良相智能化工程有限公司 | 一种智慧公安视频检索系统 |
CN110502319A (zh) * | 2019-08-23 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 分布式事务的处理方法、装置、电子设备及存储介质 |
US20200034308A1 (en) * | 2018-07-27 | 2020-01-30 | EMC IP Holding Company LLC | Snapshot locking mechanism |
US20200057697A1 (en) * | 2017-08-07 | 2020-02-20 | Datto, Inc. | Multiclient Backup Replication Apparatuses, Methods and Systems |
US20200068010A1 (en) * | 2018-08-25 | 2020-02-27 | Panzura, Inc. | Managing a cloud-based distributed computing environment using a distributed database |
CN111158593A (zh) * | 2019-12-26 | 2020-05-15 | 浪潮(北京)电子信息产业有限公司 | 一种多快照依赖关系处理方法、装置及相关组件 |
-
2020
- 2020-09-08 CN CN202010938354.6A patent/CN112069258B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657483A (zh) * | 2015-02-28 | 2015-05-27 | 华为技术有限公司 | 处理事务的方法、处理节点、中心节点和集群 |
WO2018170276A2 (en) * | 2017-03-15 | 2018-09-20 | Fauna, Inc. | Methods and systems for a database |
US20200057697A1 (en) * | 2017-08-07 | 2020-02-20 | Datto, Inc. | Multiclient Backup Replication Apparatuses, Methods and Systems |
US20200034308A1 (en) * | 2018-07-27 | 2020-01-30 | EMC IP Holding Company LLC | Snapshot locking mechanism |
US20200068010A1 (en) * | 2018-08-25 | 2020-02-27 | Panzura, Inc. | Managing a cloud-based distributed computing environment using a distributed database |
CN110188238A (zh) * | 2019-05-15 | 2019-08-30 | 上海良相智能化工程有限公司 | 一种智慧公安视频检索系统 |
CN110502319A (zh) * | 2019-08-23 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 分布式事务的处理方法、装置、电子设备及存储介质 |
CN111158593A (zh) * | 2019-12-26 | 2020-05-15 | 浪潮(北京)电子信息产业有限公司 | 一种多快照依赖关系处理方法、装置及相关组件 |
Non-Patent Citations (2)
Title |
---|
张剑;刘梦赤;: "面向信息网模型的高可扩展性分布式事务处理机制", 计算机工程, no. 11, 15 November 2017 (2017-11-15) * |
王成良;孙永红;杨斌;王珏;: "基于组通信技术的数据库复制技术研究与应用", 计算机技术与发展, no. 05, 10 May 2013 (2013-05-10) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023103990A1 (zh) * | 2021-12-10 | 2023-06-15 | 中兴通讯股份有限公司 | 数据库的事务快照生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112069258B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11489943B2 (en) | Automatic version routing among multiple instances of an application | |
CN109617647B (zh) | 报文转换方法、装置、计算机设备及计算机可读存储介质 | |
CN109241099B (zh) | 一种数据查询方法及终端设备 | |
CN113132267B (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN112579898A (zh) | 企业信息的管理方法、装置及服务器 | |
CN110968478A (zh) | 日志采集方法、服务器及计算机存储介质 | |
CN111104594A (zh) | 行情推送方法及装置 | |
CN112416972A (zh) | 实时数据流处理方法、装置、设备、及可读存储介质 | |
US20220284020A1 (en) | Data processing method, apparatus, and system | |
TW202001618A (zh) | 檔案處理的方法及裝置 | |
CN110597764B (zh) | 一种文件下载、版本管理方法及装置 | |
CN112256318A (zh) | 一种用于依赖产品的构建方法及设备 | |
CN112069258B (zh) | 事务进度的管理方法、装置及分布式数据库 | |
CN111580948A (zh) | 任务调度方法、装置及计算机设备 | |
US11762687B2 (en) | Processing of messages and documents carrying business transactions | |
CN112448979B (zh) | 一种缓存信息的更新方法、装置及介质 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN109670133B (zh) | 一种页面的公共组件的确定方法、服务器及存储介质 | |
CN112199529A (zh) | 图片处理方法、装置、电子设备及存储介质 | |
CN112637288A (zh) | 流式数据分发方法和系统 | |
CN112667284A (zh) | 微服务维护方法、装置、服务器及存储介质 | |
WO2019169696A1 (zh) | 平台客户数据回流方法、电子装置、设备及存储介质 | |
CN112104743B (zh) | 序列生成方法、装置和电子设备 | |
CN112799775B (zh) | 一种节点属性传递方法以及相关装置 | |
CN110362706B (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 |