Method, System, and Program for Merging Log Entries From Multiple Recovery Log Files
First Claim
1. A method for determining changes caused by a single transaction and transaction order when transaction changes are recorded in multiple database recovery logs containing log entries in support of a two-phase commit protocol, comprising:
- recording in the log entries pursuant to the two-phase commit protocol a globally unique transaction identifier for each transaction, wherein multiple log entries in multiple database recovery logs that correspond to one transaction have a same globally unique transaction identifier;
maintaining in the log entries pursuant to the two-phase commit protocol a causally ordered, ascending timestamp value;
for each of the multiple database recovery logs, marking identically all the log entries related to a single transaction with a mark unique to the single transaction in a given one of the database recovery logs; and
identifying global changes for the single transaction from the log entries in the multiple database recovery logs based on the marking and the globally unique transaction identifier for each transaction by reading log entries based on the causally ordered, ascending timestamp value.
1 Assignment
0 Petitions
Accused Products
Abstract
A globally unique transaction identifier for each transaction is recorded in log entries pursuant to a two-phase commit protocol, wherein multiple log entries in multiple database recovery logs that correspond to one transaction have a same globally unique transaction identifier. A causally ordered, ascending timestamp value is maintained in the log entries pursuant to the two-phase commit protocol. For each of the multiple database recovery logs, all the log entries related to a single transaction are marked identically with a mark unique to the single transaction in a given one of the database recovery logs. Global changes are identified for the single transaction from the log entries in the multiple database recovery logs based on the marking and the globally unique transaction identifier for each transaction by reading log entries based on the causally ordered, ascending timestamp value.
-
Citations
31 Claims
-
1. A method for determining changes caused by a single transaction and transaction order when transaction changes are recorded in multiple database recovery logs containing log entries in support of a two-phase commit protocol, comprising:
-
recording in the log entries pursuant to the two-phase commit protocol a globally unique transaction identifier for each transaction, wherein multiple log entries in multiple database recovery logs that correspond to one transaction have a same globally unique transaction identifier;
maintaining in the log entries pursuant to the two-phase commit protocol a causally ordered, ascending timestamp value;
for each of the multiple database recovery logs, marking identically all the log entries related to a single transaction with a mark unique to the single transaction in a given one of the database recovery logs; and
identifying global changes for the single transaction from the log entries in the multiple database recovery logs based on the marking and the globally unique transaction identifier for each transaction by reading log entries based on the causally ordered, ascending timestamp value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method to coordinate processing of complete transactions with specific log entries of each of several database recovery logs, comprising:
-
processing complete transactions;
recording an address in each log entry of an earliest reported log entry for a transaction which is not complete and not yet processed along with the causally ordered, ascending timestamp of the log entry of the commit kind for the most recently completed and processed transaction; and
atomically committing the changes pursuant to the processing of completed transactions, the earliest reported entries for incomplete transactions, and the causally ordered, ascending timestamp. - View Dependent Claims (13)
-
-
14. A method to resume determining changes and transaction order following a failure or normal termination, comprising:
-
retrieving addresses of earliest reported log entries for transactions which are not complete and causally ordered, ascending timestamp for a most recently completed and processed transaction;
initiating examination of each of multiple recovery logs at the retrieved addresses; and
ignoring completed transactions whose causally ordered, ascending timestamp from log entry of the commit kind is less than or equal to the retrieved causally ordered, ascending timestamp.
-
-
15. An article of manufacture including code for determining changes caused by a single transaction and transaction order when transaction changes are recorded in multiple database recovery logs containing log entries in support of a two-phase commit protocol, wherein the code is capable of causing operations, the operations comprising:
-
recording in the log entries pursuant to the two-phase commit protocol a globally unique transaction identifier for each transaction, wherein multiple log entries in multiple database recovery logs that correspond to one transaction have a same globally unique transaction identifier;
maintaining in the log entries pursuant to the two-phase commit protocol a causally ordered, ascending timestamp value;
for each of the multiple database recovery logs, marking identically all the log entries related to a single transaction with a mark unique to the single transaction in a given one of the database recovery logs; and
identifying global changes for the single transaction from the log entries in the multiple database recovery logs based on the marking and the globally unique transaction identifier for each transaction by reading log entries based on the causally ordered, ascending timestamp value. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. An article of manufacture including code to coordinate processing of complete transactions with specific log entries of each of several database recovery logs, wherein the code is capable of causing operations, the operations comprising:
-
processing complete transactions;
recording an address in each log entry of an earliest reported log entry for a transaction which is not complete and not yet processed along with the causally ordered, ascending timestamp of the log entry of the commit kind for the most recently completed and processed transaction; and
atomically committing the changes pursuant to the processing of completed transactions, the earliest reported entries for incomplete transactions, and the causally ordered, ascending timestamp. - View Dependent Claims (27)
-
-
28. An article of manufacture including code to resume determining changes and transaction order following a failure or normal termination, wherein the code is capable of causing operations, the operations comprising:
-
retrieving addresses of earliest reported log entries for transactions which are not complete and causally ordered, ascending timestamp for a most recently completed and processed transaction;
initiating examination of each of multiple recovery logs at the retrieved addresses; and
ignoring completed transactions whose causally ordered, ascending timestamp from log entry of the commit kind is less than or equal to the retrieved causally ordered, ascending timestamp.
-
-
29. A system for determining changes caused by a single transaction and transaction order when transaction changes are recorded in multiple database recovery logs containing log entries in support of a two-phase commit protocol, comprising:
-
a set of nodes, each node having a recovery log; and
a computer program executable by a computer, wherein the computer program comprises instructions for;
recording in the log entries pursuant to the two-phase commit protocol a globally unique transaction identifier for each transaction, wherein multiple log entries in multiple database recovery logs that correspond to one transaction have a same globally unique transaction identifier;
maintaining in the log entries pursuant to the two-phase commit protocol a causally ordered, ascending timestamp value;
for each of the multiple database recovery logs, marking identically all the log entries related to a single transaction with a mark unique to the single transaction in a given one of the database recovery logs; and
identifying global changes for the single transaction from the log entries in the multiple database recovery logs based on the marking and the globally unique transaction identifier for each transaction by reading log entries based on the causally ordered, ascending timestamp value.
-
-
30. A system to coordinate processing of complete transactions with specific log entries of each of several database recovery logs, comprising:
-
a set of nodes, each node having a recovery log; and
a computer program executable by a computer, wherein the computer program comprises instructions for;
processing complete transactions;
recording an address in each log entry of an earliest reported log entry for a transaction which is not complete and not yet processed along with the causally ordered, ascending timestamp of the log entry of the commit kind for the most recently completed and processed transaction; and
atomically committing the changes pursuant to the processing of completed transactions, the earliest reported entries for incomplete transactions, and the causally ordered, ascending timestamp.
-
-
31. A system to resume determining changes and transaction order following a failure or normal termination, comprising:
-
a set of nodes, each node having a recovery log; and
a computer program executable by a computer, wherein the computer program comprises instructions for;
retrieving addresses of earliest reported log entries for transactions which are not complete and causally ordered, ascending timestamp for a most recently completed and processed transaction;
initiating examination of each of multiple recovery logs at the retrieved addresses; and
ignoring completed transactions whose causally ordered, ascending timestamp from log entry of the commit kind is less than or equal to the retrieved causally ordered, ascending timestamp.
-
Specification