一种处理分布式事务的方法和装置制造方法及图纸

技术编号:9568851 阅读:125 留言:0更新日期:2014-01-16 02:27
本发明专利技术公开一种处理分布式事务的方法和装置,所述方法包括:事务管理器依据应用启动事务;事务协调器将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,并依据任务执行顺序向相应任务处理器发送执行指示;任务处理器对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器;事务协调器依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务,并在回滚完成后通知事务管理器结束事务。本发明专利技术能够解决多个同类型事务的整体执行时间过长的问题。

【技术实现步骤摘要】
一种处理分布式事务的方法和装置
本专利技术涉及计算机领域,特别涉及一种处理分布式事务的方法和装置。
技术介绍
X/Open组织(即现在的OpenGroup)定义了分布式事务处理模型。X/OpenDTP(DistributedTransactionProcessing,分布式事物处理)模型(1994)包括应用程序(AP)、事务管理器(TM)、资源管理器(RM)、通信资源管理器(CRM)四部分。一般,常见的事务管理器(TM)是交易中间件,常见的资源管理器(RM)是数据库,常见的通信资源管理器(CRM)是消息中间件。其中,事务(Transaction)是并发控制的单位,为用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个可以分割的工作单元。分布式事务处理是指一个事务可能涉及多个操作。通常情况下,交易中间件与数据库通过XA接口规范(XA就是X/OpenDTP定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等),使用两阶段提交来完成一个全局事务,XA规范的基础是两阶段提交协议。在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交指令后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于上锁状态)。如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中间件失败应答。在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中间件将要求所有数据库做正式提交,这样该全局事务被提交。而如果有任一数据库预提交返回失败,交易中间件将要求所有其它数据库回滚其操作,这样该全局事务被回滚。现有分布式事务技术存在如下缺陷:从性能角度看,首先因为在现有技术中,一个事务中的各个操作通常是顺序执行的,因此事务的总持续时间通常是各实例操作时间之和,这样事务的响应时间就会大大增加。其次,一般应用的事务都不大,单机操作时间也就几毫秒甚至不到1毫秒,一旦涉及到分布式事务,提交时节点(包括数据库和事务管理器)间的网络通信往返过程也为毫秒级别,对事务响应时间的影响也不可忽视。由于事务持续时间延长,事务对相关资源的锁定时间也相应增加,从而可能严重增加了并发冲突,进而影响到系统吞吐率。
技术实现思路
本专利技术提供的一种处理分布式事务的方法和装置,以解决多个同类型事务的整体执行时间过长的问题。本专利技术公开了一种处理分布式事务的方法,所述方法包括:事务管理器依据应用启动事务;事务协调器将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,并依据任务执行顺序向相应任务处理器发送执行指示;任务处理器对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器;事务协调器依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务,并在回滚完成后通知事务管理器结束事务。较佳的,所述依据反馈的执行结果,通知事务管理器结束事务或调用任务处理器回滚已经执行的任务具体包括:对于每个事务,在所述事务的所有任务的执行结果都为成功时,通知事务管理器结束所述事务,在所述事务的任何一个任务的执行结果为失败时,调用任务处理器回滚该事务已经执行的任务。较佳的,在所述事务协调器调用任务处理器回滚已经执行的任务后还包括:任务处理器接收到事务协调器发送的回滚指示后,根据回滚时间将待回滚的同类型任务进行合并,通过资源适配器对合并的任务进行回滚。较佳的,所述依据执行时间将同类型的任务合并具体包括:将执行时间在预设时长内的同类型任务进行合并。较佳的,所述依据执行时间将同类型的任务合并具体包括:将执行时间在预设时长内、数量在预设数值内的同类型任务进行合并。较佳的,所述将执行时间在预设时长内、数量在预设数值内的同类型任务进行合并,通过资源适配器调用资源执行合并的任务具体包括:当经过时间到达预设时长或待处理的同类型任务的数量到达预设数值时,将待处理的同类型任务进行合并,通过资源适配器调用资源执行合并的任务。较佳的,所述依据任务执行顺序向任务处理器发送执行指示具体包括:当执行顺序在先的任务完成后,向跟在所述完成的任务之后执行的任务所在的任务处理器发送处理该之后执行的任务的执行指示。较佳的,所述将执行结果反馈给事务协调器具体包括:对于合并处理中合并的每个任务,将合并后处理的结果作为所述任务对应的事务的所述任务的执行结果反馈给事务协调器。本专利技术还公开了一种处理分布式事务的装置,所述装置包括:事务管理器、事务协调器、多个任务处理器、资源适配器;所述事务管理器,用于依据应用启动事务;所述事务协调器,用于将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,依据任务执行顺序向相应的任务处理器发送执行指示;还用于依据任务处理器反馈的执行结果,通知事务管理器结束事务或调用任务处理器回滚已经执行的任务,并在回滚完成后通知所述事务管理器结束事务;所述任务处理器,用于对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器;所述资源适配器,用于调用资源。较佳的,所述事务协调器在依据反馈的执行结果,通知事务管理器结束事务或调用任务处理器回滚已经执行的任务时具体用于对于每个事务,在所述事务的所有任务的执行结果都为成功时,通知事务管理器结束所述事务,在所述事务的任何一个任务的执行结果为失败时,调用任务处理器回滚该事务已经执行的任务。本专利技术实施例的有益效果是:通过将多个同类型的事务的同类型任务合并后,统一调用资源进行处理,能够提高整体性能,提高整体效率,并减少交互次数,降低并发冲突的可能。附图说明图1为本专利技术处理分布式事务的方法的流程图;图2为本专利技术处理分布式事务的方法一具体实施方式的流程图;图3为本专利技术处理分布式事务的方法另一具体实施方式的流程图;图4为本专利技术处理分布式事务的方法实施例的流程图;图5为本专利技术处理分布式事务的装置的结构图;图6为本专利技术处理分布式事务的装置的实施例的示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。参见图1,为本专利技术处理分布式事务的方法的流程。所述方法包括如下步骤。步骤S100,事务管理器依据应用启动事务。步骤S200,事务协调器将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,并依据任务执行顺序向相应任务处理器发送执行指示。步骤S300,任务处理器对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器。步骤S400,事务协调器依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务,并在回滚完成后通本文档来自技高网
...
一种处理分布式事务的方法和装置

