ディスクテーブル利用時のチェックポイント

提供:MySQL Practice Wiki

移動: 案内, 検索

ディスクテーブルを利用している場合、LCPは異なる動きをする。インメモリ型テーブルに対してLCPが実行されているとき、DiskPageCache上にある全てのダーティページをフラッシュするのである。そうすることで、LCPまでに行われた全ての更新がテーブルスペースに含まれることになる。一方で、ディスクテーブル利用時にはUndoログが付随する。最後にLCPを行われてから現在に至るまでの、ディスクテーブルに対する全ての更新が含まれる。そして、その名が示すとおり、クラッシュリカバリ時にはUndoログの内容がテーブルスペースから差し引かれるのである。すると、テーブルスペースの内容は最後にLCPが行われた時の状態に戻る。その状態に戻れば、GCPを適用することが可能なのである。つまり、

テーブルスペース − Undoログ + GCP = 最新の状態

となるわけである。最新の状態は、(テーブルスペース + DiskPageCache)と表現することも可能であるが、クラッシュリカバリ時にはDiskPageCacheの内容は失われているので、上記のようなリカバリの仕組みが必要なのである。ディスクテーブル利用時にも、PKやインデックスがついているカラムはDataMemoryに格納される。従って、システム全体ではリカバリは次のよなイメージで行われる。

(LCP + (テーブルスペース − Undoログ)) + GCP = 最新の状態

MySQL Clusterのディスクテーブルにおける注意点も参照のこと。

個人用ツール