平码五不中公式规律
  • / 16
  • 下载费用:30 金币  

在事务性中间件机器环境中提供分布式事务锁的系统和方法.pdf

关 键 ?#21097;?/dt>
事务性 中间件 机器 环境 提供 分布式 事务 系统 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201480078478.4

申请日:

2014.04.30

公开号:

CN106663062A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 12/14申请日:20140430|||公开
IPC分类号: G06F12/14 主分类号: G06F12/14
申请人: 甲骨文国?#20351;?#21496;
发明人: 郑运荣; T·J·利特尔; E·A·黑伦; 蔡继民; 李向东
地址: 美国加利福尼亚
优?#28909;ǎ?/td>
专利代理机构: 中国国际贸?#29366;?#36827;委员会专利商标事务所 11038 代理人: 罗亚男
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201480078478.4

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

一种能够在事务性中间件机器环境中支持分布式事务锁的系统和方法。系统能够使用全局事务标识符定位事务哈希表中的哈希桶,其中事务哈希表包含多个哈希桶。然后,系统能够上锁事务哈希表中的所述哈希桶,以及在所述哈希桶解锁前仅允许一个进程存取事务表中的一个或多个全局事务条目结构,其中,所述一个或多个全局事务条目结构与事务哈希表中的上锁的事务桶关联。

权利要求书

1.一种用于在事务性中间件机器环境中支持分布式事务锁的方法,包括:
使用全局事务标识符定位事务哈希表中的哈希桶,其中,所述事务哈希表包含多个哈
希桶;
上锁所述事务哈希表中的所述哈希桶;以及
在所述哈希桶解锁前仅允许一个进程存取所述事务表中的一个或多个全局事务条目
结构,其中,所述一个或多个全局事务条目结构与所述事务哈希表中的上锁的事务桶关联。
2.如权利要求1所述的方法,还包括:
使用另一个全局事务标识符定位所述事务哈希表中的另一个哈希桶。
3.如权利要求2所述的方法,还包括:
允许另一个进程存取所述事务表中的另一个或多个全局事务条目结构,其中,所述另
一个或多个全局事务条目结构与所述事务哈希表中的所述另一个哈希桶关联。
4.如权利要求1所述的方法,还包括:
在共享存储器中包含所述事务哈希表和所述事务哈希表。
5.如权利要求4所述的方法,还包括:
上锁共享存储器;
创建新全局事务标识符和一个或多个新全局事务条目结构;
将所述一个或多个新全局事务条目结构加入所述事务表;以及
解锁共享存储器。
6.如权利要求5所述的方法,还包括:
上锁与所述新全局事务标识符关联的所述事务哈希表中的另一个哈希桶;
将所述一个或多个新全局事务条目结构与所述事务哈希表中的另一个哈希桶链接;以

