Tentative-hold-based protocol for distributed transaction processing
First Claim
1. A method comprising:
- receiving information regarding an atomic distributed transaction, the atomic distributed transaction representing an aggregation of a plurality of discrete transactions for resource items that span a plurality of network resources;
placing a tentative hold on each of the plurality of resource items by causing a tentative hold record to be created and associated with each of the plurality of discrete transactions, the tentative holds operating in a non-mutually exclusive manner, thereby allowing the same resource item to be tentatively held by more than one transaction; and
after successfully gaining the tentative holds on each of the plurality of resource items and receiving a confirmation regarding the atomic distributed transaction, attempting to direct the completion of the atomic distributed transaction by conventional means.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatus and methods are provided for a tentative-hold-based protocol for distributed transaction processing. According to one embodiment, a distributed transaction coordinator receives information regarding an atomic distributed transaction representing an aggregation of multiple discrete transactions for resource items that span two or more network resources. The distributed transaction coordinator places a tentative hold on each of the resource items by causing a tentative hold record to be created and associated with each of the discrete transactions. The tentative holds operate in a non-mutually exclusive manner, thereby allowing the same resource item to be tentatively held by more than one transaction. Finally, after successfully gaining the tentative holds on each of the resource items and receiving a confirmation from the user regarding the atomic distributed transaction, the distributed transaction manager attempts to direct the completion of the atomic distributed transaction by conventional means (e.g., by employing the 2PC protocol, Microsoft Transaction Service (MTS), IBM'"'"'s CICS, BEA Tuxedo, or other existing transaction completion mechanism).
149 Citations
23 Claims
-
1. A method comprising:
-
receiving information regarding an atomic distributed transaction, the atomic distributed transaction representing an aggregation of a plurality of discrete transactions for resource items that span a plurality of network resources;
placing a tentative hold on each of the plurality of resource items by causing a tentative hold record to be created and associated with each of the plurality of discrete transactions, the tentative holds operating in a non-mutually exclusive manner, thereby allowing the same resource item to be tentatively held by more than one transaction; and
after successfully gaining the tentative holds on each of the plurality of resource items and receiving a confirmation regarding the atomic distributed transaction, attempting to direct the completion of the atomic distributed transaction by conventional means. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
receiving information regarding a distributed transaction from an originating application, the distributed transaction involving a plurality of items spanning a plurality of network resources; and
initiating a tentative-hold processing stage by requesting that a plurality of resource managers residing on one or more remote servers and participating in the distributed transaction each tentatively hold an item of the plurality of items involved in the distributed transaction and store call back information identifying a return communication path to the originating application, the tentative hold records operating in a non-mutually exclusive manner, thereby allowing items associated with the one or more remote servers to be tentatively held by more than one application. - View Dependent Claims (7, 8)
-
-
9. A method comprising:
-
receiving, from a first client, a first request associated with a first discrete transaction, the first request soliciting a non-mutually exclusive hold on a resource item;
the resource item being part of a first atomic distributed transaction that spans a plurality of network resources;
maintaining a first non-mutually exclusive hold on the resource item until an exclusive lock is obtained on the resource item or for a predetermined amount of time, whichever occurs first, by causing a first tentative hold record to be created and associated with the resource item and initiating a first timeout associated with the first tentative hold record;
receiving, from a second client, a second request associated with a second discrete transaction, the second request soliciting a non-mutually exclusive hold on the resource item, the resource item being part of a second atomic distributed transaction;
maintaining a second non-mutually exclusive hold on the resource item until an exclusive lock is obtained on the resource item or for a predetermined amount of time, whichever occurs first, by causing a second tentative hold record to be created and associated with the resource item and initiating a second timeout associated with the second tentative hold record;
receiving, from the first client, a third request associated with the first discrete transaction, the third request asking that completion of the first discrete transaction commence; and
responsive to the third request, suspending the second non-mutually exclusive hold and granting an exclusive lock on the resource item to the first discrete transaction. - View Dependent Claims (10, 11, 12, 14, 15, 17, 18, 19)
-
-
13. A distributed transaction processing system comprising:
-
a distributed transaction coordinator executing on a first client system, the distributed transaction coordinator to place non-mutually exclusive holds on each of a plurality of resource items associated with an atomic distributed transaction that spans a plurality of network resources and to commence completion of the atomic distributed transaction by obtaining exclusive locks on each of the plurality of resource items after non-mutually exclusive holds have been successfully granted on each of the plurality of resource items; and
a distributed transaction manager executing on a server system communicatively coupled with a plurality of client systems including the first client system, the distributed transaction manager to maintain a plurality of non-mutually exclusive holds for each of a plurality of resource items associated with the server system and to grant only one exclusive lock per single resource item of the plurality of resource items at a given time in response to requests from distributed transaction coordinators.
-
-
16. A machine-readable medium having stored thereon data representing sequences of instructions, the sequences of instructions which, when executed by a processor, cause the processor to:
-
receive information regarding an atomic distributed transaction, the atomic distributed transaction representing an aggregation of a plurality of discrete transactions for individual resource items that span a plurality of network resources;
place a tentative hold on each of the plurality of individual resource items by causing a tentative hold record to be created and associated with each of the plurality of discrete transactions, the tentative holds operating in a non-mutually exclusive manner, thereby allowing the same resource item to be tentatively held by more than one interested party; and
after successfully gaining the tentative holds on each of the plurality of individual resource items and receiving a confirmation regarding the atomic distributed transaction, attempt to direct the completion of the atomic distributed transaction by conventional means.
-
-
20. A machine-readable medium having stored thereon data representing sequences of instructions, the sequences of instructions which, when executed by a processor, cause the processor to:
-
receive, from a first client, a first request associated with a first discrete transaction, the first request soliciting a non-mutually exclusive hold on a resource item;
the resource item being part of a first atomic distributed transaction that spans a plurality of network resources;
maintain a first non-mutually exclusive hold on the resource item until an exclusive lock is obtained on the resource item or for a predetermined amount of time, whichever occurs first, by causing a first tentative hold record to be created and associated with the resource item and initiating a first timeout associated with the first tentative hold record;
receive, from a second client, a second request associated with a second discrete transaction, the second request soliciting a non-mutually exclusive hold on the resource item, the resource item being part of a second atomic distributed transaction;
maintain a second non-mutually exclusive hold on the resource item until an exclusive lock is obtained on the resource item or for a predetermined amount of time, whichever occurs first, by causing a second tentative hold record to be created and associated with the resource item and initiating a second timeout associated with the second tentative hold record;
receive, from the first client, a third request associated with the first discrete transaction, the third request asking that completion of the first discrete transaction commence; and
responsive to the third request, suspend the second non-mutually exclusive hold and grant an exclusive lock on the resource item to the first discrete transaction. - View Dependent Claims (21, 22, 23)
-
Specification