Storage, Execution & Recovery Internals
ARIES and Crash Recovery
ARIES recovers a steal/no-force system in three conceptual passes: analysis reconstructs transaction and dirty-page state, redo repeats history to restore the exact pre-crash state, and undo rolls back loser transactions using compensation log records that make rollback itself restartable.
- Steal requires undo.
- No-force requires redo.
- Analysis rebuilds recovery tables.
- Redo repeats history.
- Restart undo takes losers back to transaction begin.
- CLRs make undo idempotent and restartable.
| Metadata | Recovery question |
|---|---|
| prevLSN / lastLSN | What is the previous action for this transaction? |
| pageID + pageLSN | Is this page action already reflected? |
| recLSN | How early might redo for this dirty page be needed? |
| CLR + undoNextLSN | Which undo completed, and where should undo continue? |
| commit/end status | Winner, loser, or fully completed? |