【技术保护点】
一种处理分布式事务的方法,其特征在于,所述方法包括:事务管理器依据应用启动事务;事务协调器将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,并依据任务执行顺序向相应任务处理器发送执行指示;任务处理器对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器;事务协调器依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务,并在回滚完成后通知事务管理器结束事务。

【技术特征摘要】
1.一种处理分布式事务的方法,其特征在于,所述方法包括:事务管理器依据应用启动事务;事务协调器将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,并依据任务执行顺序向相应任务处理器发送执行指示;任务处理器对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器;事务协调器依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务,并在回滚完成后通知事务管理器结束事务;在所述事务协调器调用任务处理器回滚已经执行的任务后还包括:任务处理器接收到事务协调器发送的回滚指示后,根据回滚时间将待回滚的同类型任务进行合并,通过资源适配器对合并的任务进行回滚。2.根据权利要求1所述的方法,其特征在于,所述依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务具体包括:对于每个事务,在所述事务的所有任务的执行结果都为成功时,通知事务管理器结束所述事务,在所述事务的任何一个任务的执行结果为失败时,调用任务处理器回滚该事务已经执行的任务。3.根据权利要求1所述的方法,其特征在于,所述依据执行时间将同类型的任务合并具体包括:将执行时间在预设时长内的同类型任务进行合并。4.根据权利要求1所述的方法,其特征在于,所述依据执行时间将同类型的任务合并具体包括:将执行时间在预设时长内、数量在预设数值内的同类型任务进行合并。5.根据权利要求4所述的方法,其特征在于,所述将执行时间在预设时长内、数量在预设数值内的同类型任务进行合并,通过资源适配器调用资源执行合并的任务具体包括:当经过时间到达预设时长或待处理的同类型任务的数量到达预设数值时,将待处理的同类型任务进行合并...

【专利技术属性】
技术研发人员:李春雷
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:

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

1