一种通过引脚桥接实现全局事务分布式处理方法技术

技术编号:22501997 阅读:27 留言:0更新日期:2019-11-09 02:33
本发明专利技术提供一种通过引脚桥接实现全局事务分布式处理方法,包括下列步骤:S1:客户端通过客户端驱动器生成一个全局唯一的事务引脚,然后将带上此引脚信息的语句发给协调器做分布式语句解析;S2:协调器对语句进行解析,制定分布式执行计划;S3:客户端驱动器获得分布式执行计划。并行访问数据库节点要求执行事务语句;S4:节点数据库按照本地事务的处理过程进行数据库操作处理;S5:客户端向协调器发起提交请求;S6:协调器根据附带的引脚信息进行检索;S7:协调器处理客户端和数据库节点间的提交过程;S8:协调器根据引脚信息返回结果给客户端驱动器,进一步反馈给客户端应用程序,全局事务过程结束。

A distributed processing method of global transaction through pin Bridge

The invention provides a method for realizing global transaction distributed processing through pin bridge, which comprises the following steps: S1: the client generates a globally unique transaction pin through the client driver, and then sends the statement with the pin information to the coordinator for distributed statement analysis; S2: the coordinator analyzes the statement and makes the distributed execution plan; S3: the client driver The actuator obtains the distributed execution plan. Parallel access to the database node requires the execution of transaction statements; S4: the node database performs database operation processing in accordance with the local transaction processing process; S5: the client initiates a submission request to the coordinator; S6: the coordinator retrieves based on the attached pin information; S7: the coordinator processes the submission process between the client and the database node; S8: the coordinator returns the node based on the pin information If it is fed back to the client driver and the client application, the global transaction process ends.

