CN106547781B - 一种实现分布式事务的方法、装置及数据库服务器 - Google Patents

一种实现分布式事务的方法、装置及数据库服务器 Download PDF

Info

Publication number
CN106547781B
CN106547781B CN201510605556.8A CN201510605556A CN106547781B CN 106547781 B CN106547781 B CN 106547781B CN 201510605556 A CN201510605556 A CN 201510605556A CN 106547781 B CN106547781 B CN 106547781B
Authority
CN
China
Prior art keywords
transaction
sql
statement
database server
decomposition
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
CN201510605556.8A
Other languages
English (en)
Other versions
CN106547781A (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.)
Nanjing ZTE New Software Co Ltd
Original Assignee
Nanjing ZTE New Software 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 Nanjing ZTE New Software Co Ltd filed Critical Nanjing ZTE New Software Co Ltd
Priority to CN201510605556.8A priority Critical patent/CN106547781B/zh
Priority to PCT/CN2016/081752 priority patent/WO2017049911A1/zh
Publication of CN106547781A publication Critical patent/CN106547781A/zh
Application granted granted Critical
Publication of CN106547781B publication Critical patent/CN106547781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种实现分布式事务的方法、装置及数据库服务器,包括:分解来自客户端的请求消息中包含的事务SQL语句,获得可在单个数据库服务器上执行的分解SQL语句;将获得的各个分解SQL语句根据涉及表的数据所在的数据库服务器分发到相应的数据库服务器。各数据库服务器执行接收到的分解SQL语句,并反馈执行结果至客户端。本发明通过将事务SQL语句分解为可在单个数据库服务器上执行的分解SQL语句,通过各数据库服务器执行并反馈分解SQL语句的执行结果,实现了对分布式事务的SQL语句在各个数据库服务器执行的数据更新的确定,进而确定了分布式事务是否完成。

Description

