Detection and Recovery Techniques for Database Corruption

01 September 2003

New Image

(PREVIOUS TITLE: Detecting and Recovering from Data Corruption) Increasingly, for extensibility and performance, special purpose application code is being integrated with database system code. Such application code has direct access to the database system buffers, and as a result, the danger of these applications causing data corruption due to inadvertent writes is increasing. In this paper, we first present a taxonomy of data corruption and recovery techniques. We then describe techniques for integrating codeword-based detection of corruption with transactional recovery algorithms. In addition to page-based techniques, we present a novel log-based technique with minimal concurrency control impact on normal processing. Next, we present techniques to remove from corruption, even if the corruption is carried forward through multiple transactions. These techniques are based on the concept of logging information about reads. Such read logging is a powerful paradigm, providing not only for recovery from corruption, but also for analysis of transaction activity. Finally, we present a study of the performance impact of our corruption detection and recovery techniques on normal transaction processing.