Consider the following log sequence of two transactions on a bank account,…
2015
Consider the following log sequence of two transactions on a bank account, with initial balance 12000, that transfer 2000 to a mortgage payment and then apply a 5% interest. 1. T1 start 2. T1 B old=1200 new=10000 3. T1 M old=0 new=2000 4. T1 commit 5. T2 start 6. T2 B old=10000 new=10500 7. T2 commit Suppose the database system crashes just before log record 7 is written. When the system is restarted, which one statement is true of the recovery procedure?
- A.
We must redo log record 6 to set B to 10500
- B.
We must undo log record 6 to set B to 10000 and then redo log records 2 and 3
- C.
We need not redo log records 2 and 3 because transaction T1 has committed
- D.
We can apply redo and undo operations in arbitrary order because they are idempotent.
Attempted by 3 students.
Show answer & explanation
Correct answer: B
Upon restart, the recovery manager scans the log. Transaction T1 committed before the crash (record 4), so its effects are durable and need not be undone. Transaction T2 did not commit before the crash (crash occurred between records 6 and 7). Consequently, T2 is an uncommitted transaction. To preserve atomicity, the system must undo T2's modifications found in log record 6 (restoring account balance B to 10000). Therefore, the correct procedure involves undoing record 6 while preserving T1's committed changes.
A video solution is available for this question — log in and enroll to watch it.