Professor Rahat Zafar
1. Question 16.2
Checkpointing is done with log-based recovery schemes to reduce the time required for recovery after a crash. If there isno checkpointing, then the entire log must be searched after a crash, and all transactions undone/redone from the log. If checkpointing had been performed, then most of the log-records prior to the checkpoint can be ignored at the time of recovery.
Another reason to perform checkpoints is to clear log-records from stable storage as it gets full.
Since checkpoints cause some loss in performance while they are being taken, their frequency should be reduced if fast recovery is not critical.
If we need fast recovery checkpointing frequency should be increased. If
2. Question 16.5
a. The old-value part of an update log record is not required. If the transaction has committed, then the old value is no longer necessary as there would be no need to undo the transaction. And if the transaction was active when the system crashed, the old values are still safe in the stable storage as they haven’t been modiﬁed yet.
b. During the redo phase, the undo list need not be maintained any more, since the stable storage does not reﬂect updates due to any uncommitted transaction.
c. A data item read will ﬁrst issue a read request on the local memory of the transaction. If it is found there, it is returned. Otherwise, the item is loaded from the database buffer