一种实现分布式事务的方法、装置及数据库服务器
技术领域
本申请涉及数据库处理技术,尤指一种实现分布式事务的方法、装置及数据库服务器。
背景技术
目前,当分布式数据库系统涉及到多个数据库服务器时,针对多个数据库服务器的数据处理一般通过分布式事务实现。分布式事务处理过程一般包括:向事务涉及到的全部资源管理器发送预处理信息,确定能被定位和控制的资源管理器,对能够定位和控制的资源管理器下发事务进行数据更新。
发送预处理信息可以确定能被定位和控制的资源管理器,但资源管理器在执行数据更新时,需要将事务提交到事务涉及多个数据库服务器,当部分数据库服务器出现网络故障、或宕机等情况时,提交到该部分数据库服务器的事务会提交失败;即事务中涉及该部分数据库服务器的数据更新将无法完成;目前,事务涉及多个数据库服务器,事务提交是将整个事务分发到涉及到的所有数据库服务器,对于事务提交失败的情况并未考虑,因此,并未进行事务是否提交成功和事务是否完成的分析,导致事务涉及的数据更新存在更新不完全的问题。
发明内容
为了解决上述问题,本发明提供一种实现分布式事务的方法、装置及数据库服务器,能够避免由于事务提交失败造成的事务更新不完全的问题。
为了达到本发明的目的,本申请提供一种实现分布式事务的方法,包括:
此部分待权利要求确定后补充
与现有技术相比,本发明提供的技术方案,包括:分解来自客户端的请求消息中包含的事务结构化查询语言(SQL)语句,获得一条或一条以上可在单个数据库服务器上执行的分解SQL语句;将获得的各个分解SQL语句根据涉及表的数据所在的数据库服务器分发到相应的数据库服务器。各数据库服务器执行接收到的分解SQL语句,并反馈执行结果至客户端。本发明通过将事务SQL语句分解为可在单个数据库服务器上执行的分解SQL语句,通过各数据库服务器执行并反馈分解SQL语句的执行结果,实现了对分布式事务的SQL语句在各个数据库服务器执行的数据更新的确定,进而确定了分布式事务是否完成。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明实现分布式事务的方法的流程图;
图2为本发明实现分布式事务的方法的流程图;
图3为本发明实现分布式事务的装置的结构框图;
图4为本发明实现分布式事务的数据库服务器的结构框图;
图5为本发明第一实施例的系统的结构框图;
图6为本发明第二实施例的方法流程图;
图7为本发明第三实施例的方法的流程示意图;
图8为本发明第四实施例的方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实现分布式事务的方法的流程图,如图1所示,包括:
步骤100、分解来自客户端的请求消息中包含的事务结构化查询语言(SQL)语句,获得一条或一条以上可在单个数据库服务器上执行的分解SQL语句;
需要说明的是,事务SQL语句是指分布式事务中事务涉及的数据更新或操作的数据库执行指令;一条或一条以上可在单个数据库服务器上执行的分解SQL语句是指,分解获得的SQL语句在一个数据库服务器上可以完全执行。例如,如果将数据1和数据2插入到数据库的SQL语句需要在两个数据库上做插入操作,则该SQL语句不是可在单个数据库服务器上执行的SQL语句;将该SQL语句分解为将数据1插入到数据库和将数据2插入到数据库的两个分解SQL语句,则两个分解的SQL语句都可以在单个数据库服务器上执行。
本步骤中,分解分布式事务包含的事务SQL语句具体包括:
确定事务SQL语句的类型后,基于数据操纵语言(DML)对各类型的事务SQL语句通过所涉及表的数据的分发策略进行分析,根据分析结果分解事务SQL语句为一条或一条以上可在单个数据库服务器执行的分解SQL语句。这里,确定事务SQL语句的类型为本领域技术人员的惯用技术手段,在此不再赘述。
本发明方法中,事务SQL语句的类型包括:
提取(SELECT)、和/或插入(INSERT)、和/或更新(UPDATE)、和/或删除(DELETE)、和/或模式数据定义语言(DDL)语句。
步骤101、将获得的各个分解SQL语句根据涉及表的数据所在的数据库服务器分发到相应的数据库服务器。
本发明方法还包括:
根据事务SQL语句分解的所有分解SQL语句均执行完成确定分布式事务完成。
本发明通过将事务SQL语句分解为可在单个数据库服务器上执行的分解SQL语句,通过各数据库服务器执行并反馈分解SQL语句的执行结果,实现了对分布式事务的SQL语句在各个数据库服务器执行的数据更新的确定,进而确定了分布式事务是否完成。
图2为本发明实现分布式事务的方法的流程图,如图2所示,包括:
步骤200、各数据库服务器分别接收可在数据库服务器自身执行的分解SQL语句;这里,分解SQL语句为事务SQL语句分解的可在单个数据库服务器上执行的语句。
步骤201、各数据库服务器执行接收到的分解SQL语句,并反馈执行结果至客户端。这里,根据各个分解SQL语句的执行结果,可以确定是否完成分布式事务。
本发明方法还包括:事务SQL语句为插入和/或更新时,
在分解SQL语句涉及表的表项中预先设置事务标识表项,数据库服务器接收到分解SQL语句时,在预先设置的事务标识项中分配基于编号策略生成的全局事务身份证(ID);
数据库服务器执行完分解SQL语句时,释放分配给分解SQL语句的全局事务ID,并根据全局事务ID的释放确定分解SQL语句执行完成。
事务SQL语句为提取时,数据库服务器接收到所述分解SQL语句时,执行分解SQL语句返回数据,如果返回的数据不包含分配的所述全局事务ID,确定所述分解SQL语句执行完成;如果返回的数据包含分配的所述全局事务ID时,重新执行所述分解SQL语句直至返回的数据中不包含分配的所述全局事务ID时,确定所述分解SQL语句执行完成。
图3为本发明实现分布式事务的装置的结构框图,如图3所示,包括:分解单元和分发单元;其中,
分解单元,用于分解来自客户端的请求消息中包含的事务SQL语句,获得一条或一条以上可在单个数据库服务器上执行的分解SQL语句;
分发单元,用于将获得的各个分解SQL语句,根据SQL语句涉及表的数据所在的数据库服务器,将分解SQL语句分发到相应的数据库服务器;
分解单元具体用于,
对来自客户端的请求消息中包含的事务SQL语句确定事务SQL语句的类型后,基于DML对各类型的事务SQL语句通过所涉及表的数据的分发策略进行分析,根据分析结果分解事务SQL语句为一条或一条以上可在单个数据库服务器执行的分解SQL语句。
事务SQL语句的类型包括:
SELECT、和/或INSERT、和/或UPDATE、和/或DELETE、和/或DDL语句。
本发明装置该包括确定单元,用于根据事务SQL语句分解的所有分解SQL语句均执行完成确定分布式事务完成。
图4为本发明实现分布式事务的数据库服务器的结构框图,如图4所示,包括接收单元和执行反馈单元;其中,
接收单元,用于接收分解事务SQL语句获得的可在自身执行的分解SQL语句;
执行反馈单元,执行接收到的分解SQL语句,并反馈执行结果至客户端,以确定是否完成分布式事务。
执行反馈单元还用于,事务SQL语句为插入和/或更新时,
执行接收到的分解SQL语句时,在分解SQL语句涉及表的表项中预先设置事务标识表项,数据库服务器接收到分解SQL语句时,在预先设置的事务标识项中分配基于编号策略生成的全局事务ID;
执行完分解SQL语句时,释放分配给分解SQL语句的全局事务ID,并根据全局事务ID的释放确定分解SQL语句执行完成。
事务SQL语句为提取时,
接收到所述分解SQL语句时,执行分解SQL语句返回数据,如果返回的数据不包含分配的所述全局事务ID,确定所述分解SQL语句执行完成;如果返回的数据包含分配的所述全局事务ID时,重新执行所述分解SQL语句直至返回的数据中不包含分配的所述全局事务ID时,确定所述分解SQL语句执行完成。
以下通过具体实施例对本发明方法进行清楚详细的说明,实施例仅用于陈述本发明,并不用于限定本发明的保护范围。
实施例1
图5为本发明第一实施例的系统的结构框图,如图5所示,包括发送请求消息的客户端、进行分布式事务的装置,及执行分布式事务的若干数据库服务器,本实施例不同数据库服务器通过尾缀相应的编号进行区分;其中,
客户端,用于发送包含有事务SQL语句的请求消息到实现分布式事务的装置;
实现分布式事务的装置,接收来自客户端的事务SQL语句后,确定事务SQL语句的类型后,基于数据操纵语言(DML)对各类型的事务SQL语句通过所涉及表的数据的分发策略进行分析,根据分析结果分解将事务SQL语句分解为一条或一条以上可在单个数据库服务器上执行的分解SQL语句;这里,一条或一条以上可在单个数据库服务器上执行的分解SQL语句是指,分解获得的SQL语句在一个数据库服务器上可以完全执行。例如,如果将数据1和数据2插入到数据库的SQL语句需要在两个数据库上做插入操作,则该SQL语句不是可在单个数据库服务器上执行的SQL语句;将该SQL语句分解为将数据1插入到数据库和将数据2插入到数据库的两个分解SQL语句,则两个分解的SQL语句都可以在单个数据库服务器上执行。
各数据库服务器接收到分解SQL语句后,进行分解SQL语句的执行,按照数据库处理流量,在执行完分解SQL语句后,本实施例实现分布式事务的装置可以通过下发执行commit(把事务所做的修改保存到数据库)到DB1和DB2数据库服务器;如果执行成功,确定分解SQL语句完成,如果事务SQL语句的各分解SQL语句均完成,则分布式事务完成。
确定分布式事务是否完成可以通过在事务SQL语句涉及表的表项中插入事务标识表项,数据库服务器接收到分解SQL语句时,在插入的事务标识项中添加全局事务中心(GTM)基于编号策略生成的全局事务ID;全局事务ID可以通过gtid标识,通过gtid的生成和释放确定分解SQL语句是否完成。
实施例2
本实施例通过数据库语言,对事务SQL语句进行解析处理流程进行描述,图6为本发明第二实施例的方法流程图,如图6所示,包括:
步骤600、解析来自客户端的请求消息的事务SQL语句,获得包含分发策略的DDL语句的语法树;
步骤601、将获得的包含分发策略的DDL语句转化成可在DB服务器执行的可执行DDL语句,同时将DDL语句包含的分发策略持久化到数据字典文件中;
步骤602、将数据库服务器中所有表的分发策略加载到缓存,并根据数据字典文件中持久化的DLL语句的分发策略,确定事务SQL语句中包含的SQL语句可由哪些数据库服务器单个执行;
步骤603、将事务SQL语句分解为一条或一条以上可在单个数据库服务器上执行的分解SQL语句。
需要说明的是,本实施例上述步骤一般可以通过调用相应的线程进行相应的处理;在执行完步骤流程后,本领域技术人员可以按照惯用的技术手段对调用的线程进行回收。
实施例3
本实施例以客户端发送请求消息包含事务INSERT语句,事务INSERT语句需要在两个数据库服务器执行对本发明方法进行清楚详细的说明。本实施例通过全局事务中心(GTM)进行全局事务ID的生成和释放,具体的全局事务ID可以用全局事务编号(gtid)表示。图7为本发明第三实施例的方法的流程示意图,如图7所示,
首先,客户端发送包含事务INSERT语句的请求消息,本实施例事务INSERT语句包含:insert into t1(a,b)values(xx,‘xxx’),(yy,’yyy’);其中,t1表的分发策略是在DB1和DB2的数据库服务器上复制,即两个数据库服务器的数据是一样)。
然后,本实施例实现分布式事务的装置根据事务INSERT语句涉及t1表的数据分发策略确定需要执行事务INSERT语句的数据库服务器,即包含DB1和DB2的数据库服务器;本实施例事务INSERT语句需要访问多个数据库服务器,将事务INSERT语句根据所涉及表的数据的分发策略进行分析后,分解为可在单个数据库服务器上执行的两条分解INSERT语句;本实施例通过分解INSERT语句1和分解INSERT语句2进行区分。
在实现分布式事务的装置分发分解INSERT语句前,本实施例实现分布式事务的装置向GTM申请gtid(例如、申请gtid的值为100),并赋值涉及表的表项中预先设置事务标识表项中全局事务ID为申请的gtid取值;申请获得gtid后,可以在分解INSERT语句中新增插入gtid列(insert into t1(a,b,GTID)values(xx,‘xxx’,100),(yy,’yyy’,100)),将insert语句分别下发到DB1和DB2数据库服务器上执行;
本实施例还可以对插入到分解INSERT语句的gtid进行区分,例如加上区分编码或区分标识,以区分各数据库服务器的执行结果。
各分解SQL语句均执行成功后,本实施例实现分布式事务的装置下发commit(把事务所做的修改保存到数据库)到DB1和DB2数据库服务器执行,假如commit在DB1上执行失败,在DB2上执行成功;则可以根据gtid及区分编码搜索DB2上的数据库操作日志中gtid为100的SQL语句,然后执行反SQL语句进行已提交事务的回滚,直至各分解insert语句均执行完成。
本事务都提交成功后,GTM释放gtid,即gtid=100从活跃gtid列表中删除,最后给客户端回应操作成功的反馈消息。
实施例4
本实施例以请求消息中包含事务SELECT语句对本发明方法进行清楚详细的说明。图8为本发明第四实施例的方法的流程示意图,如图8所示,
客户端发送的请求消息中包含的事务SELECT语句;事务SELECT语句为:select a,b from t1where b>’yyyy’),本实施例实现分布式事务的装置根据事务SELECT表的数据分发策略确定需要执行数据库服务器(DB1和DB2);分布式事务的装置从GTM查询已分配的全局事务ID(假设全局事务ID为:gtids=100、101、105),全局事务ID包含多个gtid,可以用集合A表示。
分布式事务的装置执行分解SELECT语句正常返回,判断确定从DB1和DB2返回的数据不包含从GTM查询的已分配的全局事务ID时,执行分解SELECT语句成功;判断确定从DB1和DB2返回的数据不包含从GTM查询的已分配的全局事务ID,则执行分解SELECT语句失败。
如果执行分解SELECT语句正常返回,从DB1和DB2返回的数据包含从GTM查询的已分配的全局事务ID,则重新进行SELECT语句的执行,直至从DB1和DB2返回的数据不包含全局事务ID时,说明返回的数据不是插入或更新未完成的数据,事务SQL语句提取的数据是正确的数据,向客户端反馈分解SELECT成功执行的消息。
实施例5
本实施例以请求消息包含的事务SQL语句为SQL A语句,SQL A语句包含的内容为:insert into tableA...select....from tableB union select....from tableC,所涉及的表包括tableA、tableB和tableC。本实施例假设tableA的数据存放在数据库服务器1(简称DB1)和数据库服务器2(DB2);tableB的数据存放在数据库服务器3(DB3)和数据库服务器4(DB4),tableC的数据存放在数据库服务器5(DB5)。
SQL A语句需要访问DB1、DB2、DB3、DB4和DB5五个DB服务器,SQL A语句直接访问任何一个DB服务器均不对;
按照本实施例方法,将SQL A语句拆分成一条或一条以上在各个数据库服务器上执行的分解SQL语句。
本实例将事务SQL语句分解为分解SQL语句后,各分解SQL语句都可以在单个DB服务器上执行的,本实施例分解SQL语句为:
SQL 1:select....from tableB;
SQL 2:select....from tableC;
SQL 3:insert into tableA...(tableB union的结果集);根据tableB的数据存放在DB3和DB4上;tableA的数据存放在DB1和DB2;tableC的数据存放在DB5;因此执行各分解SQL语句时,将分解SQL语句分发到相应的数据库服务器执行数据库操作;
将SQL A语句中涉及到tableB和tableC的查询子句换成两个孩子节点的结果集,这样就可以在单DB服务器上执行。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请,如本发明实施方式中的具体的实现方法。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (9)

