Parallelized redo-only logging and recovery for highly available main memory database systems
First Claim
1. A method of logging a system having a database so that the system can recover the database in case of a system failure, comprising the steps of:
- generating log records, each representing update to the database by storing physical image of the update portion;
assigning an update sequence number representing the sequence of database updates to each log record; and
storing the generated log records into one or more log disks.
3 Assignments
0 Petitions
Accused Products
Abstract
A parallel logging and recovery scheme for highly available main-memory database systems is presented. A preferred embodiment called parallel redo-only logging (“PROL”) combines physical logging and selective replay of redo-only log records. During physical logging, log records are generated with an update sequence number representing the sequence of database update. The log records are replayed selectively during recovery based on the update sequence number. Since the order of replaying log records doesn'"'"'t matter in physical logging, PROL makes parallel operations possible. Since the physical logging does not depend on the state of the object to which the log records are applied, the present invention also makes it easy to construct a log-based hot standby system.
-
Citations
61 Claims
-
1. A method of logging a system having a database so that the system can recover the database in case of a system failure, comprising the steps of:
-
generating log records, each representing update to the database by storing physical image of the update portion;
assigning an update sequence number representing the sequence of database updates to each log record; and
storing the generated log records into one or more log disks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of logging a system having a database so that the system can recover the database in case of a system failure, comprising the steps of:
-
partitioning the database;
generating log records, each representing update to the database by storing physical image of the update portion;
assigning an update sequence number representing the sequence of database updates to each log record for each database partition; and
storing the generated log records into one or more log disks. - View Dependent Claims (11, 12, 13)
-
-
14. A method of logging a system having a primary database in main memory for transaction processing so that the system can recover the database in case of a system failure wherein the system maintains an active transaction table (ATT) for storing active transactions, private log buffers for storing redo and unto transactions, and public log buffers for storing committed redo transactions, the method comprising the steps of:
-
generating log records, each representing update to the database by storing physical image of the update portion;
assigning an update sequence number representing the sequence of database updates to each log record;
assigning a page version number (PVN) that is increased by one when a page is formatted with a different slot size; and
storing the generated log records into one or more log disks. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of recovering a database in a system from a system failure, wherein the system generates log records representing updates to the database, the method comprising the steps of:
-
reading log records, each having an update sequence number representing the sequence of database updates and a physical image of the updated portion; and
selectively replaying the log records based on the update sequence number - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method of recovering a database in a system from a system failure, wherein the system generates log records representing updates to the database wherein the system maintains an active transaction table (ATT) for storing active transactions, private log buffers for storing redo and unto transactions, and public log buffers for storing committed redo transactions, the method, the method comprising the steps of:
-
reading log records, each having an update sequence number representing the sequence of database updates and a physical image of the updated portion reading page version numbers (PVN) each of which was increased by one when a page is formatted with a different slot size.; and
selectively replaying the log records based on the update sequence number - View Dependent Claims (34, 35, 36, 37, 38)
-
-
39. A method for hot-standby in a transaction service system using a database where a slave server takes over a master server in case of a problem wherein the two servers exchange heartbeat messages for monitoring working conditions and the system stores log records representing incremental changes to the database, the method comprising the step of taking over the slave server that further comprises the steps of:
-
waiting until all received log records are displayed;
aborting all active transactions at the moment;
setting a sync_position as the recently received log record ID;
setting a send_position as the tail address of the log file; and
resuming the transaction service. - View Dependent Claims (40, 41, 42, 43)
-
-
44. A system having a database for recovering from a system failure, comprising:
-
main memory for storing the database, one or more log disks for storing log records representing update to the database by storing the physical image of the update;
one or more backup disks for storing a copy of the main memory database;
a recovery manager having a counter for storing an update sequence number for representing the sequence of database updates. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
-
56. A hot-standby system for a system having a database in main memory where one server takes over another in case of a problem, comprising:
-
a master server for logging updates to the database, further comprising;
an active transaction table (ATT) for storing the list of active transactions;
a private buffer for storing redo and undo transaction log records; and
a public log buffer for storing committed redo transactions log records to be written to one or more disks;
ANDa slave server for logging updates to the database in case of a failure of the master server, further comprising;
an aborted transaction table for storing the list of active transactions;
a private buffer for storing both redo and undo transactions log records; and
a public log buffer for storing committed redo transaction log records to be written to said one or more log disk.
-
-
57. A computer-readable storage medium that contains a program for logging updates in a system having a central processing unit (CPU) and main memory for storing a database, one or more log disks for storing log records representing updates to the database, and one or more backup disks for storing a copy of the main memory database, where the program under the control of a CPU performs the steps of:
-
generating log records where each log record contains the physical image of the updated portion of the database;
assigning an update sequence number representing the sequence of updates to each log record; and
recovering from a system failure by selectively replaying the log records. - View Dependent Claims (58, 59, 60, 61)
-
Specification