CMU Database Systems をひたすら追っていく ~21 Database Recovery~
この記事は「けんつの1人 DBMS アドベントカレンダー Advent Calendar 2019 - Adventar」 24 日目の記事です。
はじめに
今回は実際にリカバリをどのように行うかという話。
Aries
Algorithm for Recovery and Isolation Exploiting Semantics の略で IBM が 1990 年代に研究したもの。
これを完全に採用しているものは少ないが、この手法に類似した方法を取っている。
ARIES の処理手順
WAL Records
ログレコード形式を拡張して、追加情報を持つ必要がある。全てのログレコードに LSN*1を追加することで対応する。
- 各ページには Page LSN が含まれ、最新の更新を示す。
- またフラッシュされた最大の LSN も持つ
- ディスクに書き込まれる前に、 page LSN <= flushed LSN となるようにログをフラッシュする
Normal Execution
Transaction Commits
ARIES Recovery
ARIES は 3 つのフェーズで構成されている。
クラッシュ後は起動時にそのフェーズを逐次実行していく。
おわりに
簡単にまとめたけど、これを一つずつちゃんとまとめないと理解できない気がしてきた
*1:ログシーケンス番号