Transaction support for distributed data
First Claim
1. A method comprising:
- receiving a transaction from a client device, the transaction including a sequence of data operations for a plurality of data components;
adding one or more data operations to the transaction;
for each of the data operations;
identifying one or more records associated with the data operation;
locking the one or more identified records;
identifying one of the plurality of data components to process the data operation;
transmitting the data operation to the identified data component;
receiving a reply from the identified data component, the reply including information used to undo or redo the data operation; and
writing the data operation and the information from the reply to a log;
after receiving replies for each data operation, determining whether each data operation has been made stable;
transmitting a command to each of the plurality of data components to indicate that the data operations are permitted to be written to stable storage when it has been determined that each of the data operations have been made stable;
writing a transaction commit record to the log;
releasing any locks on the identified records;
committing the transaction after each of the data operations of the transaction and the commit record have been determined to be stable; and
transmitting a committed transaction reply to the client device to indicate that the transaction has been committed.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed system with transaction support may have a transaction component and one or more data components. The transaction component may manage a transaction using a log sequence number for each operation, and then transmit operations to one or more data components with log sequence numbers. The data components may perform the data operations in an idempotent manner and return a reply. The transaction component may then write the operation, its log sequence number, and information from the reply message to its log. The transaction component is able to commit a transaction, as well as retry or undo portions of a transaction, by using the information stored on its log. This may be possible even when a single transaction uses multiple data components, which may be located on different devices or manage separate and independent data sources.
36 Citations
20 Claims
-
1. A method comprising:
-
receiving a transaction from a client device, the transaction including a sequence of data operations for a plurality of data components; adding one or more data operations to the transaction; for each of the data operations; identifying one or more records associated with the data operation; locking the one or more identified records; identifying one of the plurality of data components to process the data operation; transmitting the data operation to the identified data component; receiving a reply from the identified data component, the reply including information used to undo or redo the data operation; and writing the data operation and the information from the reply to a log; after receiving replies for each data operation, determining whether each data operation has been made stable; transmitting a command to each of the plurality of data components to indicate that the data operations are permitted to be written to stable storage when it has been determined that each of the data operations have been made stable; writing a transaction commit record to the log; releasing any locks on the identified records; committing the transaction after each of the data operations of the transaction and the commit record have been determined to be stable; and transmitting a committed transaction reply to the client device to indicate that the transaction has been committed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
at least one data component comprising; a processor; a storage system; and a data component manager that; receives data operation requests comprising data operations; processes the data operation requests; and returns a reply; at least one transaction component comprising; a processor; and a transaction component manager that; receives a transaction from a client device, the transaction including a sequence of data operations; adds one or more data operations to the transaction; for each of the data operations; identifies one or more records associated with the data operation; locks the one or more identified records; transmits a data operation request comprising the data operation to the data component; receives a reply from the data component, the reply including information used to undo or redo the data operation; and writes the data operation and the information from the reply to a log; after receiving replies for each data operation, determines whether each data operation has been made stable; transmits a command to the data component to indicate that the data operations are permitted to be written to stable storage when it has been determined that each of the data operations have been made stable; writes a transaction commit record to the log; releases any locks on the identified records; commits the transaction after the data operations of the transaction and the commit record have been determined to be stable; and transmits a committed transaction reply to the client device to indicate that the transaction has been committed. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system comprising:
a transaction component comprising; a processor; a session manager configured to operate on the processor, the session manager that establishes an authenticated session with a client device; and a transaction component manager that; receives from the client device a transaction having a plurality of data operations, each data operation to be performed on one of a plurality of data components; adds one or more data operations to the transaction; for each of the data operations; identifies one or more records associated with the data operation; locks the one or more identified records; identifies one of the plurality of data components to process the data operation; transmits the data operation to the identified data component; receives a reply from the identified data component, the reply including information used to undo or redo the data operation; and writes the data operation and the information from the reply to a log; after receiving replies for each data operation, determines whether each data operation has been made stable; transmits a command to the plurality of data components to indicate that the data operations are permitted to be written to stable storage when it has been determined that each of the data operations have been made stable; writes a transaction commit record to the log; releases any locks on the identified records; commits the transaction after the data operations of the transaction and the commit record have been determined to be stable; and transmits a committed transaction reply to the client device to indicate that the transaction has been committed. - View Dependent Claims (16, 17, 18, 19, 20)
Specification