CN110413687B - 基于节点互证校验的分布式事务故障处理方法及相关设备 - Google Patents

基于节点互证校验的分布式事务故障处理方法及相关设备 Download PDF

Info

Publication number
CN110413687B
CN110413687B CN201910385755.0A CN201910385755A CN110413687B CN 110413687 B CN110413687 B CN 110413687B CN 201910385755 A CN201910385755 A CN 201910385755A CN 110413687 B CN110413687 B CN 110413687B
Authority
CN
China
Prior art keywords
commit
distributed transaction
transaction
distributed
data copy
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
Application number
CN201910385755.0A
Other languages
English (en)
Other versions
CN110413687A (zh
Inventor
吴佳
苏丹
杨睿
刘超
胡学勇
邓卜侨
孙雷
崔伟
刘炜
郑红云
林韶宾
高孝鑫
娄帅
冷曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Great Opensource Software Co ltd
State Grid Information and Telecommunication Co Ltd
State Grid Jibei Electric Power Co Ltd
Beijing Guodiantong Network Technology Co Ltd
Beijing China Power Information Technology Co Ltd
Original Assignee
Beijing Great Opensource Software Co ltd
State Grid Information and Telecommunication Co Ltd
State Grid Jibei Electric Power Co Ltd
Beijing Guodiantong Network Technology Co Ltd
Beijing China Power Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Great Opensource Software Co ltd, State Grid Information and Telecommunication Co Ltd, State Grid Jibei Electric Power Co Ltd, Beijing Guodiantong Network Technology Co Ltd, Beijing China Power Information Technology Co Ltd filed Critical Beijing Great Opensource Software Co ltd
Priority to CN201910385755.0A priority Critical patent/CN110413687B/zh
Publication of CN110413687A publication Critical patent/CN110413687A/zh
Application granted granted Critical
Publication of CN110413687B publication Critical patent/CN110413687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于节点互证校验的分布式事务故障处理方法及相关设备。所述方法包括:对所述分布式事物包含的每个分片进行第二阶段的提交;获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片;判断所述分布式事物的其他分片中是否有任一分片提交成功;若是,则将该提交失败的分片重新提交。本发明所述方法及相关设备在第二阶段提交阶段出现故障的情况下依然可以确保集群事务提交的强一致性。

Description

基于节点互证校验的分布式事务故障处理方法及相关设备
技术领域
本发明涉及通信网络技术领域,特别是指一种基于节点互证校验的分布式事务故障处理方法及相关设备。
背景技术
事务(Transaction)是一个操作序列为实现特定业务功能而访问数据库的最小逻辑工作单位。分布式事务是指一个事务可能涉及多个数据库操作。当对这些数据库进行操作后,对这些数据库的修改必须全部被提交或回滚,不允许有的数据库提交而有的数据库没有提交,该特性称为事务的原子性和一致性。此时一个数据库对自己内部所做操作的提交不仅依赖本身操作是否成功,还要依赖与分布式事务相关的其它数据库的操作是否成功,如果任一数据库的任一操作失败,则参与此事务的所有数据库所做的所有操作都必须回滚。即要么所有参与节点都提交成功,要么所有参与节点都回滚,如图1所示。
传统方案的实现直接调用了mysql原生的xa接口,由mysql节点作为分布式事务的资源管理器(即参与者),分布式数据库调度程序/业务程序作为分布式事务的事务管理器(即协调者);通过在所有参与者节点执行xa prepare来确定所有参与者进行可提交状态,而后向所有参与者发送第二阶段提交命令进行事务的本地提交。
传统两阶段提交实现的问题在于如果第二阶段提交的命令在某个参与者节点上失败(可能由于网络或节点故障),那么其他参与者依然会提交成功;而对于故障的参与者节点,并没有机制来确保故障节点恢复后对应的分布式事务与其他参与者节点一致,大概率会出现分布式事务部分提交的不一致状态并被客户端感知。
发明内容
有鉴于此,本发明实施例的目的在于提出一种基于节点互证校验的分布式事务故障处理方法及相关设备,在第二阶段提交阶段出现故障的情况下依然可以确保集群事务提交的强一致性。
基于上述目的本发明实施例提供的一种基于节点互证校验的分布式事务故障处理方法,包括:
对所述分布式事物包含的每个分片进行第二阶段的提交;
获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片;
判断所述分布式事物的其他分片中是否有任一分片提交成功;
若是,则将该提交失败的分片重新提交。
可选的,所述分布式事物的每一个分片均包含一个主数据副本和至少一个备数据副本,通过强一致复制实现所述主数据副本与所述备数据副本之间的强一致性,所述主数据副本用于在第二阶段提交的过程中实现各个分片的提交,所述备数据副本用于实现提交失败的分片的重新提交。
可选的,所述主数据副本、所述备数据副本均包含业务数据和日志数据,所述业务数据为所述分布式事物本身的业务数据,所述日志数据为嵌入到所述分布式事物本身的业务数据中的分布式日志。
可选的,所述分布式日志以分片节点系统数据表操作的形式存储为日志数据。
可选的,所述日志数据包括关联节点信息以及提交状态信息,所述关联节点信息用于记录本分片节点与其他分片节点之间的关联关系,所述提交状态信息用于记录当前分片的提交状态。
可选的,所述获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片包括:将该提交失败的分片的备数据副本提升为新主数据副本,通过所述新主数据副本的日志数据查询与其具有相同分布式事物id信息的其他分片。
可选的,所述将该提交失败的分片重新提交包括:通过该提交失败的分片的新主数据副本进行重新提交。
本发明实施例还提供一种基于节点互证校验的分布式事务故障处理装置,包括:
提交模块,用于对所述分布式事物包含的每个分片进行第二阶段的提交;
获取模块,用于获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片;
判断模块,用于判断所述分布式事物的其他分片中是否有任一分片提交成功;
重提交模块,用于将该提交失败的分片重新提交。
可选的,所述分布式事物的每一个分片均包含一个主数据副本和至少一个备数据副本,通过强一致复制实现所述主数据副本与所述备数据副本之间的强一致性,所述主数据副本用于在第二阶段提交的过程中实现各个分片的提交,所述备数据副本用于实现提交失败的分片的重新提交。
本发明实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任意一项所述的基于节点互证校验的分布式事务故障处理方法。
从上面所述可以看出,本发明实施例提供的基于节点互证校验的分布式事务故障处理方法及相关设备,应用于分布式事物进入第二阶段提交状态时出现故障的情况,即便第二阶段提交过程中分布式事务协调器出现故障宕机,只要分布式事物的多个分片中至少一个分片提交成功,本发明实施例所述方法在分布式事务协调器恢复启动过程依然可以依赖同一套节点互证校验算法对所有的分片进行分布式事务的故障处理,通过节点校验寻找出分布式事物中提交失败的分片重新提交,不会出现部分提交数据对用户可见的情况,确保mysql集群分布式事务的强一致性。
附图说明
图1为本发明实施例所述基于节点互证校验的分布式事务故障处理方法的流程图;
图2为本发明实施例所述基于节点互证校验的分布式事务故障处理方法的另一流程图;
图3为本发明实施例所述基于节点互证校验的分布式事务故障处理装置的结构图;
图4为执行本发明实施例所述基于节点互证校验的分布式事务故障处理方法的电子设备的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
现有技术中,事务管理器接收到应用程序的分布式事务的提交请求后,通知与该分布式事务关联的各个数据库执行两阶段的分布式事务提交:
在第一阶段,事务管理器请求各个数据库准备提交各自的分布式事务分片,以确认是否所有相关数据库都可以提交各自的分布式事务分片,该第一阶段提交称为预提交。当某一数据库收到预提交请求后,如果可以提交属于自己的分布式事务分片,则将自己在该分布式事务分片中所做的数据操作记录到该数据库的重做日志(Redo Log),并给事务管理器一个同意提交的应答,但此时数据库并没有真正提交该事务。事务管理器审查各个数据库返回的预提交结果,如都可以提交,事务管理器要求各个数据库做正式提交、进入第二阶段。如果有任一数据库预提交返回失败,事务管理器将要求所有其它数据库回滚其操作,这样该分布式事务被回滚。
在第二阶段,事务管理器要求各个数据库执行正式提交,这样该分布式事务被提交;正式提交包括在重做日志中记录commit操作,并将修改后的数据写入磁盘,当接收到各个数据库第二阶段提交成功的响应后,事务管理器结束该分布式事务,并通知应用程序事务提交成功。
但是在第二阶段,当事务管理器、数据库故障(例如突然宕机),或者两者之间的网络连接异常时,可能出现部分数据库成功提交了事务、部分数据库没有完成提交的情况,因为各数据库是相互独立的,无法感知对方的状态,该场景下没有完成提交的数据库将不知道如何处理未结束的事务。
基于上述原因,本发明实施例提供一种基于节点互证校验的分布式事务故障处理方法,参照图1所示,所述方法包括:
步骤101,对所述分布式事物包含的每个分片进行第二阶段的提交。
分布式事物包含多个分片,在第一阶段的预提交中,该分布式事物包含的全部分片均可以提交,因此进入第二阶段,对分布式事物包含的全部分片进行正式提交。在本实施例中,各个分片除了包含该分布式事物的业务数据,还包括日志数据,该日志数据包括该分片的提交状态信息以及该分片与其他分片的关联信息,通过关联信息可以判断出该分片与其他分片是否同属一个分布式事物、以及同属一个分布式事物的多个分片的链接顺序等信息。
步骤102,获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片。
可选的,在第二阶段提交时,可能仍有部分分片因故障提交失败,此时获取到提交失败的分片,基于该提交失败的分片本身与其他分片的关联关系寻找到与该提交失败的分片关联的分布式事物的其他分片。
步骤103,判断所述分布式事物的其他分片中是否有任一分片提交成功。
步骤104,若是,即至少一个分片提交成功,则将该提交失败的分片重新提交,从而保证该分布式事物可以提交成功。否则,若该分布式事物的其他分片中任一分片均没有提交成功,即该分布式事物的全部分片都没有提交成功,则该分布式事物回滚,所包括的各个分片也不必重新提交。
本发明实施例所述基于节点互证校验的分布式事务故障处理方法,应用于分布式事物进入第二阶段提交状态时出现故障的情况,即便第二阶段提交过程中分布式事务协调器(调度)出现故障宕机,只要分布式事物的多个分片中至少一个分片提交成功,本发明实施例所述方法在分布式事务协调器(调度)恢复启动过程依然可以依赖同一套节点互证校验算法对所有的分片进行分布式事务的故障处理,通过节点校验寻找出分布式事物中提交失败的分片重新提交,不会出现部分提交数据对用户可见的情况,确保mysql集群分布式事务的强一致性。
在本发明的一些实施例中,所述分布式事物的每一个分片均包含一个主数据副本和至少一个备数据副本,通过mysql强一致复制实现所述主数据副本与所述备数据副本之间的强一致性从而保证每个分片数据内事务的提交缓存在主备节点间同步一致。所述主数据副本用于在第二阶段提交的过程中实现各个分片的提交,所述备数据副本用于实现在第二阶段提交时提交失败的分片的重新提交。
可选的,所述主数据副本、所述备数据副本均包含业务数据和日志数据,所述业务数据为所述分布式事物本身的业务数据,所述日志数据为嵌入到所述分布式事物本身的业务数据中的分布式日志,分布式日志以参与者节点系统数据表操作的形式存储为日志数据,该分布式日志与该分片包括的业务数据在同一个事务内进行提交,即业务数据提交成功的同时分布式日志数据也会提交成功。
可选的,所述日志数据包括关联节点信息以及提交状态信息,所述关联节点信息用于记录本分片节点与其他分片节点之间的关联关系,通过关联节点信息可以关联本分布式事务的其他参与者节点,所述提交状态信息用于记录当前分片的提交状态。
在另一些实施例中,步骤102中所述获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片包括:将该提交失败的分片的备数据副本提升为新主数据副本,通过所述新主数据副本的日志数据查询与其具有相同分布式事物id信息的其他分片。当mysql集群分布式事务第二阶段提交过程中某一个分片出现故障导致该参与者分片提交失败,mysql集群就进入recover过程。故障分片的冗余节点将被提升为新主数据副本,而后进入节点事务日志互证校验逻辑。由于故障分片已经完成了xa prepare阶段,及本地是有为提交/回滚的提交缓存信息的,通过查阅提交缓存可以获取分布式事务信息,而后在集群所有分片节点上校验该信息。
可选的,所述将该提交失败的分片重新提交包括:通过该提交失败的分片的新主数据副本进行重新提交。如果存在该分布式事务的任何一个分片节点已经完成提交(日志信息同样被提交可被查阅),那么该分布式事务就应该被提交,即将该分布式事物中提交失败的分片通过备数据副本进行重新提交,否者应被回滚。
因为故障瞬间可能存在大量正在提交的分布式事务,同时可能会有多个分片节点故障,所以互证校验的实现是全局批处理的实现,校验的过程是分片节点间的互相寻找事务提交证据的过程,因此本发明实施例还包括:获取全部分片的关联关系存储到关联事物列表中;获取全部分片的提交状态信息存储到状态汇总列表中;对比所述关联事物列表与所述状态汇总列表,生成需要被提交的事务列表和需要被回滚的事务列表作为判决校验结果。最终分布式事务协调器(调度)基于判决校验结果对故障分片节点的事务提交缓存进行提交或回滚。
为了便于理解,本发明实施例还提供一个具体的实施例,参照图2所示,一个分布式事务同时修改了分片1和分片2的数据,假设分布式事务的id为1,第一阶段提交都成功了,在分片1和分片2节点的主数据副本和备数据副本中都包含了id为1的分布式事务的一阶段提交信息与提交缓存,并且在提交缓存中包含了事务的日志数据其中记录了这个事务关联的分片为分片1和分片2。
在第2阶段提交的时候,分片1提交成功,而分片2提交失败,分片2的主数据副本故障不可用。这时分片2的备数据副本被提升为主数据副本,同时启动故障处理过程。首先通过查询分片2目前的主数据副本即新主数据副本查询到当前的一阶段提交信息,可以查到id为1的事务一阶段提交信息,即关联事务列表;然后给予节点事务日志互证校验流程检查其他分片已经提交的日志数据信息,在分片1上查询到id为1的分布式事务的提交成功的日志数据,并且日志数据验证该事务涉及分片2,即id为1的事务已经全局进入提交状态,从而得到状态汇总列表。通过比对关联事务列表和状态汇总列表,可以得出id为1的事务是需要被提交的事务,而后将这个判决结果的确认信息发送给调度进行分片2事务的提交。最后分片2完成分布式事务故障处理,并对外提供服务。
本发明实施例的另一方面还提供一种基于节点互证校验的分布式事务故障处理装置,如图3所示,包括:
提交模块11,用于对所述分布式事物包含的每个分片进行第二阶段的提交;
获取模块12,用于获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片;
判断模块13,用于判断所述分布式事物的其他分片中是否有任一分片提交成功;
重提交模块14,用于将该提交失败的分片重新提交。
可选的,所述分布式事物的每一个分片均包含一个主数据副本和至少一个备数据副本,通过强一致复制实现所述主数据副本与所述备数据副本之间的强一致性,所述主数据副本用于在第二阶段提交的过程中实现各个分片的提交,所述备数据副本用于实现提交失败的分片的重新提交。
可选的,所述主数据副本、所述备数据副本均包含业务数据和日志数据,所述业务数据为所述分布式事物本身的业务数据,所述日志数据为嵌入到所述分布式事物本身的业务数据中的分布式日志。
可选的,所述分布式日志以分片节点系统数据表操作的形式存储为日志数据。
可选的,所述日志数据包括关联节点信息以及提交状态信息,所述关联节点信息用于记录本分片节点与其他分片节点之间的关联关系,所述提交状态信息用于记录当前分片的提交状态。
可选的,所述获取任一提交失败的分片以及与该分片关联的所述分布式事物的其他分片包括:将该提交失败的分片的备数据副本提升为新主数据副本,通过所述新主数据副本的日志数据查询与其具有相同分布式事物id信息的其他分片。
可选的,所述将该提交失败的分片重新提交包括:通过该提交失败的分片的新主数据副本进行重新提交。
本发明实施例的第三个方面,提出了一种执行所述基于节点互证校验的分布式事务故障处理方法的装置的一个实施例。如图4所示,为本发明提供的执行所述基于节点互证校验的分布式事务故障处理方法的装置的一个实施例的硬件结构示意图。
如图4所示,所述装置包括:
一个或多个处理器901以及存储器902,图4中以一个处理器901为例。
所述执行所述基于节点互证校验的分布式事务故障处理方法的装置还可以包括:输入装置903和输出装置904。
处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的所述基于节点互证校验的分布式事务故障处理方法对应的程序指令/模块(例如,附图3所示的提交模块11、获取模块12、判断模块13以及重提交模块14)。处理器901通过运行存储在存储器1002中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于节点互证校验的分布式事务故障处理方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于节点互证校验的分布式事务故障处理装置的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至会员用户行为监控装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置903可接收输入的数字或字符信息,以及产生与基于节点互证校验的分布式事务故障处理装置的用户设置以及功能控制有关的键信号输入。输出装置904可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器902中,当被所述一个或者多个处理器901执行时,执行上述任意方法实施例中的基于节点互证校验的分布式事务故障处理方法。所述执行所述基于节点互证校验的分布式事务故障处理方法的装置的实施例,其技术效果与前述任意方法实施例相同或者类似。
本发明实施例所述基于节点互证校验的分布式事务故障处理方法相关设备,一旦分布式事务进入第二阶段提交状态,并至少有一个参与者完成第二阶段提交,那么本发明实施例将确保该事务一定会在所有参与者节点提交成功,不会出现部分提交的数据对用户可见;全局事务管理器是轻量的,本身不会记录日志,本方案所需的分布式事务日志将存储在分布式事务的所有参与者节点上,并通过参与者节点互证校验完成故障处理判定;本方案所需的分布式日志采用了日志即数据的方式,以最小代价嵌入在业务事务中,对业务性能影响极小;正常事务提交过程沿用传统两阶段提交,不引入额外的复杂度与性能消耗;本方案依托mysql主备强一致复制。所有的mysql参与者节点都需要依托强一致复制确保主副本与冗余副本数据的一致性。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于节点互证校验的分布式事务故障处理方法,其特征在于,事务管理器接收到应用程序的分布式事务的提交请求后,通知与该分布式事务关联的各个数据库执行两阶段的分布式事务提交:在第一阶段,事务管理器请求各个数据库准备提交各自的分布式事务分片;在第二阶段,事务管理器要求各个数据库执行正式提交;
所述方法,还包括:对所述分布式事务包含的每个分片进行第二阶段的提交;所述分布式事务的每一个分片均包含一个主数据副本和至少一个备数据副本,所述第二阶段用于对分布式事务包含的全部分片进行正式提交;
获取任一提交失败的分片以及与该分片关联的所述分布式事务的其他分片,包括:将该提交失败的分片的备数据副本提升为新主数据副本,通过所述新主数据副本的日志数据查询与其具有相同分布式事务id信息的其他分片;
判断所述分布式事务的其他分片中是否有任一分片提交成功;
若是,则将该提交失败的分片重新提交,包括:通过该提交失败的分片的新主数据副本进行重新提交。
2.根据权利要求1所述的方法,其特征在于,通过强一致复制实现所述主数据副本与所述备数据副本之间的强一致性,所述主数据副本用于在第二阶段提交的过程中实现各个分片的提交,所述备数据副本用于实现提交失败的分片的重新提交。
3.根据权利要求2所述的方法,其特征在于,所述主数据副本、所述备数据副本均包含业务数据和日志数据,所述业务数据为所述分布式事务本身的业务数据,所述日志数据为嵌入到所述分布式事务本身的业务数据中的分布式日志。
4.根据权利要求3所述的方法,其特征在于,所述分布式日志以分片节点系统数据表操作的形式存储为日志数据。
5.根据权利要求3所述的方法,其特征在于,所述日志数据包括关联节点信息以及提交状态信息,所述关联节点信息用于记录本分片节点与其他分片节点之间的关联关系,所述提交状态信息用于记录当前分片的提交状态。
6.一种基于节点互证校验的分布式事务故障处理装置,其特征在于,事务管理器接收到应用程序的分布式事务的提交请求后,通知与该分布式事务关联的各个数据库执行两阶段的分布式事务提交:在第一阶段,事务管理器请求各个数据库准备提交各自的分布式事务分片;在第二阶段,事务管理器要求各个数据库执行正式提交;所述装置,包括:
提交模块,用于对所述分布式事务包含的每个分片进行第二阶段的提交;所述分布式事务的每一个分片均包含一个主数据副本和至少一个备数据副本,所述第二阶段用于对分布式事务包含的全部分片进行正式提交;
获取模块,用于获取任一提交失败的分片以及与该分片关联的所述分布式事务的其他分片,包括:将该提交失败的分片的备数据副本提升为新主数据副本,通过所述新主数据副本的日志数据查询与其具有相同分布式事务id信息的其他分片;
判断模块,用于判断所述分布式事务的其他分片中是否有任一分片提交成功;
重提交模块,用于将该提交失败的分片重新提交,包括:通过该提交失败的分片的新主数据副本进行重新提交。
7.根据权利要求6所述的装置,其特征在于,通过强一致复制实现所述主数据副本与所述备数据副本之间的强一致性,所述主数据副本用于在第二阶段提交的过程中实现各个分片的提交,所述备数据副本用于实现提交失败的分片的重新提交。
8.一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-5任意一项所述的基于节点互证校验的分布式事务故障处理方法。
CN201910385755.0A 2019-05-09 2019-05-09 基于节点互证校验的分布式事务故障处理方法及相关设备 Active CN110413687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910385755.0A CN110413687B (zh) 2019-05-09 2019-05-09 基于节点互证校验的分布式事务故障处理方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910385755.0A CN110413687B (zh) 2019-05-09 2019-05-09 基于节点互证校验的分布式事务故障处理方法及相关设备

Publications (2)

Publication Number Publication Date
CN110413687A CN110413687A (zh) 2019-11-05
CN110413687B true CN110413687B (zh) 2024-01-05

Family

ID=68358178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910385755.0A Active CN110413687B (zh) 2019-05-09 2019-05-09 基于节点互证校验的分布式事务故障处理方法及相关设备

Country Status (1)

Country Link
CN (1) CN110413687B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737273A (zh) * 2020-06-02 2020-10-02 北京人大金仓信息技术股份有限公司 事务提交方法、装置、协调节点及存储介质
CN111639090A (zh) * 2020-06-03 2020-09-08 山东汇贸电子口岸有限公司 一种数据抽取过程中的数据一致性控制方法及系统
CN112764888B (zh) * 2021-01-21 2023-03-24 中信银行股份有限公司 一种基于日志分析的分布式事务检查判断方法及系统
CN115168367B (zh) * 2022-09-07 2022-11-25 太极计算机股份有限公司 一种大数据的数据配置方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569253B1 (en) * 2012-06-04 2017-02-14 Google Inc. Ensuring globally consistent transactions
CN103559245A (zh) * 2013-10-29 2014-02-05 华为技术有限公司 一种分布式事务提交故障的处理方法、装置和系统
CN106547610A (zh) * 2016-10-11 2017-03-29 北京国电通网络技术有限公司 一种分布式事务提交的方法及系统
CN109165258A (zh) * 2018-08-14 2019-01-08 郑州云海信息技术有限公司 一种数据同步方法与装置

Also Published As

Publication number Publication date
CN110413687A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
CN110413687B (zh) 基于节点互证校验的分布式事务故障处理方法及相关设备
JP7142152B2 (ja) トランザクション処理方法、装置、機器並びにコンピュータプログラム
WO2018103318A1 (zh) 分布式事务处理方法和系统
US8880486B2 (en) Distributed database system utilizing an extended two-phase-commit process
CN107077382B (zh) 在多租户应用服务器环境中进行事务恢复的系统和方法
US8126848B2 (en) Automated method for identifying and repairing logical data discrepancies between database replicas in a database cluster
WO2016180164A1 (zh) 一种分布式事务回滚方法及装置
EP2903239B1 (en) Masking server outages from clients and applications
US8166007B2 (en) Failure tolerant transaction processing system
US8868514B2 (en) Transaction support for distributed data
US8108343B2 (en) De-duplication and completeness in multi-log based replication
CN110032428B (zh) 分布式事务的执行方法和装置
US20110184915A1 (en) Cluster restore and rebuild
WO2021103499A1 (zh) 一种基于多活数据中心的流量切换方法及装置
KR101296778B1 (ko) NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법
US20230110826A1 (en) Log execution method and apparatus, computer device and storage medium
CN110716793A (zh) 一种分布式事务的执行方法、装置、设备及存储介质
CN110121694B (zh) 一种日志管理方法、服务器和数据库系统
CN113965578A (zh) 一种集群中主节点的选举方法、装置、设备及存储介质
CN111352704A (zh) 基于策略管理的分布式全局事务处理系统和方法
US20210218827A1 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
US9031969B2 (en) Guaranteed in-flight SQL insert operation support during an RAC database failover
CN111404737B (zh) 一种容灾处理方法以及相关装置
CN112632093A (zh) 工单处理方法、设备、系统、存储介质及程序产品
WO2023216636A1 (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