【技术实现步骤摘要】
一种通过引脚桥接实现全局事务分布式处理方法
本专利技术涉及一种分布式数据库系统的事务一致性实现方法,尤其是涉及一种通过引脚桥接实现全局事务分布式处理方法。
技术介绍
关系型的数据库系统必须支持事务的ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。对一个分布式的数据库而言,系统是由多个数据库节点组成,一个事务可能需要在多个节点上执行,这种事务被称为全局事务;在节点本地执行的事务叫本地事务。全局性事务的原子性和一致性要求事务涉及到数据库节点要么全部执行成功,要么全部不执行。但是,一个节点在执行本地事务的时候无法知道其他节点的本地事务执行结果,因此也就不知道本次全局事务究竟是否全部成功还是需要回滚。为了解决这一问题,X/Open组织定义分布式事务处理模型,引入了事务管理器(TX),定义了事务管理器和数据库之间的接口规范,用来保证分布式事务的开始、结束以及提交、回滚等。XA接口函数由数据库厂商自己实现和提供。X/A规范虽然解决了全局事务的一致性问题,但是传统的实现方法存在两个问题:1)事务的访问需要经过事务管理器(TX)来进行,那么在高并发、大数据量的情况下事务管理器(TX)容易成为整个分布式数据库系统的瓶颈所在;2)数据库访问多了一层事务管理器处理,延时更高,性能更低,整体效率变低了。
技术实现思路
本专利技术提供了一种通过引脚桥接实现全局事务分布式处理方法,用于解决上述提到的高并发及大数据量情况下事务管理器(TX)瓶颈问题以及数据库访问效率低的问题,通过优化的X/A规范实现方法,可以降低事务管理器(TX)的访问压力,同时提高分布式数据库的访问效率。其技术方案如下所述:一种通过引脚桥接实现全局事务分布式处理方法,包括下列步骤:S1:执行一个分布式全局事务语句时,客户端通过客户端驱动器生成一个全局唯一的事务引脚,然后将语句发给协调器做分布式语句解析,同时会带上此引脚信息;S2:协调器对语句进行解析,如果语句解析正确,协调器根据自己管理的节点信息和数据分布信息对语句进一步分析,制定出该语句的分布式执行计划,并将此分布式执行计划反馈给客户端驱动器,同时协调器也会记录本次事务的引脚信息以及本次分布式执行计划;S3:客户端驱动器获得分布式执行计划后,知道了语句需要在哪些数据库节点执行,并行访问这些数据库节点要求执行事务语句,同时会附带上本次事务的引脚信息;S4:节点数据库收到客户端驱动器的数据库访问请求后,把本次请求当作一个本地事务,按照本地事务的处理过程进行数据库操作处理,同时会记录下引脚信息,使得全局事务变成在多个数据库节点上独立执行的本地事务,但记录有相同的引脚信息;S5:在节点数据库上执行完毕,如果有任何一个节点执行报错,客户端收到报错信息后在每个节点都进行事务回滚,本次事务失败,事务结束;如果没有执行报错,客户端通过客户端驱动器获得本次全局事务在数据库节点上都正确执行的消息后,整个分布式事务进入下一个步骤,即事务提交步骤,在这个阶段的开始,客户端向协调器发起提交请求;S6:协调器收到客户端驱动器的全局事务提交请求,根据附带的引脚信息检索全局事务的分布式执行计划信息,知道本次全局事务有哪些数据库节点参加以及所作的工作;S7:协调器构建一个保持事务管理器和事务相关数据库节点之间一致性的全局唯一事务ID,然后按照X/A规范定义的两阶段提交或三阶段提交标准处理和数据库节点间的提交过程;S8:协调器和数据库节点之间的提交完成后,协调器根据引脚信息返回结果给客户端驱动器,客户端驱动器进一步反馈给客户端应用程序,全局事务过程结束。进一步的,步骤S1中,如果一个事务包含多条语句,需要在多个不同分布式数据库节点上执行,这些语句都使用相同的引脚信息。进一步的,步骤S2中,协调器对语句进行解析,看是否是一个符合SQL语句规范分布式数据库语句,如果不是则返回错误信息给客户端驱动器,客户端捕捉并处理错误信息,全局事务中止。进一步的,步骤S2中,当事务包含多条语句时,协调器对每条语句都会做解析,解析正确,则根据自己管理的节点信息和数据分布信息对语句进一步分析,制定出该语句的分布式执行计划,并将此分布式执行计划反馈给客户端驱动器,同时协调器也会记录本次事务的引脚信息以及本次分布式执行计划。进一步的,步骤S5中的进行回滚操作如下:任何一个数据库节点上的本地事务,如果执行发生错误被客户端驱动器捕捉并反馈给上层应用程序后,如果客户端执行回滚操作,那么客户端驱动器会向本次全局事务相关的所有执行节点,所有执行语句下达回滚指令,业务终止;如果客户端通过客户端驱动器收到全局事务相关的每个数据库节点上的本地事务语句都执行成功的反馈,客户端会向协调器发起全局事务提交操作,同时会附带上本次事务的引脚信息。并且,如果一个事务是由相同的语句重复执行,只是每次执行操作的数据对象不同构成时,为了提高效率,会采取批量执行一次提交的模式,这些语句每次重复执行都是使用同一个分布式执行计划,在批量操作结束前客户端不会再去请求协调器解析,批量操作变成了客户端驱动器和数据节点间的直接交互过程。在这种模式下无论语句重复执行多少次,客户端只会和协调器发生一次交互解析,提高了效率,降低了协调器的压力。协调器支持双活或者多活,功能保持一致,互相之间进行数据同步,事务的引脚信息在多个协调器里同时保存,当一台协调器出现故障后客户端驱动器可以切换到另外一台进行访问,应用程序没有感知。所述引脚为数据库内部标注分布式事务唯一ID,和两阶段提交时候为保持事务一致性生成XID不同,引脚在事务一开始即产生(XID在事务提交时候才生成),贯穿事务开始到结束的始终,并且在客户端、协调器,分布式数据库节点上都会保存,如同在每个设备节点上都装上一个针脚并在逻辑互相连接起来,这样无论在那个设备上都能识别出大家是否来自同一个事务。所述通过引脚桥接实现全局事务分布式处理方法具有以下优点:1)在分布式数据库全局事务的处理过程中,除了第一次需要获得节点数据分布信息外,客户端驱动器对本地事务的访问请求不经过事务管理器(本专利技术中为协调器)而是直接访问节点数据库,降低了对事务管理器(TX)的访问压力;当全局事务提交的时候事务管理器(TX)再继续参与;2)因为客户端应用通过驱动器可以直接访问数据库节点,语句交互效率大幅提升;3)特别地,当一个全局事务涉及到批量操作一次提交的时候也只需要从事务管理器(本专利技术中为协调器)获得一次节点数据分布信息,在全局事务提交之前,批量操作的每一步都是客户端驱动器和数据库节点之间的直接访问,可以更加显著地降低事务管理器的压力和提升系统效率。附图说明图1是分布式数据库关系图;图2是全局事务语句分析及执行关系图;图3是全局事务提交关系图;图4是通过引脚桥接后的完整关系图。具体实施方式本专利技术提供了一种通过引脚桥接实现全局事务分布式处理方法,其运行架构包括以下几部分:客户端和客户端驱动器:客户端即数据库应用访问程序,按照客户端驱动器提供的数据库访问接口访问数据库;客户端驱动器为客户端的数据库应用访问程序屏蔽了数据库访问细节,提供和协调器的交互以及和分布式数据库节点的交互,生成唯一的全局事务引脚;协调器:除了具本文档来自技高网...

