[发明专利]一种处理分布式事务的方法和装置有效
申请号: | 201210198935.6 | 申请日: | 2012-06-14 |
公开(公告)号: | CN103514028A | 公开(公告)日: | 2014-01-15 |
发明(设计)人: | 李春雷 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 100089 北京市海淀区万*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 分布式 事务 方法 装置 | ||
技术领域
本发明涉及计算机领域,特别涉及一种处理分布式事务的方法和装置。
背景技术
X/Open组织(即现在的Open Group)定义了分布式事务处理模型。X/Open DTP(Distributed Transaction Processing,分布式事物处理)模型(1994)包括应用程序(AP)、事务管理器(TM)、资源管理器(RM)、通信资源管理器(CRM)四部分。一般,常见的事务管理器(TM)是交易中间件,常见的资源管理器(RM)是数据库,常见的通信资源管理器(CRM)是消息中间件。其中,事务(Transaction)是并发控制的单位,为用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个可以分割的工作单元。分布式事务处理是指一个事务可能涉及多个操作。
通常情况下,交易中间件与数据库通过XA接口规范(XA就是X/OpenDTP定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等),使用两阶段提交来完成一个全局事务,XA规范的基础是两阶段提交协议。
在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交指令后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于上锁状态)。如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中间件失败应答。
在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中间件将要求所有数据库做正式提交,这样该全局事务被提交。而如果有任一数据库预提交返回失败,交易中间件将要求所有其它数据库回滚其操作,这样该全局事务被回滚。
现有分布式事务技术存在如下缺陷:
从性能角度看,首先因为在现有技术中,一个事务中的各个操作通常是顺序执行的,因此事务的总持续时间通常是各实例操作时间之和,这样事务的响应时间就会大大增加。
其次,一般应用的事务都不大,单机操作时间也就几毫秒甚至不到1毫秒,一旦涉及到分布式事务,提交时节点(包括数据库和事务管理器)间的网络通信往返过程也为毫秒级别,对事务响应时间的影响也不可忽视。
由于事务持续时间延长,事务对相关资源的锁定时间也相应增加,从而可能严重增加了并发冲突,进而影响到系统吞吐率。
发明内容
本发明提供的一种处理分布式事务的方法和装置,以解决多个同类型事务的整体执行时间过长的问题。
本发明公开了一种处理分布式事务的方法,所述方法包括:
事务管理器依据应用启动事务;
事务协调器将事务拆分为多个任务,将各个事务的同类型的任务分配给同一个任务处理器,并依据任务执行顺序向相应任务处理器发送执行指示;
任务处理器对于接收到的执行指示对应的任务,依据执行时间将同类型的任务合并,通过资源适配器调用资源执行合并的任务,并将执行结果反馈给事务协调器;
事务协调器依据反馈的执行结果,通知事务管理器结束事务,或调用任务处理器回滚已经执行的任务,并在回滚完成后通知事务管理器结束事务。
较佳的,所述依据反馈的执行结果,通知事务管理器结束事务或调用任务处理器回滚已经执行的任务具体包括:
对于每个事务,在所述事务的所有任务的执行结果都为成功时,通知事务管理器结束所述事务,在所述事务的任何一个任务的执行结果为失败时,调用任务处理器回滚该事务已经执行的任务。
较佳的,在所述事务协调器调用任务处理器回滚已经执行的任务后还包括:
任务处理器接收到事务协调器发送的回滚指示后,根据回滚时间将待回滚的同类型任务进行合并,通过资源适配器对合并的任务进行回滚。
较佳的,所述依据执行时间将同类型的任务合并具体包括:
将执行时间在预设时长内的同类型任务进行合并。
较佳的,所述依据执行时间将同类型的任务合并具体包括:
将执行时间在预设时长内、数量在预设数值内的同类型任务进行合并。
较佳的,所述将执行时间在预设时长内、数量在预设数值内的同类型任务进行合并,通过资源适配器调用资源执行合并的任务具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210198935.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:耐磨环组件和泵送设备
- 下一篇:一种冷却系统