1.一种实现分布式事务的方法,其特征在于,包括:
分解来自客户端的请求消息中包含的事务结构化查询语言SQL语句,获得一条或一条以上可在单个数据库服务器上执行的分解SQL语句;
将获得的各个分解SQL语句根据涉及表的数据所在的数据库服务器分发到相应的数据库服务器;
根据事务SQL语句分解的所有所述分解SQL语句均执行完成确定分布式事务完成,所述事务SQL语句是指分布式事务中事务涉及的数据更新或操作的数据库执行指令。
2.根据权利要求1所述的方法,其特征在于,分解分布式事务包含的事务SQL语句具体包括:
确定事务SQL语句的类型后,基于数据操纵语言DML对各类型的所述事务SQL语句通过所涉及表的数据的分发策略进行分析,根据分析结果分解所述事务SQL语句为一条或一条以上可在单个数据库服务器执行的分解SQL语句。
3.根据权利要求1或2所述的方法,其特征在于,所述事务SQL语句的类型包括:
提取SELECT、和/或插入INSERT、和/或更新UPDATE、和/或删除DELETE、和/或模式数据定义语言DDL语句。
4.一种实现分布式事务的方法,其特征在于,包括:
各数据库服务器分别接收可在数据库服务器自身执行的分解SQL语句;
各数据库服务器执行接收到的分解SQL语句,并反馈执行结果至客户端;
所述分解SQL语句为事务SQL语句分解的可在单个数据库服务器上执行的语句,所述事务SQL语句是指分布式事务中事务涉及的数据更新或操作的数据库执行指令。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:
所述事务SQL语句为插入和/或更新时,在所述分解SQL语句涉及表的表项中预先设置事务标识表项,数据库服务器接收到所述分解SQL语句时,在预先设置的事务标识项中分配基于编号策略生成的全局事务ID;
数据库服务器执行完所述分解SQL语句时,释放分配给分解SQL语句的全局事务ID,并根据全局事务ID的释放确定所述分解SQL语句执行完成;
分解SQL语句为提取时,数据库服务器接收到所述分解SQL语句时,执行分解SQL语句返回数据,如果返回的数据不包含分配的所述全局事务ID,确定所述分解SQL语句执行完成;如果返回的数据包含分配的所述全局事务ID时,重新执行所述分解SQL语句直至返回的数据中不包含分配的所述全局事务ID时,确定所述分解SQL语句执行完成。
6.一种实现分布式事务的装置,其特征在于,包括:分解单元、分发单元和确定单元;其中,
分解单元,用于分解来自客户端的请求消息中包含的事务结构化查询语言SQL语句,获得一条或一条以上可在单个数据库服务器上执行的分解SQL语句;
分发单元,用于将获得的各个分解SQL语句根据涉及表的数据所在的数据库服务器分发到相应的数据库服务器;
确定单元,用于根据事务SQL语句分解的所有所述分解SQL语句均执行完成确定分布式事务完成,所述事务SQL语句是指分布式事务中事务涉及的数据更新或操作的数据库执行指令。
7.根据权利要求6所述的装置,其特征在于,所述分解单元具体用于,
对来自客户端的请求消息中包含的事务结构化查询语言SQL语句确定事务SQL语句的类型后,基于数据操纵语言DML对各类型的所述事务SQL语句通过所涉及表的数据的分发策略进行分析,根据分析结果分解所述事务SQL语句为一条或一条以上可在单个数据库服务器执行的分解SQL语句。
8.一种实现分布式事务的数据库服务器,其特征在于,包括接收单元和执行反馈单元;其中,
接收单元,用于接收可在数据库服务器自身执行的分解SQL语句;
执行反馈单元,执行接收到的分解SQL语句,并反馈执行结果至客户端;
所述分解SQL语句为事务SQL语句分解的可在单个数据库服务器上执行的语句,所述事务SQL语句是指分布式事务中事务涉及的数据更新或操作的数据库执行指令。
9.根据权利要求8所述的数据库服务器,其特征在于,所述执行反馈单元还用于,所述事务SQL语句为插入和/或更新时,
执行接收到的分解SQL语句时,在所述分解SQL语句涉及表的表项中预先设置事务标识表项,根据接收到所述分解SQL语句时,在预先设置的事务标识项中分配基于编号策略生成的全局事务ID;
执行完所述分解SQL语句时,释放分配给分解SQL语句的全局事务ID,并根据全局事务ID的释放确定所述分解SQL语句执行完成;
分解SQL语句为提取时,接收到所述分解SQL语句时,执行分解SQL语句返回数据,如果返回的数据不包含分配的所述全局事务ID,确定所述分解SQL语句执行完成;如果返回的数据包含分配的所述全局事务ID时,重新执行所述分解SQL语句直至返回的数据中不包含分配的所述全局事务ID时,确定所述分解SQL语句执行完成。
CN201510605556.8A 2015-09-21 2015-09-21 一种实现分布式事务的方法、装置及数据库服务器 Active CN106547781B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510605556.8A CN106547781B (zh) 2015-09-21 2015-09-21 一种实现分布式事务的方法、装置及数据库服务器
PCT/CN2016/081752 WO2017049911A1 (zh) 2015-09-21 2016-05-11 一种实现分布式事务的方法、装置及数据库服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510605556.8A CN106547781B (zh) 2015-09-21 2015-09-21 一种实现分布式事务的方法、装置及数据库服务器