【技术保护点】
1.一种通过引脚桥接实现全局事务分布式处理方法,包括下列步骤:S1:执行一个分布式全局事务语句时,客户端通过客户端驱动器生成一个全局唯一的事务引脚,然后将语句发给协调器做分布式语句解析,同时会带上此引脚信息;S2:协调器对语句进行解析,如果语句解析正确,协调器根据自己管理的节点信息和数据分布信息对语句进一步分析,制定出该语句的分布式执行计划,并将此分布式执行计划反馈给客户端驱动器,同时协调器也会记录本次事务的引脚信息以及本次分布式执行计划;S3:客户端驱动器获得分布式执行计划后,知道了语句需要在哪些数据库节点执行,并行访问这些数据库节点要求执行事务语句,同时会附带上本次事务的引脚信息;S4:节点数据库收到客户端驱动器的数据库访问请求后,把本次请求当作一个本地事务,按照本地事务的处理过程进行数据库操作处理,同时会记录下引脚信息,使得全局事务变成在多个数据库节点上独立执行的本地事务,但记录有相同的引脚信息;S5:在节点数据库上执行完毕,如果有任何一个节点执行报错,客户端收到报错信息后在每个节点都进行事务回滚,本次事务失败,事务结束;如果没有执行报错,客户端通过客户端驱动器获得本次全局事务在数据库节点上都正确执行的消息后,整个分布式事务进入下一个步骤,即事务提交步骤,在这个阶段的开始,客户端向协调器发起提交请求;S6:协调器收到客户端驱动器的全局事务提交请求,根据附带的引脚信息检索全局事务的分布式执行计划信息,知道本次全局事务有哪些数据库节点参加以及所作的工作;S7:协调器构建一个保持事务管理器和事务相关数据库节点之间一致性的全局唯一事务ID,然后按照X/A规范定义的两阶段提交或三阶段提交标准处理和数据库节点间的提交过程;S8:协调器和数据库节点之间的提交完成后,协调器根据引脚信息返回结果给客户端驱动器,客户端驱动器进一步反馈给客户端应用程序,全局事务过程结束。...

【技术特征摘要】
1.一种通过引脚桥接实现全局事务分布式处理方法,包括下列步骤:S1:执行一个分布式全局事务语句时,客户端通过客户端驱动器生成一个全局唯一的事务引脚,然后将语句发给协调器做分布式语句解析,同时会带上此引脚信息;S2:协调器对语句进行解析,如果语句解析正确,协调器根据自己管理的节点信息和数据分布信息对语句进一步分析,制定出该语句的分布式执行计划,并将此分布式执行计划反馈给客户端驱动器,同时协调器也会记录本次事务的引脚信息以及本次分布式执行计划;S3:客户端驱动器获得分布式执行计划后,知道了语句需要在哪些数据库节点执行,并行访问这些数据库节点要求执行事务语句,同时会附带上本次事务的引脚信息;S4:节点数据库收到客户端驱动器的数据库访问请求后,把本次请求当作一个本地事务,按照本地事务的处理过程进行数据库操作处理,同时会记录下引脚信息,使得全局事务变成在多个数据库节点上独立执行的本地事务,但记录有相同的引脚信息;S5:在节点数据库上执行完毕,如果有任何一个节点执行报错,客户端收到报错信息后在每个节点都进行事务回滚,本次事务失败,事务结束;如果没有执行报错,客户端通过客户端驱动器获得本次全局事务在数据库节点上都正确执行的消息后,整个分布式事务进入下一个步骤,即事务提交步骤,在这个阶段的开始,客户端向协调器发起提交请求;S6:协调器收到客户端驱动器的全局事务提交请求,根据附带的引脚信息检索全局事务的分布式执行计划信息,知道本次全局事务有哪些数据库节点参加以及所作的工作;S7:协调器构建一个保持事务管理器和事务相关数据库节点之间一致性的全局唯一事务ID,然后按照X/A规范定义的两阶段提交或三阶段提交标准处理和数据库节点间的提交过程;S8:协调器和数据库节点之间的提交完成后,协调器根据引脚信息返回结果给客户端驱动器,客户端驱动器进一步反馈给客户端应用程序,全局事务过程结束。2.根据权利要求1所述的通过引脚桥接实现全局事务分布式处理方法,其特征在于:步骤S1中,如果一个事务包含多条语句,需要在多个不同分布式数据库节点上执行,这些语句都使用相同的引脚信息。3.根据权利要求1所述的通过引脚桥接实现全局事...

【专利技术属性】
技术研发人员:骆彬
申请(专利权)人:北京快立方科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1