[发明专利]分布式事务提交方法和装置有效

专利信息
申请号: 201010604558.2 申请日: 2010-12-15
公开(公告)号: CN102073540A 公开(公告)日: 2011-05-25
发明(设计)人: 高磊;李春雷 申请(专利权)人: 北京新媒传信科技有限公司
主分类号: G06F9/46 分类号: G06F9/46;G06F15/173;G06F17/30
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 王莹
地址: 100089 北京市海淀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 分布式 事务 提交 方法 装置
【说明书】:

技术领域

发明涉及事务处理技术领域,特别涉及一种分布式事务提交方法和装置。

背景技术

事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。分布式事务处理是指一个事务可能涉及多个数据库操作,分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)。

在网络聊天系统中,用户数量巨大(上亿用户),需要将用户信息分别存储在不同的数据库中,数据的分布同时按照用户和业务来进行。例如有两个用户A和用户B,分别都有个人信息和好友信息,用户A的个人信息存储在用户数据库(UserDB)1中,用户B的个人信息存储在UserDB2中,用户A的好友信息存储在好友数据库(BuddyDB)1中,用户B的好友信息存储在BuddyDB2中,这就是分布式数据库。这些数据库可以是异构的,例如UserDB采用Sql Server,而BuddyDB采用的是MySql。

以网络聊天系统中添加好友这个应用为例对分布式事务进行说明,例如,用户A添加用户B为好友,如果用户B同意,则同时需要在用户A的BuddyDB1中加入用户B的信息和在用户B的BuddyDB2中添加用户A的信息,然后通知状态服务启动用户A对用户B在线状态的订阅及用户B对用户A在线状态的订阅,通知聊天客户端刷新好友列表显示。如果中间有某项工作出现异常,则后面的工作不需要再继续,整个事务回滚,保证了数据库的一致性、服务及客户端显示的一致性,上述整个过程为一个分布式事务。

X/Open(即现在的Open Group)组织的建立是为了向UNIX环境提供标准。它主要的目标是促进对UNIX语言、接口、网络和应用的开放式系统协议。X/Open组织定义了一个X/Open DTP(Distributed Transaction Processing,分布事务处理)模型包括应用程序、事务管理器、资源管理器、通信资源管理器四部分。一般,事务管理器是交易中间件,资源管理器是数据库,通信资源管理器是消息中间件。

XA协议是指由X/Open组织提出的作为资源管理器与事务管理器之间进行通信的接口标准的分布式交易处理规范。XA协议采用两阶段提交方式来管理分布式事务:

在第一阶段,交易中间件请求所有相关数据库准备提交(即预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(即处于锁定状态)。如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源的锁定,并返回给交易中间件失败应答。

在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中间件将要求所有数据库做正式提交,这样该全局事务被提交。而如果有任一数据库预提交返回失败,交易中间件将要求所有其它数据库回滚其操作,这样该全局事务被回滚。

XA协议采用两阶段提交,预提交做不到按照顺序执行,比如不能实现A先执行,A执行成功之后B、C才可以执行,B、C执行成功之后D才执行。

当组成分布式事务的事务分支很多时,XA协议的所有事务分支都会预提交,预提交效率很低,做不到及时结束事务及回滚,例如如果进行了预提交的事务A、B、C、D中的任一个预执行出错,则全部需要进行回滚。

XA协议中,组成分布式事务的各事务分支之间不能互相共享数据,比如,不能实现从A的执行结果中获取需要的数据才能执行B。

当处理异构数据库时,需要这些数据库都支持XA协议,但目前并不是所有的数据库都支持XA协议。而且现有的分布式事务处理方案并不支持同时进行数据库的更新及服务和客户端的更新。

综上所述,现有分布式事务提交方法具有下述缺陷:

1、不能按照顺序进行各个事务分支处理;

2、当组成分布式事务的事务分支很多时,分布式事务处理时效率很低,做不到及时结束事务及回滚;

3、组成分布式事务的各事务分支之间不能共享数据;

4、异构数据库必须都支持XA协议;

5、不支持同时进行数据库的更新及服务和客户端的更新。

发明内容

(一)要解决的技术问题

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010604558.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top