Method of commitment in a distributed database transaction
First Claim
1. A method for determining commitment of a distributed transaction in a distributed database system, said distributed transaction including an owner and a helper, comprising:
- running an interval coordinator;
running a plurality of coservers, the owner associated with a first coserver and the helper associated with a second coserver;
associating each of said coservers with a transaction log;
sending from the interval coordinator to each of the coservers a succession of interval messages, said interval messages representing a succession of temporal periods;
flushing the transaction log associated with said coserver to non-volatile storage in response to receiving one of said interval messages;
maintaining a state in each of the coservers identifying a most recently received interval message;
transmitting a closure message from each of the coservers to the interval coordinator after that coserver flushes its associated transaction log;
transmitting a request message from the owner to the helper identifying an operation in said distributed transaction for said second coserver to execute;
transmitting a completion message from the helper to the owner upon execution of the operation, said completion message including a tag identifying the most recently received interval message of said second coserver;
after receiving said completion message, transmitting an eligibility message for the transaction from the owner to the interval coordinator;
after receiving the eligibility message from the owner and a closure message from the helper, writing a commit state for the transaction to stable storage; and
after writing the commit state, sending from the interval coordinator to the owner and helper a commit message for the transaction.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for committing a distributed transaction in a distributed database system. The database system includes an interval coordinator, a plurality of database server programs, called coservers, and at least one transaction log. More than one coserver can operate on a single computer or node, and the coservers could share a transaction log. The interval coordinator sends each coserver a succession of interval messages, and each coserver flushes its associated transaction log to non-volatile storage in response. After flushing its transaction log, each coserver transmits a closure message to the interval coordinator. The coservers maintain a state which identifies the most recently received interval message. Each distributed transaction includes an owner and a non-owner, or helper. For a transaction, the owner transmits a request message to the helper identifying an operation in the distributed transaction for the coserver to execute. Upon execution of the operation, the coserver transmits a completion message to the owner with a tag identifying the most recently received interval message. After receiving said completion message, the owner transmits an eligibility message for the transaction to the interval coordinator. Then the interval coordinator writes a commit state for the transaction to stable storage. Then the interval coordinator sends the owner and helper a commit message for the transaction.
284 Citations
9 Claims
-
1. A method for determining commitment of a distributed transaction in a distributed database system, said distributed transaction including an owner and a helper, comprising:
-
running an interval coordinator; running a plurality of coservers, the owner associated with a first coserver and the helper associated with a second coserver; associating each of said coservers with a transaction log; sending from the interval coordinator to each of the coservers a succession of interval messages, said interval messages representing a succession of temporal periods; flushing the transaction log associated with said coserver to non-volatile storage in response to receiving one of said interval messages; maintaining a state in each of the coservers identifying a most recently received interval message; transmitting a closure message from each of the coservers to the interval coordinator after that coserver flushes its associated transaction log; transmitting a request message from the owner to the helper identifying an operation in said distributed transaction for said second coserver to execute; transmitting a completion message from the helper to the owner upon execution of the operation, said completion message including a tag identifying the most recently received interval message of said second coserver; after receiving said completion message, transmitting an eligibility message for the transaction from the owner to the interval coordinator; after receiving the eligibility message from the owner and a closure message from the helper, writing a commit state for the transaction to stable storage; and after writing the commit state, sending from the interval coordinator to the owner and helper a commit message for the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program for committing a distributed transaction in a distributed database system, said distributed transaction including an owner and a helper, said computer program tangibly stored on a computer-readable medium, comprising instructions for causing a computer system to:
-
run an interval coordinator; run a plurality of coservers, the owner associated with a first coserver and the helper associated with a second coserver; associate said coservers with at least one transaction log; send from the interval coordinator to each of the coservers a succession of interval messages; flush the transaction log to non-volatile storage in response to receiving one of said interval messages; maintain a state in each of the coservers identifying a most recently received interval message; transmit a closure message from each of the coservers to the interval coordinator after flushing the transaction log; transmit a request message from the owner to the helper identifying an operation in said distributed transaction for said second coserver to execute; transmit a completion message from the helper to the owner upon execution of the operation, said completion message including a tag identifying the most recently received interval message of said second coserver; after receiving said completion message, transmit an eligibility message for the transaction from the owner to the interval coordinator; after receiving the eligibility message from the owner and a closure message from the helper, write a commit state for the transaction to stable storage; and after writing the commit state, send from the interval coordinator to the owner and helper a commit message for the transaction.
-
Specification