解锁所述事务哈希表中的所述另一个哈希桶。
7.如权利要求4所述的方法,还包括:
解除所述一个或多个全局事务条目结构与所述事务哈希表中的所述哈希桶的链接;
解锁所述事务哈希表中的所述哈希桶;
上锁共享存储器;
移除所述事务表中的所述一个或多个全局事务条目结构;以及
解锁所述共享存储器。
8.如权利要求4所述的方法,还包括:
在所述共享存储器中包含全局事务控制结构和事务日志控制结构。
9.如权利要求8所述的方法,还包括:
为具有全局事务标识符的全局事务提供锁的集?#24076;?#20854;中,所述锁的集合包括所述共享
存储器上的锁、所述全局事务控制结构和所述事务日志控制结构上的锁,以及所述事务哈
希表中的哈希桶上的锁。
10.如权利要求1所述的方法,还包括:
在所述全局事务的所述锁的集合上应用部分安排方案以避免死锁。
11.一种用于在事务性中间件机器环境中支持分布式事务上锁机制的系统,包括:
一个或多个处理器;
运行在所述一个或多个处理器上的事务服务器,操作为
使用全局事务识别符定位事务哈希表中的哈希桶,其中,所述事务哈希表包含多个哈
希桶;
上锁所述事务哈希表中的所述哈希桶;以及
在所述哈希桶解锁前仅允许一个进程存取所述事务表中的一个或多个全局事务条目
结构,其中,所述一个或多个全局事务条目结构与所述事务哈希表中的上锁的事务桶关联。
12.如权利要求11所述的系统,其中:
所述事务服务器操作为使用另一个全局事务标识符定位所述事务哈希表中的另一个
哈希桶。
13.如权利要求12所述的系统,其中:
所述事务服务器允许另一个进程存取所述事务表中的另一个或多个全局事务条目结
构,其中,所述另一个或多个全局事务条目结构与所述事务哈希表中的所述另一个哈希桶
关联。
14.如权利要求11所述的系统,其中
共享存储器包含所述事务哈希表和所述事务哈希表。
15.如权利要求14所述的系统,其中:
事务服务器操作为
上锁所述共享存储器;
创建新全局事务标识符和一个或多个新全局事务条目结构;
将所述一个或多个新全局事务条目结构加入所述事务表;以及
解锁共享存储器。
16.如权利要求15所述的系统,其中:
所述事务服务器操作为
上锁与所述新全局事务标识符关联的所述事务哈希表中的另一个哈希桶;
将所述一个或多个新全局事务条目结构与所述事务哈希表中的所述另一个哈希桶链
接;以及
解锁所述事务哈希表中的所述另一个哈希桶。
17.如权利要求14所述的系统,其中:
所述事务服务器操作为
解除所述一个或多个全局事务条目结构与所述事务哈希表中的所述哈希桶的链接;
解锁所述事务哈希表中的所述哈希桶;
上锁共享存储器;
移除所述事务表中的所述一个或多个全局事务条目结构;以及
解锁所述共享存储器。
18.如权利要求14所述的系统,其中:
所述共享存储器包含全局事务控制结构和事务日志控制结构。
19.如权利要求18所述的系统,其中:
所述事务服务器操作为
为具有全局事务标识符的全局事务提供锁的集?#24076;?#20854;中,所述锁的集合包括所述共享
存储器上的锁、所述全局事务控制结构和所述事务日志控制结构上的锁以及所述事务哈希
表中哈希桶上的锁;以及
在所述全局事务的所述锁的集合上应用部分安排方案以避免死锁。
20.一种非瞬态机器可读储存介?#21097;?#20855;有储存在其上的指令,所述指令当被执行时使得
系统执行步骤,所述步骤包括:
使用全局事务标识符定位事务哈希表中的哈希桶,其中所述事务哈希表包含多个哈希
桶;
上锁所述事务哈希表中的所述哈希桶;以及
在所述哈希桶解锁前仅允许一个进程存取所述事务表中的一个或多个全局事务条目
结构,其中,所述一个或多个全局事务条目结构与所述事务哈希表中的上锁的事务桶关联。

说明书

在事务性中间件机器环境中提供分布式事务锁的系统和方法

版权公告

本专利文档的公开的部分包含受到版权保护的素材。版权所有人?#29615;?#23545;任何人对
本专利文档或者本专利公开按照其在专利商标局的专利文件或记录中所表现的那样进行
复制,但是在其他情况下无论如何都保留所有的版权。

?#38469;?#39046;域

本发明一般而言涉及计算机系统和软件,诸如中间件,并且具体涉及支持事务性
中间件机器环境。

背景?#38469;?br />

事务性中间件系统或面向事务的中间件包括能够处理组织内部各种事务的企业
应用服务器。随着诸如高性能网络和多处理器计算机之类的新?#38469;?#30340;发展,存在进一步提
高事务性中间件的性能的需求。这是本发明的实施例旨在针对的一般领域。

发明内容

本文描述的是能够在事务性中间件机器环境中支持分布式事务锁的系统和方法。
系统能够使用全局事务标识符在事务哈希表中定位哈希桶,其中事务哈希表包含多个哈希
桶。然后,系统能够上锁事务哈希表中的所述哈希桶,并且在所述哈希表被解锁之前仅允许
一个进程存取事务表中的一个或多个全局事务条目结构,其中所述一个或多个事务条目结
构与事务哈希表中的上锁哈希桶关联。

