IP Library › Granted Patent US 8,930,323
Granted Patent B2
US 8,930,323 · App. 13/629,728 · Granted Jan 6, 2015

Transaction processing system, method, and program

Inventor: Hiroshi Horii (Tokyo, JP)
Assignee: International Business Machines Corporation
G06F17/30371G06F17/30362
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 8,930,323
App. No.
13/629,728
Granted
Jan 6, 2015
Kind
B2
Abstract

Using a KVS transaction processing mechanism, four lock states are managed. When a local transaction refers to and updates a map entry, the local transaction is graded up to a global transaction. Start processing as the global transaction is first performed to determine a transaction ID. A committed value, a value being updated, and a transaction ID being updated are then inserted into all map entries for which LX locks are being acquired at present. Another local transaction is then started for all map entries for which S locks are being acquired at present to acquire S locks. Next, the original local transaction is committed. As a result, the LX locks acquired are graded up to GX locks. After the termination of the global transaction as the waiting target, acquisition of S locks (GX locks) is tried as a global transaction.

Claims (52)

1. A method for distributing data to a plurality of servers on which data is accessed from a client computer, the method comprising:

placing, on each of the plurality of servers, a management table comprising a transaction ID and a value indicative of a state thereof, and a data table comprising a key value, a value, and a lock value;

determining a transaction ID on the client computer to start a global transaction;

starting a query local transaction on a server processing a local transaction among the plurality of servers;

running a query in the query local transaction about all values being referred to in the local transaction;

updating all values being updated in the local transaction to a combination of a value before being updated, a value being updated, and the transaction ID as a lock value on the data table; and

committing the local transaction;

wherein the step of starting the global transaction comprises:

causing the client computer to generate the transaction ID;

determining a server holding a management map representing a state of the global transaction based on the transaction ID; and

starting a local transaction for map entries on the management map representing the state of the global transaction to acquire a lock;

using the local transaction to change values of the map entries on the management map representing the state of the global transaction to Committed and to commit; and

changing data being updated to current data for all map entries updated in the global transaction and executing a step of deleting data being updated and transaction IDs to terminate the global transaction.

2. The method according to claim 1 , wherein the query local transaction is not committed at a point of committing the local transaction.

3. The method according to claim 1 , wherein the lock has an S lock indicative of being referred to by a global transaction or a local transaction, an LX lock indicative of being updated by a local transaction, and a GX lock indicative of being updated by a global transaction.

4. The method according to claim 1 , further comprising:

using the local transaction to change values of the map entries on the management map representing the state of the global transaction to Rollbacked and to commit; and

executing a step of deleting data being updated and transaction IDs on all map entries updated in the global transaction to terminate the global transaction.

5. A non-transitory computer program product for a distributed Key-Value Store (KVS) system distributing data to a plurality of servers on which the data is accessed from a client computer, the computer program product causing the distributed KVS system to execute:

placing, on each of the plurality of servers, a management table comprising a transaction ID and a value indicative of a state thereof, and a data table comprising a key value, a value, and a lock value;

determining a transaction ID on the client computer to start a global transaction;

starting a query local transaction on a server processing a local transaction among the plurality of servers;

running a query in the query local transaction about all values being referred to in the local transaction;

updating all values being updated in the local transaction to a combination of a value before being updated, a value being updated, and the transaction ID as a lock value on the data table; and

committing the local transaction;

causing the client computer to generate the transaction ID;

determining a server holding a management map representing a state of the global transaction based on the transaction ID; and

starting a local transaction for map entries on the management map representing the state of the global transaction to acquire a lock;

using the local transaction to change values of the map entries on the management map representing the state of the global transaction to Committed and to commit; and

changing data being updated to current data for all map entries updated in the global transaction and executing a step of deleting data being updated and transaction IDs to terminate the global transaction.

6. The computer program product according to claim 5 , wherein the query local transaction is not committed at a point of committing the local transaction.

7. The computer program product according to claim 5 , wherein the lock has an S lock indicative of being referred to by a global transaction or a local transaction, an LX lock indicative of being updated by a local transaction, and a GX lock indicative of being updated by a global transaction.

8. The computer program product according to claim 5 , further causing the distributed KVS system to execute:

using the local transaction to change values of the map entries on the management map representing the state of the global transaction to Rollbacked and to commit; and

executing a step of deleting data being updated and transaction IDs on all map entries updated in the global transaction to terminate the global transaction.

9. A system, having a processor and memory, for a distributed Key-Value Store (KVS system distributing data to a plurality of servers on which the data is accessed from a client computer, the system comprising:

means for placing, on each of the plurality of servers, a management table comprising a transaction ID and a value indicative of a state thereof, and a data table comprising a key value, a value, and a lock value;

means for determining a transaction ID on the client computer to start a global transaction;

means for starting a query local transaction on a server processing a local transaction among the plurality of servers;

means for running a query in the query local transaction about all values being referred to in the local transaction;

means for updating all values being updated in the local transaction to a combination of a value before being updated, a value being updated, and the transaction ID as a lock value on the data table;

means for committing the local transaction;

means for causing the client computer to generate the transaction ID;

means for determining a server holding a management map representing a state of the global transaction based on the transaction ID;

means for starting a local transaction for map entries on the management map representing the state of the global transaction to acquire a lock;

means for using the local transaction to change values of the map entries on the management map representing the state of the global transaction to committed and to commit; and

means for changing data being updated to current data for all map entries updated in the global transaction and executing a step of deleting data being updated and transaction IDs to terminate the global transaction.

10. The system according to claim 9 , wherein the query local transaction is not committed at a point of committing the local transaction.

11. The system according to claim 9 , wherein the lock has S lock indicative of being referred to by a global transaction or a local transaction, LX lock indicative of being updated by a local transaction, and GX lock indicative of being updated by a global transaction.

12. The system according to claim 9 , further comprising:

means for using the local transaction to change values of the map entries on the management map representing the state of the global transaction to Rollbacked and to commit; and

means for executing means for deleting data being updated and transaction IDs on all map entries updated in the global transaction to terminate the global transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2012
From: HORII, HIROSHI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029424/0200 →
Priority Claims (1)
JP 2011-218145 · Sep 30, 2011 · national
Continuity (1)
Related Publication 20130086018A1 · Apr 4, 2013