# CMU DB 21. Crash Recovery Algorithms
tags: CMU DB
授業
ARIES
Algorithms for Recovery and Isolation Exploiting Semanticsの略称.1990年台初頭にIBMの研究所で開発された.全てのシステムがARIESを原著論文通りに定義はしていないが,十分似ている.
ARIES recovery protolの主要な考えは
- write ahaed logging
- DBの変化がディスクに書き込まれる前に安定したストレージに変化のlogが記録される
- steal + no-force
- repeating history during redo
- 再起動の時に,クラッシュの前の作用を再び追い正確な状態にDBを回復する
- logging changes during undo
- 繰り返される失敗の出来事において作用が繰り返されないと保証するように記録する作用をundoする記録
WAL records
DBMSのログ記録のフォーマットが追加情報を含むように拡張する必要がある.全てのログ記録は大域的に一意なlog sequence number(LSN)を含む.システムの様々な要素が関連するLSNを追いかける
- それぞれのページはpageLSNを保持する.
- システムはflushedLSNを追う.
- page$i$がディスクに書き込み可能である前に,$pageLSN_{i} \leq flushedLSN$である場所まで少なくともlogを流す必要がある
normal execution
- transaction commit
- transaction abord
- CLR...compensation log record
checkpointing
DBMSは定期的にcheckpointを作る.ここでは,buffer pool内のdirty pageをディスクに書き込む.これは回復の直後に再作動させるlogの数を最小化するため.
- blocking checkpoints
- slightly better blocking checkpoints
- active transaction table(ATT)
- dirty page table(DPT)
- 未完了のトランザクションによって変更されたbuffer pool内のページについての情報を持っている.
- fuzzy checkpoints
ARIES recovery
ARIESプロトコルは3段階から成る.
- analysis phase
- DBのMasterRecord LSNを経由して見つかった最後のcheckpointから始まる
- redo phase
- 目的はクラッシュした際の状態に再構築するために歴史を繰り返すこと.全ての更新を再び適用し,CLRを再びする.
- undo phase
感想
クラッシュすると大変なのでクラッシュさせたくないですね…