IP Library › Granted Patent US 9,389,907
Granted Patent B2
US 9,389,907 · App. 14/362,096 · Granted Jul 12, 2016

System and method for providing a distributed transaction lock in a transactional middleware machine environment

Inventors: Todd J. Little (Palatine, IL); Edward A. Heeren (Berkeley Heights, NJ); Jimin Cai (Beijing, CN); Xiangdong Li (Beijing, CN); Yunrong Zheng (Beijing, CN)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F9/467G06F17/3033G06F17/30362G06F17/30371
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,389,907
App. No.
14/362,096
Granted
Jul 12, 2016
Kind
B2
Abstract

A system and method can support a distributed transaction lock in a transactional middleware machine environment. The system can use a global transaction identifier to locate a hash bucket in a transaction hash table, wherein the transaction hash table contains a plurality of hash buckets. Then, the system can lock said hash bucket in the transaction hash table, and allow only one process to access one or more global transaction entry structures in the transaction table before said hash bucket is unlocked, wherein said one or more global transaction entry structures are associated with the locked hash bucket in the transaction hash table.

Claims (71)

1. A method for supporting a distributed transaction lock in a transactional middleware machine environment, comprising:

using a global transaction identifier to locate a hash bucket in a transaction hash table, wherein the transaction hash table contains a plurality of hash buckets;

locking said hash bucket in the transaction hash table; and

allowing only one process to access one or more global transaction entry structures in the transaction table before said hash bucket is unlocked, wherein said one or more global transaction entry structures are associated with the locked hash bucket in the transaction hash table.

2. The method of claim 1 , further comprising:

using another global transaction identifier to locate another hash bucket in the transaction hash table.

3. The method of claim 2 , further comprising:

allowing another process to access another one or more global transaction entry structures in the transaction table, wherein said another one or more global transaction entry structures are associated with said another hash bucket in the transaction hash table.

4. The method of claim 1 , further comprising:

containing said transaction hash table and said transaction hash table in a shared memory.

5. The method of claim 4 , further comprising:

locking the shared memory,

creating a new global transaction identifier and one or more new global transaction entry structures,

adding said one or more new global transaction entry structures into the in the transaction table, and

unlocking the shared memory.

6. The method of claim 5 , further comprising:

locking another hash bucket in the transaction hash table that is associated with the new global transaction identifier,

linking said one or more new global transaction entry structures with said another hash bucket in the transaction hash table, and

unlocking said another hash bucket in the transaction hash table.

7. The method of claim 4 , further comprising:

delinking said one or more global transaction entry structures with said hash bucket in the transaction hash table,

unlocking said hash bucket in the transaction hash table,

locking the shared memory,

removing said one or more global transaction entry structures in the transaction table, and

unlocking the shared memory.

8. The method of claim 4 , further comprising:

containing a global transaction control structure and a transaction log control structure in the shared memory.

9. The method of claim 8 , further comprising:

providing a set of locks for a global transaction with a global transaction identifier, wherein the set of locks include a lock on the shared memory, a lock on the global transaction control structure and the transaction log control structure, and a lock on a hash bucket in the transaction hash table.

10. The method of claim 1 , further comprising:

applying a partial ordering scheme on the set of locks for the global transaction to avoid deadlock.

11. A system for providing a distributed transaction locking mechanism in a transactional middleware machine environment, comprising:

one or more processors;

a transactional server, running on the one or more processors, operate to

use a global transaction identifier to locate a hash bucket in a transaction hash table, wherein the transaction hash table contains a plurality of hash buckets;

lock said hash bucket in the transaction hash table; and

allowing only one process to access one or more global transaction entry structures in the transaction table before said hash bucket is unlocked, wherein said one or more global transaction entry structures are associated with the locked hash bucket in the transaction hash table.

12. The system of claim 11 , wherein:

the transactional server operates to use another global transaction identifier to locate another hash bucket in the transaction hash table.

13. The system of claim 12 , wherein:

the transactional server allows another process to access another one or more global transaction entry structures in the transaction table, wherein said another one or more global transaction entry structures are associated with said another hash bucket in the transaction hash table.

14. The system of claim 11 , wherein:

a shared memory contains said transaction hash table and said transaction hash table.

15. The system of claim 14 , wherein:

the transactional server operate to

lock the shared memory,

create a new global transaction identifier and one or more new global transaction entry structures,

add said one or more new global transaction entry structures into the in the transaction table, and

unlock the shared memory.

16. The system of claim 15 , wherein:

the transactional server operate to

lock another hash bucket in the transaction hash table that is associated with the new global transaction identifier,

link said one or more new global transaction entry structures with said another hash bucket in the transaction hash table, and

unlock said another hash bucket in the transaction hash table.

17. The system of claim 14 , wherein:

the transactional server operate to

delink said one or more global transaction entry structures with said hash bucket in the transaction hash table,

unlock said hash bucket in the transaction hash table,

lock the shared memory,

remove said one or more global transaction entry structures in the transaction table, and

unlock the shared memory.

18. The system of claim 14 , wherein:

the shared memory contains a global transaction control structure and a transaction log control structure.

19. The system of claim 18 , wherein:

the transactional server operate to

provide a set of locks for a global transaction with a global transaction identifier, wherein the set of locks include a lock on the shared memory, a lock on the global transaction control structure and the transaction log control structure, and a lock on a hash bucket in the transaction hash table, and

apply a partial ordering scheme on the set of locks for the global transaction to avoid deadlock.

20. A non-transitory machine readable storage medium having instructions stored thereon that when executed cause a system to perform the steps comprising:

using a global transaction identifier to locate a hash bucket in a transaction hash table, wherein the transaction hash table contains a plurality of hash buckets;

locking said hash bucket in the transaction hash table; and

allowing only one process to access one or more global transaction entry structures in the transaction table before said hash bucket is unlocked, wherein said one or more global transaction entry structures are associated with the locked hash bucket in the transaction hash table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2014
From: LITTLE, TODD J.; HEEREN, EDWARD A.; CAI, JIMIN; LI, XIANGDONG; ZHENG, YUNRONG
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 033002/0051 →
Continuity (1)
Related Publication 20150317183A1 · Nov 5, 2015