Database
a.k.a DB
CMU 15-721
北川 博之 データベース概論Ⅰ
https://overcast.fm/+NTdNo580M/01:05 #fukabori.fm
既存のDBの問題点
今の形に落ち着いたときの設計思想
制約条件(1970年)
メモリ 100万円/MB
HDD 0.1万円/MB <- これを頑張って使うぞ!
ランダムアクセスは遅い
シーケンシャルアクセスは早い
ACID
電源が落ちてもデータは消えない
メモリをバッファプール(キャッシュ)として使っていた
もしメモリが溢れたらdiskに書き戻さなければいねない。しかし、不完全なトランザクションの場合、途中で電源が切れたら半端に実行されたデータが残り不整合が起きる。
トランザクション進行中(一貫性なし)にメモリをdiskに書き戻したい
1980年ごろ IBM ARIES
see DBの歴史
有限のメモリで
トランザクションを保ちながら
メモリに乗り切らないトランザクションも解決できる
しくみ
ログとバッファプールとリカバリは密結合という思想
バッファプールにデータを書いて、そのデータがディスクにログとして書き出される必要がある
ページがキャッシュとしてスワップアウトされるより先に(ページの?)ログがディスクに着弾する
Write ahead logging
ログの方がページの書き戻しより先にくる
このときトランザクションが終わってない一貫性のないデータかもしれないので、トランザクション終わってない印をつけておく