Decentralized transaction commit protocol
First Claim
1. A method, implemented at least in part by a first database system node comprising a processing unit and memory, the first database system node being in communication with at least a second and a third database system nodes, for facilitating database transaction processing within a database environment, the method comprising, at the first database system node:
- receiving a request to commit a first database transaction;
sending a request to the second database system node to precommit the first database transaction;
determining a synchronized transaction token, the synchronized transaction token representing a most recent commit state known to at least the first database system node and the second database system node;
assigning, based at least in part on the synchronized transaction token, a first transaction token to the first database transaction;
sending the first transaction token to the second database system node;
committing the first database transaction;
acknowledging the commit of the first database transaction to a database client;
receiving a request from the third database system node to precommit a second database transaction; and
adding, to a precommit log stored in persistent storage at the first database system node, a precommit log entry for the second database transaction, the precommit log entry for the second database transaction comprising an indication that the third database system node coordinates the commit of the second database transaction;
wherein the first database system node acts as a coordinator node for the first database transaction and as a worker node for the second database transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
Technologies are described for facilitating transaction processing within a database environment having first, second, and third database system nodes. In the database system, the first database system node receives from the second database system node a request to precommit a first database transaction. The first database system node stores information for the first database transaction that includes an indication that the second database system node coordinates the committing of the first database transaction. The first database system node receives from the third database system node a request to precommit a second database transaction. The first database system node stores information for the second database transaction that includes an indication that the third database system node coordinates the committing of the second database transaction.
-
Citations
21 Claims
-
1. A method, implemented at least in part by a first database system node comprising a processing unit and memory, the first database system node being in communication with at least a second and a third database system nodes, for facilitating database transaction processing within a database environment, the method comprising, at the first database system node:
-
receiving a request to commit a first database transaction; sending a request to the second database system node to precommit the first database transaction; determining a synchronized transaction token, the synchronized transaction token representing a most recent commit state known to at least the first database system node and the second database system node; assigning, based at least in part on the synchronized transaction token, a first transaction token to the first database transaction; sending the first transaction token to the second database system node; committing the first database transaction; acknowledging the commit of the first database transaction to a database client; receiving a request from the third database system node to precommit a second database transaction; and adding, to a precommit log stored in persistent storage at the first database system node, a precommit log entry for the second database transaction, the precommit log entry for the second database transaction comprising an indication that the third database system node coordinates the commit of the second database transaction; wherein the first database system node acts as a coordinator node for the first database transaction and as a worker node for the second database transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A server comprising a processing unit and memory, wherein the server is configured to operate a first database system node of a database system, the first database system node being in communication with one or more other database system nodes, wherein the server is further configured to perform database transaction processing comprising:
-
coordinating, as the first database system node, a commit process for a first database transaction according to a transaction commit protocol, wherein the first database system node acts as coordinator node and each of the one or more other database system nodes involved in the commit act as worker node during the commit process for the first database transaction, the coordinating comprising; sending a request to at least a second database system node to precommit a first database transaction; and determining a synchronized transaction token, the synchronized transaction token representing a most recent commit state known to at least the first database system node and the second database system node; and participating, as the first database system node, in a commit process for a second database transaction according to the transaction commit protocol, wherein the first database system node acts as worker node and one of the one or more other database system nodes acts as coordinator node during the commit process for the second database transaction, the participating comprising; receiving a request from a third database system node, which can be the second database system node, to precommit a second transaction; adding, to a precommit log, a precommit log entry that comprises an indication that the third database system node coordinates the commit of the second database transaction; precommitting the second transaction; and sending a current value of a location transaction token maintained by the first database system node to the third database system node. - View Dependent Claims (15, 16, 17, 18)
-
-
19. One or more tangible computer-readable media storing computer-executable instructions for causing a server programmed thereby to perform database transaction processing within a database environment using data manipulation language (DML) statements, the server implementing a first database system node of a database system, the first database system node being in communication with at least a second and a third database system nodes, the database transaction processing comprising:
-
receiving a request to precommit a first database transaction from the second database system node; storing transaction information for the first database transaction, including adding, to a precommit log stored in persistent storage at the first database system node, a first precommit log entry that comprises an indication that the second database system node coordinates committing the first database transaction; precommitting the first database transaction; sending an indication of the precommitting to the second database system node; receiving a request to precommit a second database transaction from the third database system node; storing transaction information for the second database transaction, including adding, to the precommit log, a second precommit log entry that comprises an indication that the third database system node coordinates committing the second database transaction; precommitting the second database transaction; and sending an indication of the precommitting of the second database transaction to the third database system node. - View Dependent Claims (20, 21)
-
Specification