まつもと ゆきひろです

In message "[ruby-list:5455] Re: Mail to HTML"
    on 97/11/27, Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:

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

実装によると思いますが,基本的には

  * 最初に強制seekである一定の大きさのファイルを作り出し,
  * keyからhash値をもとに計算した位置にseekし,dataを格納する
  * サイズが足りなくなったらファイルの大きさを大きくしてrehash

というようなことをしているようです.