Next: Selective or Deferred
Up: RESTART PROCESSING
Previous: Redo Pass
-
3rd pass of the log during restart recovery.
-
A routine (RESTART_UNDO) is written that implements the undo pass actions.
-
The input to this routine is the restart transaction table.
-
The dirty_pages table is not consulted during the undo pass.
-
Since history is repeated before the undo pass is initiated, the LSN on the
page is not consulted to determine whether an undo operation should be
performed or not.
-
The RESTART_UNDO routine rolls back loser transactions, in reverse
chronological order, in a single sweep of the log.
-
This is done by continually taking the maximum of the LSNs of the next
log record to be processed for each of the yet-to-be-completely-undone
loser transactions, until no loser transaction remains to be undone.
-
The next log record to process for each transaction to be rolled back
is determined by an entry in the transaction table for each of those
transactions.
-
In the process of rolling back of transactions, CLRs are written.
-
The buffer manager follows the usual write ahead log (WAL) protocol
while writing dirty pages to nonvolatile storage during the undo pass.
-
With ARIES, we have the option of allowing the continuation of loser
transactions after restart recovery is completed.
-
Because of repetition of history and savepoint concepts, in the undo pass,
we could roll back each loser transaction only to its latest savepoint,
instead of total rollback.
Vinay V
Mon Apr 12 18:36:08 IST 1999