Computer program product and program storage device for improving data recovery performance
First Claim
1. In a computerized database system having a central processing unit (CPU), volatile memory, non-volatile memory, a plurality of data stored in at least one database, wherein a plurality of transactions access a database for reading or updating, and for each database access, a transaction record is stored at an offset location in a sequential log, a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for recovering a database, said method steps comprising:
- during transaction processing of a database, tracking at least one log range comprising update transaction log records, said log range having a begin value and an end value, said begin value corresponding to a log offset location of a first access of the database only by an updating transaction and said end value corresponding to a log offset location at a commit or abort only of a last updating transaction; and
during recovery of the database, applying the update transaction log records in said log range to a version of the database stored in non-volatile memory.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and method are provided for recovering a computerized database. During transaction processing of a database, at least one log range is tracked comprising update transaction log records. The log range has a begin value and an end value. The begin value corresponds to a log RBA location of a first access of the database by an updating transaction. The end value corresponds to a log RBA location at a commit or abort of a last updating transaction. The end value corresponds to a point when the database is designated as being read only (called pseudo open). During recovery of the database, the update transaction log records in the log range are applied to a version of the database stored in non-volatile memory.
-
Citations
8 Claims
-
1. In a computerized database system having a central processing unit (CPU), volatile memory, non-volatile memory, a plurality of data stored in at least one database, wherein a plurality of transactions access a database for reading or updating, and for each database access, a transaction record is stored at an offset location in a sequential log, a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for recovering a database, said method steps comprising:
-
during transaction processing of a database, tracking at least one log range comprising update transaction log records, said log range having a begin value and an end value, said begin value corresponding to a log offset location of a first access of the database only by an updating transaction and said end value corresponding to a log offset location at a commit or abort only of a last updating transaction; and during recovery of the database, applying the update transaction log records in said log range to a version of the database stored in non-volatile memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a computerized database system having a central processing unit (CPU), volatile memory, non-volatile memory, a plurality of data stored in a plurality of databases, wherein a plurality of transactions access a database for reading or updating, wherein for each database access, a transaction record is stored at a offset location in a sequential log, a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for recovering a database, said method steps comprising:
-
during transaction processing of a database; a) designating each database as a pseudo close database; b) tracking when an updating transaction accesses a database; c) for a pseudo close database accessed by an updating transaction, designating the pseudo close database as a pseudo open database and recording a corresponding offset location of the sequential log as a log range begin value; d) maintaining a counter of uncommitted transactions updating a pseudo open database; e) incrementing the counter when an updating transaction accesses the pseudo open database; f) decrementing the counter when the updating transaction is committed or aborted, wherein when the counter has a value of zero, there are no updating transactions accessing the database; g) for a pseudo open database not accessed by an updating transaction for a predetermined period, designating the pseudo open database as a pseudo close database and recording a corresponding offset location of the sequential log as a log range end value; and h) repeating steps (d) through (g) a plurality of times; during recovery of the database; applying update transaction log records between each log range begin value and log range end value to a version of the database stored in non-volatile memory.
-
-
7. A computer program product for use in a database management system, said computer program product comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for recovering a database wherein a plurality of transactions access the database for reading or updating, and for each database access, a transaction record is stored at an offset location in a sequential log, said computer readable program code means comprising; computer readable first program code means for designating each database as a pseudo close database; computer readable program code means for tracking when an updating transaction accesses a database; computer readable second program code means for designating a pseudo close database accessed by an updating transaction as a pseudo open database; computer readable first program code means for recording an open log location when only an updating transaction first accesses a pseudo close database as the log range begin value; computer readable third program code means for designating a pseudo open database not accessed by an updating transaction for a predetermined period as a pseudo close database; computer readable second program code means for recording a close log location when only a last updating transaction commits or aborts as the log range end value; and computer readable program code means for applying the update transaction log records in between said log range begin value and said log range end value to a version of the database stored in non-volatile memory. - View Dependent Claims (8)
-
Specification