附图说明

图1?#22659;?#20102;根据本发明实施例的事务性中间件机器环境中的共享存储器的图示。

图2?#22659;?#20102;根据本发明实施例的支持事务锁机制的事务性中间件机器环境的图
示。

图3?#22659;?#20102;根据本发明实施例将条目加入到事务性中间件机器环境中的全局事务
表(GTT)的图示。

图4?#22659;?#20102;根据本发明实施例从事务性中间件机器环境中的全局事务表(GTT)删
除条目的图示。

图5?#22659;?#20102;根据本发明实施例在事务性中间件机器环境中支持粒度锁机制的图
示。

图6图示了根据本发明实施例在事务性中间件机器环境中支持事务锁机制的示例
性流程图。

具体实施方式

本文描述的是用于在事务性中间件机器环境中支持分布式事务锁的系统和方法。

根据本发明的实施例,系统包括高性能硬件(例如,64位处理器?#38469;?、高性能大存
储器以及冗余无限带宽(InfiniBand)与以太网联网的组?#24076;?#21516;诸如WebLogic套件的应用服
务器或中间件环境一起,提供完整的Java EE应用服务器复合体,其包括能够快速配置和能
够按需求缩放的大量并联存储器内网格。根据实施例,系统能够部署为全机架(rack)、半机
架或四分之一机架或者其他配置,其提供应用服务器网格、储存区域网络和无限带宽(IB)
网络。中间件机器软件能提供应用服务器、中间件和其他功能性,诸如例如,WebLogic
Server、JRockit或者Hotpot JVM、Oracle Linux或Solaris和Oracle VM。根据实施例,系统
可以包括多个计算节点、IB交换网关和储存节点或单元,经由IB网络与彼此通信。当作为机
架配置实现时,机架的未使用部分可以留空或者由填充物占据。

根据本发明的实施例,本文称为“Sun Oracle Exalogic”或“Exalogic”的系统是
用于托管中间件或者应用服务器软件(诸如,Oracle Middleware SW套件或WebLogic)的易
于部署(easy-to-deploy)解决方案。如本文所述,根据实施例,系统是“盒中网格?#20445;?#20854;包括
一个或多个服务器、储存单元、用于储存网络的IB组织和所有托管中间件应用所需要的其
他部件。通过使用例如Real Application Clusters和Exalogic Open Storage来利用大量
并联网格架构能够为中间件应用的所有类型实现显著的性能。系统用线性I/O可扩展性实
现提高的性能,易于使用和管理,并且实现关键任务(mission-critical)可用性和可靠性。

根据本发明的实施例,Tuxedo是软件模块的集?#24076;?#20854;使能高性能、分布式商业应用
的构建、执行和管理并且已经被多种多层应用开发工具用作事务中间件。Tuxedo是能够用
于在分布式计算环境中管理分布式事务处理的中间件平台。其是用于解锁企业传统应用并
且将它们推广至面向服务的架构同时实现无限制的可扩展性和基于标准的互操作性的已
验证平台。

根据本发明的实施例,诸如Tuxedo系统的事务性中间件系统能够利用具有多个处
理器的快速机器(诸如Exalogic中间件机器)和高性能网络连接(诸如IB网络)。

共享存储器和锁

图1?#22659;?#20102;根据本发明实施例的事务性中间件机器环境中的共享存储器的图示。
如图1所示,共享存储器数据结构110能够用于出于各种目的,诸如支持名?#21697;?#21153;、事务管理
和运行时控制,在事务性中间件机器环境100中维护信息。

例如,Tuxedo系统能够利用布告栏(BB),其是能够至少部分地被复制的分布式共
享存储器。此外,Tuxedo系统允许应用被划分成共享BB的合作的客户端和服务器进程的集
合。

如图1所示,共享存储器110能够包括多个事务相关部分,诸如,事务哈希表101、事
务表102、全局事务控制结构103和事务日志控制结构104。

事务表102能够包含多个全局事务条目结构121-125。例如,Tuxedo中的全局事务
表(GTT)102能够包括多个全局事务表条目(GTTE)121-125。全局事务条目结构的每一个能
够包含关于不同全局事务的共享信息。

事务哈希表101,例如Tuxedo中的全局事务哈希表,能够用于提供到全局事务表
102中不同条目的快速存取,其中能够基于全局事务标识符(GTRID)完成哈希。

全局事务控制结构103包含有关不同全局事务的各种控制信息。例如,Tuxedo中的
TMGCTL结构包含能够保证GTRID的独特性的时间和计数器值(与机器ID一起)。另外,TMGCTL
结构能够在新GTRID创建时使用。

事务日志控制结构104包含有关不同全局事务日志文件的各种控制信息。例如,
Tuxedo中的TMTLGCTL结构包含涉及事务日志(TLOG)文件的状态的信息,并且能够在TLOG文
件被更新时使用。

根据本发明的实施例,当多个进程或线程在共享存储器110上读取或写入数据时,
系统能够采用锁105避免脏读取和/或脏写入。锁105能够在进程(或线程)能够存取共享存
储器110时应用。因此,共享存储器110中的受保护数据在一个时间仅能由仅一个进程或线
程存取。

例如,在Tuxedo中,使用用户级信号量(semaphore)保护BB,该用户级信号量是比
由OS内核提供的信号量更快速的上锁机制。这个基于测试与设置(TAS)装配组件的用户信
号量能够确保在关键时段到BB的不同部分的单个存取。另?#29615;?#38754;,用户级信号量算法可能
不能保证锁顺序(即,系统可能不能保证锁被切换到最早请求者)。

此外,锁105能够是递归的,即,系统允许相同进程重复地应用锁105。

优势是软件开发者不需要担心在?#25105;?#32473;定时间特定的进程是持有(还是不持有)
锁105。另外,软件开发者能够容易地将锁105改造成任何现有代码。

折中是锁105,其是巨大锁(giant-lock),可以用于以?#25105;?#38271;度的时间段上锁大块
代码。此外,软件开发者可以对应用只拥有粗粒度控制。例如,当应用程序中发生问题时,难
以?#39029;?#28041;及锁105的根原因,因为锁105可能被应用了多次并且问题触发的位置可能在代码
中距中止/死锁发生的地方很远。

此外,由于粗粒度,锁105可能例如在事务场景中创建和/或遭遇高竞争。锁105的
粒度越?#37073;?#38145;105可能例如在非相关进程停止/中止的可能性越高。

分布式事务锁

图2?#22659;?#20102;根据本发明实施例的支持事务锁机制的事务性中间件机器环境的图
示。如图2所示,一个或多个事务锁203-204能够用在事务性中间件机器环境200中以提高事
务性能。

根据本发明的实施例,系统能够在事务哈希表201中的不同哈希桶(例如,桶211-
217)上应用分别的事务锁,用于存取全局事务表(GTT)202中的不同全局事务条目结构(例
如,GTTE 221-225)。每一个事务哈希链接能够使用能够基于用户级信号量的专用锁(例如,
事务锁203或204)。

例如,系统能够通过例如使用GTRID 210计算哈希函数来定位哈希桶213。此外,为
了操纵GTT条目213,系统能够上锁事务哈希表桶213。然后,系统能够解锁哈希表桶213并且
将锁203释放给可能想存取GTT条目222的另一个进程。

此外,系统能够使用GTRID 220定位哈希桶216。为了操纵GTT条目223,系统能够上
锁事务哈希表桶216。然后,系统能够解锁哈希表桶223并且将锁204释放给可能想存取GTT
条目223的另一个进程。

根据本发明的实施例,事务锁203-204能够是非递归的并且系统可以仅在需要时
或者在如实际一样短的时间段中试图持有事务锁203-204。

此外,为了快速知道进程目前是否持有事务哈希锁,系统能够给控制结构(例如,
Tuxedo RTE)增加事务锁标记。例如,在Tuxedo中,事务锁标记能够使软件开发者容易知道
在调用bblock()函数之前,是否需要解锁事务锁。另外,软件开发者能够确定地知道在请
求另一个事务锁之前应用是否持有事务锁。

根据本发明的实施例,事务哈希表锁的数量可以不是固定的并且能够是大的数。
例如,在Tuxedo中,GTT哈希表的大小能够是GTT的大小的两倍。

此外,如果两个或多个GTT条目落入相同哈希桶,那么不同的GTT条目能够使用相
同事务锁(即,相同事务哈希表锁)。为了实现的简单,系统允许两个哈希值共享互斥量并且
哈希互斥量能?#29615;?#32622;在GTT中以避免创建额外的BB表。

根据本发明的实施例,除了事务表哈希桶213-214上的事务锁203-204之外,事务
性中间件机器环境200还能够包括共享存储器上的锁205。

例如,在Tuxedo中,在分配事务表条目或解除其分配时、在增大GTRID计数器时和
在增大TLOG当前页计数器时,能够持有与事务锁203-204分离的BB锁205。

此外,能够使用BB锁205保护控制结构,诸如TMGCTL和TMTLGCTL数据结构,因为这
些控制结构上的操作不频繁。可替代地,允许TMGCTL和结构的每一个使用单独的锁也是可
行的。

图3?#22659;?#20102;根据本发明实施例将条目加入到事务性中间件机器环境中的全局事务
表(GTT)的图示。

在步骤301,系统能够上锁事务性中间件机器环境300中的共享存储器,例如,
Tuxedo BB。此外,在步骤302,系统能够创建新GTRID。另外,在步骤303,系统能够基于新
GTRID创建新GTT条目。此外,在步骤304,系统能够将该GTT条目加入事务表,例如Tuxedo
TMGTEE表,以及在步骤305,系统能够解锁共享存储器使得其他进程能?#29615;夢使?#20139;存储器。

然后,在步骤306,系统能够定位事务哈希表中的哈希桶(例如,使用基于GTRID的
哈希),以及在步骤307,系统能够上锁事务哈希表中的该哈希桶。此外,在步骤308,系统能
够将GTT条目链接到事务哈希表中的该哈希桶,以及在步骤309,系统能够解锁该哈希桶。

图4?#22659;?#20102;根据本发明实施例从事务性中间件机器环境中的全局事务表(GTT)删
除条目的图示。

在步骤401,系统能够使用事务性中间件机器环境400中的GTRID定位事务哈希表
中的哈希桶,以及在步骤402,系统能够上锁事务哈希表中的哈希桶。此外,在步骤403,系统
能够从事务哈希表中的哈希桶解除GTT条目链接,以及在步骤404,系统能够解锁事务哈希
表中的哈希桶,使得其他进程能够再使用事务哈希表中的哈希桶。

然后,在步骤405,系统能够上锁共享存储器。在步骤406,系统能够在TMGTTE表中
移除GTT条目,以及在步骤407中,系统能够解锁共享存储器,使得其他进程能?#29615;夢使?#20139;存
储器。

图5?#22659;?#20102;根据本发明实施例在事务性中间件机器环境中支持粒度锁机制的图
示。如图5所示,事务性中间件机器环境500中的共享存储器508能够包括多个事务相关部
分,诸如事务哈希表501(包含多个哈希桶,例如,桶511-517)、事务表502(包含多个条目,例
如,GTTE 521-525)、全局事务控制503和事务日志控制504。

此外,事务性中间件机器环境500允许进程(或线程)持有多个锁,包括共享存储器
508上的锁507和控制结构(诸如,全局事务控制503和事务日志控制504)上的锁506。此外,
能够有一个或多个事务锁,例如,哈希桶513上的事务锁505。

根据本发明的实施例,系统能够采用粒度锁机制用于处理在不同进程使用多个锁
时发生的锁?#35272;怠?br />

在Tuxedo中,BB锁507能够以交织方式用于不同地方。例如,在以下场景关注锁依
赖。

当函数A持有BB锁时函数A能够调用函数B。然后,函数B可能再次上锁BB。此外,函
数B能够(使用事务锁)存取GTTE并?#19994;?#29992;函数C,函数C可以第三次上锁BB。

为了避免由单个进程(或线程)持有的各种锁之间的死锁,系统能够对锁应用部分
安排方案(partial ordering scheme)。例如,系统能够基于?#27573;?#25110;粒度安排不同锁。

如图5所示,具有最粗粒度的共享存储器508上的锁507能够?#29615;?#37197;最低数字。另一
方面,具有最细粒度的事务锁505能够?#29615;?#37197;最高数字。此外,系统能够在控制结构之间安
排锁506。

系统能够确保进程在任何给定时间仅能够上锁事务哈希表501中的一个哈希桶,
即,当进程已经在一哈希桶上持有一个事务锁时,它不能上锁另一个哈希桶。因此,系统能
够避免事务锁之间的死锁(或?#29615;?#37197;相同数字的锁)。

此外,进程可以仅被允许获得这样的锁,该锁具有的数?#25351;?#20110;?#29615;?#37197;给该进程已
经持有的锁的所有数字中的最高数字。

例如,在Tuxedo中,持有BB锁的线程A能够持有事务锁,因为该事务锁?#29615;?#37197;有高
于分配给BB锁的数字的数字。另?#29615;?#38754;,持有事务锁的线程B不可持有BB锁。线程B在持有BB
锁之前必须首先释放事务锁,因为该事务锁分配有高于分配给BB锁的数字。

此外,线程A可以能够在事务锁?#19978;?#31243;B释放后获得事务锁。在线程A完成和释放事
务锁和BB锁之后,线程B可以能够获得两个锁并且没有死锁地进?#26800;?#23436;成。

因此,系统能够通过减少程序员可能无意地在系统中的不同锁之间引入死锁的可
能性而提高事务性能。

图6图示了根据本发明实施例在事务性中间件机器环境中支持事务锁机制的示例
性流程图。如图6所示,在步骤601,系统能够使用全局事务标识符定位事务哈希表中的哈希
桶,其中事务哈希表包含多个哈希桶。然后,在步骤602,系统能够上锁事务哈希表中的所述
哈希桶,以及在步骤603,在所述哈希桶被解锁前,系统仅允许一个进程存取事务表中的一
个或多个全局事务条目结构,其中所述一个或多个全局事务条目结构与事务哈希表中该上
锁的哈希桶关联。

本发明可以使用以下?#35789;迪郑?#19968;个或多个传统的通用或专用数字计算机、计算设
备、机器或者微处理器,包括一个或多个处理器、存储器和/或根据本发明的教导编程的计
算机可读储存介质。如对软件领域的那些?#38469;?#20154;员显然的,合适的软件编码能够由熟练的
程序员基于本公开的教导而容易地准备。

在一些实施例中,本发明包括计算机程序产品,其是具有储存在其上/其中的指令
的储存介质或计算机可读介?#21097;?#25152;述指令能够用于编程计算机以执行本发明的任何过程。
储存介质能够包括但不限于?#25105;?#31867;型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光
盘),ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储
器IC),或适于储存指令和/或数据的?#25105;?#31867;型的介质或设备。

本发明的前面的描述出于说明和描述的目的而提供。不是旨在是穷尽的或将本发
明限制到公开的精确形式。对于本领域?#38469;?#20154;员来说许多修改和变形是显然的。这些修改
和变形包括所公开的特征的任何相关组合。所选和所述的实施例是为了最佳地说明本发明
的原理及其实际应用,从而使得其他本领域?#38469;?#20154;员能够理解本发明各种实施例并且理解
适合预期特定使用的各种变形。旨在由以下权利要求和其等同物来限定本发明的?#27573;А?br />

关于本文
本文标题:在事务性中间件机器环境中提供分布式事务锁的系统和方法.pdf
链接地址:http://www.pqiex.tw/p-6091785.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 2009上证指数 股票融资买入 网上炒股 股票配资网站 股票投资 模拟炒股网 一只股票分析全面分析举例 炒股融资风险 股票涨跌的影响 太行水泥股东大会09年股票涨跌