ext2/ext3 でディレクトリ構造を線型検索からhtreeを使った検索で高速化する機能がある。dumpe2fs
での出力で機能リストに、dir_index が列挙されていれば有効になっている。
Debian etch のインストーラ経由で ext3 を作成したものには htree 機能が有効になっており、ちょっとびっくりしたのだが、これはいつ安全に使えるようになったのか疑問が湧いてきた。
e2fsprogs のリーリースノートから拾い読みすると htree機能(dir_index)の変遷は下記のようである。
- バージョン1.28から取り込まれ始める
- バージョン1.29でmke2fsのデフォルトでdir_index有効になる
- バージョン1.30でe2fsckでendianと内部 htree node を誤認識によるそれぞれに起因する問題の修正と HTREEに関しての追加チェックが出来るようになる。
- バージョン1.33でヤッパリmke2fsのデフォルトでdir_index無効になる。
- バージョン1.39で再度mke2fsのデフォルトでdir_index有効になる。但し、 /etc/mke2fs.conf で指定できるようになる。
sarge/etch のそれぞれのe2fsprogsのバージョンが1.37/1.39なので、htree機能の無効・有効に説明が付きそうである。多分リリースノートからすると、1.30 でのe2fsckの修正でほぼユーザランド側は大きな不具合が取れて、1.39 が出る約3年ぐらいの修正で安定度と実績が出来たので再度デフォルト有効になったのかなぁ。とするとhtree機能は安全に使えるようである。
htree 機能の不具合の話はVine 2.6r3 の不具合が大本だった。メーリングリストの報告(1,2)を見る限り対処療法で乗り切っているようで、何が原因だった分からない。取り敢えずdir_indexは無効にしようとなっている。Vineではいまはどういう扱いになっているのだろう?
Fedora Core 5 や CentOS 4.2 では ext3 のhtree機能は既に有効になっているらしく、 そんなに気にせず使えるようである。
あまり気にせずと言うことか。
0 件のコメント:
コメントを投稿