namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
compressing an index with zlib
- From: Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
- Date: Sun, 19 Dec 1999 13:56:49 +0900
インデックスを zlib を使って圧縮する案について。
EBライブラリ <http://www.sra.co.jp/people/m-kasahr/eb/> の
ebzip のソースコードを眺めていたら、nmzzip を割と簡単に作れ
る気がしてきました (ebzip のコードの大半が再利用できそう)。
こんな使い方を考えています。
nmzzip
* 既存のインデックスを圧縮する
% nmzzip ~/NMZ/foobar
nmzunzip
* 圧縮されたインデックスを展開する
% nmzunzip ~/NMZ/foobar
mknmz
* インデックス時に圧縮オプションを指定
- 普通にインデックスを作成して、最後に nmzzipを使って圧縮する
% mknmz --compress ~/Mail/ml/foobar
* 圧縮されたインデックスを更新
- 圧縮されたインデックスは最初に nmzunzip で展開する
- 更新処理を施した後で、再び nmzzip で 圧縮する
namazu
* 圧縮されたインデックスを zlib の関数を用いて検索をする
- ファイル全体を展開するのではなく、アクセス時に 2-16 KB
程度のブロック単位で必要な部分だけ展開するので、実用的な
速度が達成できるはずです。(EBライブラリで実証されている)
2.0 の目玉機能 (?) として実装しようかしら? たぶん、集中して
作業すれば 3,4日で実装できると思います (対応が予想以上に面倒
なら先送りします)。どのくらい需要があるのかな。
# 当面は細かい作業に専念するので zlib 対応に取り掛かるのは、
# しばらく後になります。(あるいは野首さんが対応します? :-)
-- Satoru Takabayashi
The sooner you start to code, the longer the program will take.
-- Roy Carlson