Crash recovery for real-time main memory database systems

In this paper we propose an update-frequency partition checkpoint scheme and a partition reload algorithm for real-time main memory databases (MMDB) which aim at not only reducing system recovery time, but also minimizing the number of timing constraints which are violated. With the update-frequency partition checkpoint scheme, an MMDB is divided into partitions based on data types (persistent vs. temporal) and update frequency, and each partition is checkpointed independently based on its update frequency. The partition reload algorithm allows the system to be brought up only when high access frequency partitions are reloaded into main memory and recovered. It takes transaction priority, reload prioritization and preemption into account during the reload process so that urgent transactions can be given immediate attention and have more chances=to meet their deadlines. Our simulation results show that the proposed checkpoint technique outperforms the conventional fuzzy checkpoint approach. The partition reload scheme has a potential to provide a significant performance improvement over conventional reload. I. I N T R O D U C T I O N A real-time database system (RTDBS) is the one in which transactions not only maintain the consistency constraints of the database but also satisfy their timing constraints (e.g. deadlines). In addition to transaction deadlines, an RTDBS "Permission to make digital/hard copy of all or part of this material without fee is granted provided that copies are not made or distributed for profit or commercial advantage, the ACM copyright/server notice, the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery, Inc.(ACM). To copy otherwise~ to republish~ to post on servers or to redistribute to lists~ requires prior specific permission and/or a fee." © 1996 ACM 0-89791-820-7 96 0002 3.50 often processes both temporal data which lose their validity after a certain period of time, and persistent data which remain valid regardless of time [ ! 1]. The main goal of an RTDBS is to meet the timing constraints of transactions and data. Over the years, many research efforts have been made on developing efficient scheduling and concurrency control schemes for an RTDBS, but not much work has been done for recovery. As the cost of semiconductor memory decreases, it is possible for some real-time applications to keep the entire database in main memory (MM) so that a substantial performance improvement can be achieved. However, when a system failure occurs, as the database is not available for transactions, many transactions may miss deadlines and a large amount of temporal data may lose their validity before they can be used. The efficiency of a recovery technique therefore has a crucial impact on the performance of the system. In this paper we concentrate on two important components of a recovery mechanism: checkpointing and reloading. Checkpointing is a process used to maintain on disks an up-to-date copy of the database and thereby provides a starting point for log recovery. When a system crash occurs, as checkpoints provide an almost up-to-date copy of the database, most data in the log are not needed at the time of recovery. The recovery process needs to process only the log information which is generated after the last checkpoint. Without an efficient checkpoint scheme, much recovery time will be consumed by log processing and consequently will result in many missing deadline transactions and invalid temporal data upon recovery. Reloading, which reloads a backup copy• of the database from archive storage into main memory, takes place when a system failure occurs which causes the entire or partial contents of the MMDB to be lost. Efficient reloading is expected, especially in an IvlMDB environment, as transaction executions cannot proceed if required data are not memory-resident,