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