CN106663062A - 在事务性中间件机器环境中提供分布式事务锁的***和方法 - Google Patents

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

Info

Publication number
CN106663062A
CN106663062A CN201480078478.4A CN201480078478A CN106663062A CN 106663062 A CN106663062 A CN 106663062A CN 201480078478 A CN201480078478 A CN 201480078478A CN 106663062 A CN106663062 A CN 106663062A
Authority
CN
China
Prior art keywords
hash
affairs
global transaction
lock
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480078478.4A
Other languages
English (en)
Other versions
CN106663062B (zh
Inventor
郑运荣
T·J·利特尔
E·A·黑伦
蔡继民
***
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN106663062A publication Critical patent/CN106663062A/zh
Application granted granted Critical
Publication of CN106663062B publication Critical patent/CN106663062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

在事务性中间件机器环境中提供分布式事务锁的***和方法
版权公告
本专利文档的公开的部分包含受到版权保护的素材。版权所有人不反对任何人对本专利文档或者本专利公开按照其在专利商标局的专利文件或记录中所表现的那样进行复制,但是在其他情况下无论如何都保留所有的版权。
技术领域
本发明一般而言涉及计算机***和软件,诸如中间件,并且具体涉及支持事务性中间件机器环境。
背景技术
事务性中间件***或面向事务的中间件包括能够处理组织内部各种事务的企业应用服务器。随着诸如高性能网络和多处理器计算机之类的新技术的发展,存在进一步提高事务性中间件的性能的需求。这是本发明的实施例旨在针对的一般领域。
发明内容
本文描述的是能够在事务性中间件机器环境中支持分布式事务锁的***和方法。***能够使用全局事务标识符在事务哈希表中定位哈希桶,其中事务哈希表包含多个哈希桶。然后,***能够上锁事务哈希表中的所述哈希桶,并且在所述哈希表被解锁之前仅允许一个进程存取事务表中的一个或多个全局事务条目结构,其中所述一个或多个事务条目结构与事务哈希表中的上锁哈希桶关联。
附图说明
图1示出了根据本发明实施例的事务性中间件机器环境中的共享存储器的图示。
图2示出了根据本发明实施例的支持事务锁机制的事务性中间件机器环境的图示。
图3示出了根据本发明实施例将条目加入到事务性中间件机器环境中的全局事务表(GTT)的图示。
图4示出了根据本发明实施例从事务性中间件机器环境中的全局事务表(GTT)删除条目的图示。
图5示出了根据本发明实施例在事务性中间件机器环境中支持粒度锁机制的图示。
图6图示了根据本发明实施例在事务性中间件机器环境中支持事务锁机制的示例性流程图。
具体实施方式
本文描述的是用于在事务性中间件机器环境中支持分布式事务锁的***和方法。
根据本发明的实施例,***包括高性能硬件(例如,64位处理器技术)、高性能大存储器以及冗余无限带宽(InfiniBand)与以太网联网的组合,同诸如WebLogic套件的应用服务器或中间件环境一起,提供完整的Java EE应用服务器复合体,其包括能够快速配置和能够按需求缩放的大量并联存储器内网格。根据实施例,***能够部署为全机架(rack)、半机架或四分之一机架或者其他配置,其提供应用服务器网格、储存区域网络和无限带宽(IB)网络。中间件机器软件能提供应用服务器、中间件和其他功能性,诸如例如,WebLogicServer、JRockit或者Hotpot JVM、Oracle Linux或Solaris和Oracle VM。根据实施例,***可以包括多个计算节点、IB交换网关和储存节点或单元,经由IB网络与彼此通信。当作为机架配置实现时,机架的未使用部分可以留空或者由填充物占据。
根据本发明的实施例,本文称为“Sun Oracle Exalogic”或“Exalogic”的***是用于托管中间件或者应用服务器软件(诸如,Oracle Middleware SW套件或WebLogic)的易于部署(easy-to-deploy)解决方案。如本文所述,根据实施例,***是“盒中网格”,其包括一个或多个服务器、储存单元、用于储存网络的IB组织和所有托管中间件应用所需要的其他部件。通过使用例如Real Application Clusters和Exalogic Open Storage来利用大量并联网格架构能够为中间件应用的所有类型实现显著的性能。***用线性I/O可扩展性实现提高的性能,易于使用和管理,并且实现关键任务(mission-critical)可用性和可靠性。
根据本发明的实施例,Tuxedo是软件模块的集合,其使能高性能、分布式商业应用的构建、执行和管理并且已经被多种多层应用开发工具用作事务中间件。Tuxedo是能够用于在分布式计算环境中管理分布式事务处理的中间件平台。其是用于解锁企业传统应用并且将它们推广至面向服务的架构同时实现无限制的可扩展性和基于标准的互操作性的已验证平台。
根据本发明的实施例,诸如Tuxedo***的事务性中间件***能够利用具有多个处理器的快速机器(诸如Exalogic中间件机器)和高性能网络连接(诸如IB网络)。
共享存储器和锁
图1示出了根据本发明实施例的事务性中间件机器环境中的共享存储器的图示。如图1所示,共享存储器数据结构110能够用于出于各种目的,诸如支持名称服务、事务管理和运行时控制,在事务性中间件机器环境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的不同部分的单个存取。另一方面,用户级信号量算法可能不能保证锁顺序(即,***可能不能保证锁被切换到最早请求者)。
此外,锁105能够是递归的,即,***允许相同进程重复地应用锁105。
优势是软件开发者不需要担心在任意给定时间特定的进程是持有(还是不持有)锁105。另外,软件开发者能够容易地将锁105改造成任何现有代码。
折中是锁105,其是巨大锁(giant-lock),可以用于以任意长度的时间段上锁大块代码。此外,软件开发者可以对应用只拥有粗粒度控制。例如,当应用程序中发生问题时,难以找出涉及锁105的根原因,因为锁105可能被应用了多次并且问题触发的位置可能在代码中距中止/死锁发生的地方很远。
此外,由于粗粒度,锁105可能例如在事务场景中创建和/或遭遇高竞争。锁105的粒度越粗,锁105可能例如在非相关进程停止/中止的可能性越高。
分布式事务锁
图2示出了根据本发明实施例的支持事务锁机制的事务性中间件机器环境的图示。如图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条目能够使用相同事务锁(即,相同事务哈希表锁)。为了实现的简单,***允许两个哈希值共享互斥量并且哈希互斥量能够放置在GTT中以避免创建额外的BB表。
根据本发明的实施例,除了事务表哈希桶213-214上的事务锁203-204之外,事务性中间件机器环境200还能够包括共享存储器上的锁205。
例如,在Tuxedo中,在分配事务表条目或解除其分配时、在增大GTRID计数器时和在增大TLOG当前页计数器时,能够持有与事务锁203-204分离的BB锁205。
此外,能够使用BB锁205保护控制结构,诸如TMGCTL和TMTLGCTL数据结构,因为这些控制结构上的操作不频繁。可替代地,允许TMGCTL和结构的每一个使用单独的锁也是可行的。
图3示出了根据本发明实施例将条目加入到事务性中间件机器环境中的全局事务表(GTT)的图示。
在步骤301,***能够上锁事务性中间件机器环境300中的共享存储器,例如,Tuxedo BB。此外,在步骤302,***能够创建新GTRID。另外,在步骤303,***能够基于新GTRID创建新GTT条目。此外,在步骤304,***能够将该GTT条目加入事务表,例如TuxedoTMGTEE表,以及在步骤305,***能够解锁共享存储器使得其他进程能够访问共享存储器。
然后,在步骤306,***能够定位事务哈希表中的哈希桶(例如,使用基于GTRID的哈希),以及在步骤307,***能够上锁事务哈希表中的该哈希桶。此外,在步骤308,***能够将GTT条目链接到事务哈希表中的该哈希桶,以及在步骤309,***能够解锁该哈希桶。
图4示出了根据本发明实施例从事务性中间件机器环境中的全局事务表(GTT)删除条目的图示。
在步骤401,***能够使用事务性中间件机器环境400中的GTRID定位事务哈希表中的哈希桶,以及在步骤402,***能够上锁事务哈希表中的哈希桶。此外,在步骤403,***能够从事务哈希表中的哈希桶解除GTT条目链接,以及在步骤404,***能够解锁事务哈希表中的哈希桶,使得其他进程能够再使用事务哈希表中的哈希桶。
然后,在步骤405,***能够上锁共享存储器。在步骤406,***能够在TMGTTE表中移除GTT条目,以及在步骤407中,***能够解锁共享存储器,使得其他进程能够访问共享存储器。
图5示出了根据本发明实施例在事务性中间件机器环境中支持粒度锁机制的图示。如图5所示,事务性中间件机器环境500中的共享存储器508能够包括多个事务相关部分,诸如事务哈希表501(包含多个哈希桶,例如,桶511-517)、事务表502(包含多个条目,例如,GTTE 521-525)、全局事务控制503和事务日志控制504。
此外,事务性中间件机器环境500允许进程(或线程)持有多个锁,包括共享存储器508上的锁507和控制结构(诸如,全局事务控制503和事务日志控制504)上的锁506。此外,能够有一个或多个事务锁,例如,哈希桶513上的事务锁505。
根据本发明的实施例,***能够采用粒度锁机制用于处理在不同进程使用多个锁时发生的锁依赖。
在Tuxedo中,BB锁507能够以交织方式用于不同地方。例如,在以下场景关注锁依赖。
当函数A持有BB锁时函数A能够调用函数B。然后,函数B可能再次上锁BB。此外,函数B能够(使用事务锁)存取GTTE并且调用函数C,函数C可以第三次上锁BB。
为了避免由单个进程(或线程)持有的各种锁之间的死锁,***能够对锁应用部分安排方案(partial ordering scheme)。例如,***能够基于范围或粒度安排不同锁。
如图5所示,具有最粗粒度的共享存储器508上的锁507能够被分配最低数字。另一方面,具有最细粒度的事务锁505能够被分配最高数字。此外,***能够在控制结构之间安排锁506。
***能够确保进程在任何给定时间仅能够上锁事务哈希表501中的一个哈希桶,即,当进程已经在一哈希桶上持有一个事务锁时,它不能上锁另一个哈希桶。因此,***能够避免事务锁之间的死锁(或被分配相同数字的锁)。
此外,进程可以仅被允许获得这样的锁,该锁具有的数字高于被分配给该进程已经持有的锁的所有数字中的最高数字。
例如,在Tuxedo中,持有BB锁的线程A能够持有事务锁,因为该事务锁被分配有高于分配给BB锁的数字的数字。另一方面,持有事务锁的线程B不可持有BB锁。线程B在持有BB锁之前必须首先释放事务锁,因为该事务锁分配有高于分配给BB锁的数字。
此外,线程A可以能够在事务锁由线程B释放后获得事务锁。在线程A完成和释放事务锁和BB锁之后,线程B可以能够获得两个锁并且没有死锁地进行到完成。
因此,***能够通过减少程序员可能无意地在***中的不同锁之间引入死锁的可能性而提高事务性能。
图6图示了根据本发明实施例在事务性中间件机器环境中支持事务锁机制的示例性流程图。如图6所示,在步骤601,***能够使用全局事务标识符定位事务哈希表中的哈希桶,其中事务哈希表包含多个哈希桶。然后,在步骤602,***能够上锁事务哈希表中的所述哈希桶,以及在步骤603,在所述哈希桶被解锁前,***仅允许一个进程存取事务表中的一个或多个全局事务条目结构,其中所述一个或多个全局事务条目结构与事务哈希表中该上锁的哈希桶关联。
本发明可以使用以下来实现:一个或多个传统的通用或专用数字计算机、计算设备、机器或者微处理器,包括一个或多个处理器、存储器和/或根据本发明的教导编程的计算机可读储存介质。如对软件领域的那些技术人员显然的,合适的软件编码能够由熟练的程序员基于本公开的教导而容易地准备。
在一些实施例中,本发明包括计算机程序产品,其是具有储存在其上/其中的指令的储存介质或计算机可读介质,所述指令能够用于编程计算机以执行本发明的任何过程。储存介质能够包括但不限于任意类型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘),ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米***(包括分子存储器IC),或适于储存指令和/或数据的任意类型的介质或设备。
本发明的前面的描述出于说明和描述的目的而提供。不是旨在是穷尽的或将本发明限制到公开的精确形式。对于本领域技术人员来说许多修改和变形是显然的。这些修改和变形包括所公开的特征的任何相关组合。所选和所述的实施例是为了最佳地说明本发明的原理及其实际应用,从而使得其他本领域技术人员能够理解本发明各种实施例并且理解适合预期特定使用的各种变形。旨在由以下权利要求和其等同物来限定本发明的范围。

