Recap
Logging is essential for database recovery, ensuring that transactions maintain Atomicity, Consistency, Isolation, and Durability (ACID) properties.
Motivation
- Crash Recovery: Ensure transaction durability and database consistency even in system failures.
- Concurrency Control: Maintain correctness when multiple transactions are executing.
- Database Performance: Balance between write operations and efficient recovery.
Failure Classification
A DBMS must be able to handle different types of failures:
1. Transaction Failures
- Logical Errors: Integrity constraint violations, application errors, etc.
- Internal State Errors: Deadlocks, resource limits, forced rollbacks.
2. System Failures
- Software Failures: Unhandled exceptions, DBMS crashes.
- Hardware Failures: Power loss, server crashes.
- Fail-Stop Assumption: Assumes non-volatile storage remains intact after a system crash.
3. Storage Media Failures
- Non-Repairable Disk Failures: Head crashes, complete data corruption.
- Solution: DBMS cannot recover from this alone; needs backup restoration.