Publications (2)

Publication Number Publication Date
CN106547781A CN106547781A (zh) 2017-03-29
CN106547781B true CN106547781B (zh) 2021-06-11

Family

ID=58364317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510605556.8A Active CN106547781B (zh) 2015-09-21 2015-09-21 一种实现分布式事务的方法、装置及数据库服务器

Country Status (2)

Country Link
CN (1) CN106547781B (zh)
WO (1) WO2017049911A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810268B2 (en) * 2017-12-06 2020-10-20 Futurewei Technologies, Inc. High-throughput distributed transaction management for globally consistent sharded OLTP system and method of implementing
CN108197277B (zh) * 2018-01-09 2023-02-14 福建星瑞格软件有限公司 一种统一的数据库管理查询方法以及装置
CN108551478B (zh) 2018-03-29 2020-12-18 中国银联股份有限公司 一种事务处理方法、服务器及事务处理系统
CN109918177B (zh) * 2019-02-19 2023-08-04 创新先进技术有限公司 分布式事务处理方法、装置及设备
CN112115012A (zh) * 2019-06-19 2020-12-22 中兴通讯股份有限公司 分布式数据库的事务监控方法及装置、系统、存储介质
CN112148725B (zh) 2019-06-26 2022-12-06 金篆信科有限责任公司 一种实现全局唯一索引的方法及装置
CN112988883B (zh) * 2019-12-16 2023-03-10 金篆信科有限责任公司 数据库的数据同步方法、装置以及存储介质
CN111427963A (zh) * 2020-04-15 2020-07-17 赞同科技股份有限公司 分布式数据库的数据访问方法及系统
CN114510530A (zh) * 2020-11-16 2022-05-17 天翼云科技有限公司 分布式数据库中数据操纵和数据恢复的方法
CN114143320A (zh) * 2021-09-01 2022-03-04 浪潮云信息技术股份公司 一种基于分布式数据库的数据网关方法及系统
CN114064810B (zh) * 2022-01-17 2022-05-03 北京奥星贝斯科技有限公司 处理事务的方法和装置
CN114519582B (zh) * 2022-02-21 2024-08-09 中国邮政储蓄银行股份有限公司 服务的预热方法、预热装置和服务系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163195B (zh) * 2010-02-22 2013-04-24 北京东方通科技股份有限公司 一种基于分布式、异构数据库统一视图的查询优化方法
CN104462497A (zh) * 2014-12-19 2015-03-25 深圳中兴网信科技有限公司 基于关系型数据库的跨库事务处理方法和系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2429910A1 (en) * 2003-05-27 2004-11-27 Cognos Incorporated System and method of query transformation
CN1307585C (zh) * 2003-12-31 2007-03-28 中兴通讯股份有限公司 一种用于实现数据库多表查询的数据处理方法
EP2740057A4 (en) * 2011-08-01 2015-09-09 Tagged Inc GENERAL RECONCILIATION IN A DISTRIBUTED DATABASE
CN102521254B (zh) * 2011-11-17 2013-04-10 广东电网公司电力科学研究院 异构数据库的统一访问方法
CN103942234A (zh) * 2013-01-21 2014-07-23 中国电信股份有限公司 对多个异构数据库操作的方法、中间件装置及系统
CN104793988B (zh) * 2014-01-20 2019-01-22 阿里巴巴集团控股有限公司 跨数据库分布式事务的实现方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163195B (zh) * 2010-02-22 2013-04-24 北京东方通科技股份有限公司 一种基于分布式、异构数据库统一视图的查询优化方法
CN104462497A (zh) * 2014-12-19 2015-03-25 深圳中兴网信科技有限公司 基于关系型数据库的跨库事务处理方法和系统