Claims (20)

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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/076602 WO2015165077A1 (en) 2014-04-30 2014-04-30 System and method for providing distributed transaction lock in transactional middleware machine environment

Publications (2)

Publication Number Publication Date
CN106663062A true CN106663062A (zh) 2017-05-10
CN106663062B CN106663062B (zh) 2019-08-16

Family

ID=54355307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480078478.4A Active CN106663062B (zh) 2014-04-30 2014-04-30 在事务性中间件机器环境中提供分布式事务锁的***和方法

Country Status (6)

Country Link
US (1) US9389907B2 (zh)
EP (1) EP3138013B1 (zh)
JP (1) JP6397053B2 (zh)
KR (1) KR102206577B1 (zh)
CN (1) CN106663062B (zh)
WO (1) WO2015165077A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446203A (zh) * 2018-11-15 2019-03-08 郑州云海信息技术有限公司 一种实现数据加锁的方法及装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10091333B2 (en) 2014-04-28 2018-10-02 Oracle International Corporation System and method for supporting a bypass-domain model for across-domain messaging in a transactional middleware machine environment
US10235460B2 (en) * 2014-09-30 2019-03-19 Splunk Inc. Sharing configuration information for searches in data intake and query systems
US9922099B2 (en) 2014-09-30 2018-03-20 Splunk Inc. Event limited field picker
US9990423B2 (en) 2014-09-30 2018-06-05 Splunk Inc. Hybrid cluster-based data intake and query
US10747752B2 (en) * 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US9851920B2 (en) * 2015-11-30 2017-12-26 Nxp Usa, Inc. System and method for removing hash table entries
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10146696B1 (en) * 2016-09-30 2018-12-04 EMC IP Holding Company LLC Data storage system with cluster virtual memory on non-cache-coherent cluster interconnect
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107227A1 (en) * 2002-12-03 2004-06-03 International Business Machines Corporation Method for efficient implementation of dynamic lock-free data structures with safe memory reclamation
US20070005920A1 (en) * 2005-06-30 2007-01-04 Michael Bacon Hash bucket spin locks
CN101615203A (zh) * 2009-07-23 2009-12-30 中兴通讯股份有限公司 并发控制方法及装置
CN102037463A (zh) * 2008-02-26 2011-04-27 甲骨文国际公司 使用全局确认的提交进行分布式事务的基于日志的复制
US20130185270A1 (en) * 2012-01-13 2013-07-18 Oracle International Corporation Lock acceleration
CN103678553A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 基于共享内存设计的无线终端数据库构建方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0250224A (ja) * 1988-08-11 1990-02-20 Nec Corp テーブル排他制御方式
JP2924786B2 (ja) * 1996-04-26 1999-07-26 日本電気株式会社 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体
JPH10240553A (ja) * 1996-12-27 1998-09-11 N T T Data Tsushin Kk 分散型トランザクション処理システムのためのリソースの排他制御方式及び方法
EP0926608B1 (en) 1997-12-24 2004-03-10 Nortel Networks Limited Distributed persistent storage for intermittently connected clients
US6144983A (en) * 1998-06-09 2000-11-07 Oracle Corporation Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system
WO2003042816A2 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Entry locking for large data structures
US8571882B1 (en) * 2006-07-05 2013-10-29 Ronald J. Teitelbaum Peer to peer database
US7822927B1 (en) * 2007-05-14 2010-10-26 Emc Corporation Dynamically configurable reverse DNLC lookup
US8812555B2 (en) 2011-06-18 2014-08-19 Microsoft Corporation Dynamic lock-free hash tables

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107227A1 (en) * 2002-12-03 2004-06-03 International Business Machines Corporation Method for efficient implementation of dynamic lock-free data structures with safe memory reclamation
US20070005920A1 (en) * 2005-06-30 2007-01-04 Michael Bacon Hash bucket spin locks
CN102037463A (zh) * 2008-02-26 2011-04-27 甲骨文国际公司 使用全局确认的提交进行分布式事务的基于日志的复制
CN101615203A (zh) * 2009-07-23 2009-12-30 中兴通讯股份有限公司 并发控制方法及装置
US20130185270A1 (en) * 2012-01-13 2013-07-18 Oracle International Corporation Lock acceleration
CN103678553A (zh) * 2013-12-06 2014-03-26 上海寰创通信科技股份有限公司 基于共享内存设计的无线终端数据库构建方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446203A (zh) * 2018-11-15 2019-03-08 郑州云海信息技术有限公司 一种实现数据加锁的方法及装置

