Real-time databases (RTDBs) are increasingly being used as an integral part of many computer systems. During normal operation, transactions in RTDBs must be executed in such a way that transaction timing and data time validity constraints can be met. RTDBs must also prepare for possible failures and provide fault tolerance capability. Principles for fault tolerance in RTDBs must take timing requirements into consideration and are distinct from those for conventional databases. We discuss these issues in this paper and describe a logging and recovery technique that is time-cognizant and is suitable for an important class of RTDB applications. The technique minimizes normal runtime overhead caused by logging and has a predictable impact on transaction timing constraints. Upon a failure, the system can recover critical data to a consistent and temporally valid state within predictable time bounds. The system can then resume its major functioning while non-critical data are being recovered in the background. As a result, the recovery time is bounded and shortened. In short, we are providing a bounded and predictable logging and recovery technique for critical transactions accessing critical variant and invariant data, while the database may consist of all kinds of data. Our performance evaluation via simulation shows that logging overhead has a small effect on missing transaction deadlines while adding recovery capability. In addition, our algorithm scales well with respect to large I/O page sizes, indicating that it can be adapted to future generations of storage devices with larger I/O page sizes. We compare our algorithm with another approach that does more frequent checkpointing for data with certain special characteristics. Simulation results disclose conditions under which each approach performs better than the other. Experiments also show that recovery using our approach is 3-6 times faster than traditional recovery.
All Science Journal Classification (ASJC) codes