わたなべです.

Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:

:何度かまとめようと試みているんですが、メールやを受け取ったり、
:ニュースを取ってきたりするのと、CGI の viewer と、スレッド分
:けと、かなり複雑になってしまって、なかなか他人に使ってもらえ
:るには至りません。

期待して待ってます. ;-)

:ところで DBM っていったいどういう仕組みなんですか?良くでき
:てるなあ。件の viewer (scat.rb) は起動される度にスレッドに関
:するデータを記録した DBM を読んでボタンを配置しているんだけ
:ど .dir, .pag 共に 25M バイトぐらいなんですが、アクセスする
:のに 0.1 秒ぐらいしかかからないんですよ。多分、管理領域があっ
:てディスク上の必要な位置だけを読むんだと思うんですが。

たぶん index hash があって seek してるだけだと思います.

:DBM に同じデータを追加したり削除したりするだけでも、突然ファ
:イルサイズはが膨らんだりするのかしら?そしてときどきガベージ
:コレクトみたいな事が起こるのかな。

hole があるので物理的に消費してないはずです.
ls -ls hoge.dir してみてください.

:なぜ .dir と .pag のファイ
:ルサイズは一致しているのか?

たぶん GDBM の ndbm emulation だと思うんですけど, たんなる 
hard-link です.
#Berkeley DB の場合はそこまで仕様を合わせてないので .db 一個です.

-- 
わたなべひろふみ