【DBMS入門】トランザクションとデータの復旧について
【今回の紹介】
今回は、トランザクションとデータの復旧について学習を行ったので
そのメモを。
具体的には以下のトランザクション処理を実行するときに
DBMSが行っていることについて
・データの復旧
・同時実行制御
参考にしたのは以下の記事。そこらへんの参考書よりわかりやすい。
トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(1)
【内容】
■データの復旧
・トランザクションが復旧の単位
・更新前に終了していたトランザクションを保障する(ロールバック)
→障害発生時に実行途中のトランザクションは復旧対象でない
・COMMITする(データファイルへの書き込みを行う)前にログファイルに更新情報を書きこむ
・ログファイルには書き込んだが、データファイルまでは反映していない処理を実行する(ロールフォワード)
基本的なデータ復旧の処理の流れを整理すると
①障害発生
②チェックポイント(HDDのデータファイルに対し最後に反映が行われた地点)の状態まで戻す(ロールバック)
③チェックポイントから障害発生時までにトランザクションが終了している処理を
ログファイルの情報を元に行う(ロールフォワード)
【メモ】
①アクセス速度や処理速度がかかるものに対して、バッファ(緩衝材)
おくという思想がいろんなとこにある
今回のトランザクション処理に関する部分の学習でいえば
ログファイル(WALファイル)
他にも、CPUとメモリの間で使用されるキャッシュメモリ
メモリとHDDの間で使用されるディスクキャッシュなど