H2Databaseを追っかけていたりしたブログ

H2 database のリリースノートを読んだりとか。

h2databaseを読む

f:id:ysobj:20131005032941p:plain

H2のデータファイルの内部構造(PageStore)。データファイルは最低で5ページ。デフォルトのページサイズは8192バイト。指定可能なページサイズは64バイトから32768バイトで、2の累乗である必要がある。

0ページ目はヘッダ。ページサイズと、書き込みバージョン、読み込みバージョンが記載されている。

1,2ページ目は、書き込み回数と、現行のトランザクションログのキーやページが書き込まれている。あと、それらのデータのCRC32。1ページ目と2ページ目の内容は完全に同一で、通常は1ページ目だけが使用されている。1ページ目を読み込んで、CRC32でチェックし破損が認められた場合、2ページ目の内容が使われるらしい。

3ページ目は、フリーリストページの1ページ目。

4ページ目は、メタテーブルのルートページ。