Also Published As

Publication number Publication date
CN106547781A (zh) 2017-03-29
WO2017049911A1 (zh) 2017-03-30

Similar Documents

Publication Publication Date Title
CN106547781B (zh) 一种实现分布式事务的方法、装置及数据库服务器
EP3120261B1 (en) Dependency-aware transaction batching for data replication
US10678808B2 (en) Eager replication of uncommitted transactions
CN105608086B (zh) 分布式数据库系统的事务处理方法及装置
US8639677B2 (en) Database replication techniques for maintaining original linear request order for asynchronous transactional events
US4881166A (en) Method for consistent multidatabase transaction processing
US7171413B2 (en) Two phase intermediate query security using access control
CN102103642B (zh) 基于oltp的数据删除方法、系统及图形数据库服务器
JP5259404B2 (ja) データベースフラグメントのクローン化および管理
US7853570B2 (en) Method and system for data processing with parallel database systems
CN105373566B (zh) 在线重建索引方法及装置
US11347933B1 (en) Distributed collaborative storage with operational transformation
CA2556979A1 (en) Ultra-shared-nothing parallel database
CN102193991A (zh) 基于oltp的数据修改方法、系统及图形数据库服务器
CN106354732B (zh) 一种支持并发协同的离线数据版本冲突解决方法
US9710532B2 (en) Method for avoiding conflicts in database cluster
US10621194B2 (en) Automated harmonization of data
CN112015722A (zh) 数据库管理方法、数据血缘分析方法以及相关装置
US20170017680A1 (en) Method for handling writes in database clusters with temporarily disjoint nodes
KR20200092095A (ko) 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
US10284649B2 (en) Distributed processing system
US11423003B2 (en) Optimistic concurrency control for database transactions
US10078680B2 (en) Method for streaming transactions in database cluster
WO2023124242A1 (zh) 事务执行方法、装置、设备和存储介质
WO2022127417A1 (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