Detection and Recovery Techniques for Database Corruption

Full textClick to download.
CitationCitation: IEEE Transactions on Knowledge and Data Engineering 15 (2003), pp. 1-17.
AuthorsPhilip Bohannon
Rajeev Rastogi
S. Seshadri
Avi Silberschatz
S. Sudarshan


Increasingly, for extensibility and performance, special purpose application code is being integrated with database system code. Such applicaiton code has direct access to database system buffers, and as a result, the danger of data being corrupted due to inadvertant application writes is increased. Previously proposed hardware techniques to protect from corruption require system calls, and their performance depends on details of the hardware architecture. We investigate an alternative approach which uses codewords assocaited with regions of data to detect corruption and to prevent corrupted data from beng used by subsequent transactions. We develop serveral such techniques which vary in the level of protection, space overhead, perforamnce, and impact on concurrency. These techniques are implemented in the Dali main-memory storage manager, and the performance impact of each on normal processing is evaluated. Novel techniques are developed to recover when a transaction has read corrupted data caused by a bad write and gone on to write other data in the database. These techniques use limited and relatively low-cost logging of transaction reads to trace the corruption and may also prove useful when resolving problems caused by incorrect data entry and other logical errors.

Back to publications
Back to previous page