Also Published As

Publication number Publication date
JP2017515229A (ja) 2017-06-08
WO2015165077A1 (en) 2015-11-05
US9389907B2 (en) 2016-07-12
EP3138013B1 (en) 2019-02-27
US20150317183A1 (en) 2015-11-05
KR102206577B1 (ko) 2021-01-25
EP3138013A4 (en) 2017-09-13
CN106663062B (zh) 2019-08-16
JP6397053B2 (ja) 2018-09-26
EP3138013A1 (en) 2017-03-08
KR20160148672A (ko) 2016-12-26

Similar Documents

Publication Publication Date Title
CN106663062B (zh) 在事务性中间件机器环境中提供分布式事务锁的***和方法
Chen et al. Fast and general distributed transactions using RDMA and HTM
CN103827829B (zh) 在中间件机器环境中提供和管理用于多节点应用的消息队列的***及方法
CN106708975B (zh) 商品库存信息的处理方法及***
KR101928596B1 (ko) 분산 저장 환경에서의 비동기 복제 기법
CN103885986B (zh) 主备数据库同步的方法和装置
CN107608773B (zh) 任务并发处理方法、装置及计算设备
CN101189584B (zh) 内存页面管理
EP3238421B1 (en) System for high-throughput handling of transactions in data-partitioned, distributed, relational database management system
BRPI0809078A2 (pt) Memória transacional que utiliza gravações armazenadas em buffer e ordem de serialização reforçada
US9110851B2 (en) System and method for persisting transaction records in a transactional middleware machine environment
WO2023082537A1 (zh) 一种基于拟态数据库的网络操作***设计方法
US8468169B2 (en) Hierarchical software locking
Ghandeharizadeh et al. Design, implementation, and evaluation of write-back policy with cache augmented data stores
US20220413743A1 (en) Method and system for libfabric atomics-based lockless cluster-wide shared memory access api in a distributed system
CN113239098A (zh) 一种数据管理方法、计算机及可读存储介质
US20070130144A1 (en) Method and system for concurrent processing of list items
CN108351801A (zh) 多版本移除管理器
CN106471486B (zh) 用于在事务中间件机器环境中支持自适应自调整锁定机制的***和方法
CN109791541B (zh) 日志序列号生成方法、装置及可读存储介质
US10452638B2 (en) Atomically moving data elements between or within linked data structures having no support for atomic moves
CN105378686A (zh) 用于在高速缓存行中实现位阵列的方法和***
CN107395745A (zh) 一种分布式存储***数据分散存储实现方法
US20220391374A1 (en) Identifying resource lock ownership across a clustered computing environment
CN111400279B (zh) 数据操作方法、装置和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant