Database Corruption Recovery via Read Logging and Multi-Versioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current database recovery systems face challenges in efficiently addressing data corruption caused by erroneous transactions, leading to prolonged outages and unnecessary de-commitment of valid transactions, as they often require restoring backups and rolling forward the database state, which is costly and disruptive.
Innovation Solution
The system implements a corruption recovery method that identifies and isolates initially corrupt data items and their dependencies, allowing transaction processing to continue by marking these items as invalid, using a transaction time database to maintain multiple versions of data and facilitate quick recovery without extensive outages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If media recovery is performed by restoring backup and rolling forward database state, then data corruption is removed, but database availability is seriously impaired due to long outage
Solution Approach 1:
The system performs preliminary actions by maintaining read logs during normal transaction processing, recording which data items were read by each transaction. When corruption is detected, this pre-collected information enables immediate identification of affected transactions without requiring full database restoration, thus resolving the contradiction between data integrity and availability
Solution Approach 2:
The system segments the database recovery problem by identifying and isolating only the specific transactions and data items affected by corruption, rather than recovering the entire database. By using read logs to trace corruption impact selectively, the system recovers only necessary portions, minimizing outage time while ensuring data integrity
2Reliability
If point in time recovery is performed to remove corrupting transaction effects, then data corruption is eliminated, but hundreds or thousands of valid transactions are de-committed and must be re-executed
Solution Approach 1:
The system applies local quality by differentiating between corrupt and valid transactions using read logs. Instead of uniformly de-committing all transactions after corruption detection, the system selectively identifies only those transactions that actually read corrupt data items. This localized approach preserves valid transactions, maintaining productivity while ensuring data integrity through targeted recovery
3Difficulty of detecting and measuring
If read logs are maintained to track data items read by transactions, then corruption impact can be precisely identified, but log storage requirements and processing overhead increase
Solution Approach 1:
The read log mechanism serves multiple functions: it enables corruption detection, identifies affected transactions, and supports recovery operations. By making this single data structure multi-functional, the system achieves precise corruption detection without proportionally increasing complexity, as the same infrastructure supports multiple critical operations
Data Source
AI summary
The subject invention pertains to data store corruption recovery. More specifically, the invention concerns systems and methods for identifying corrupt data in a manner that prevents de-committing or removal of valid or consistent transactions from a database. This can be accomplished at least in part by logging the identities of data items that a transaction reads. Furthermore, the subject invention provides for employment of a multi-version (or transaction-time) database to reduce significantly reduce any down time or database unavailability caused by a corrupt transaction and associated corrupt data items. Accordingly, no backups need to be installed and only updates by the original corrupt transaction and transactions that read corrupt data need to be de-committed or removed.


