DBZ V3.3
--------

dbz-v3.3 uses the "offset fuzzy" technique, i.e., several LSBs are
dropped from history.pag.  The space is allocated to the hash bits.
Current version declare the maximum number of dropped bits (MAXBITDROPS)
by 4, which means the stored offset value can be less than at most 15
than the actual offset value.  The dbzfetch() reads additional bytes
from the history text and searches for the matching key.  Of course
the actual number is dynamically computed by dbz so that there are
maximum seven hash bits.

Another change is the table size.  The previous dbz uses 1.5 times
the maximum number of history entries.  This number has been increased
to 2 so that the .pag file be more sparse.  Therefore, your .pag file
size will be increased by about 25 percent.

I have tested this version and found that the history lookup speed
is very fast.  The initial tests on a P-150 and a PPro-200 Linux
machines whth +2 million history lines show the hishave times between
0.5 to 2 msec, with no history-cache.
Of course, history-cache if combined with this dbz-v3.3 will speed up
even more.  Please have a look at the file PERFORMANCE for some clue.

How to install?
---------------

You'll find two files dbz.c and dbz.h.  Just replace original
dbz files in INN and compile/update.  dbzpatch(inn INN/lib) should
not be applied.  This version is compatible to inn-1.5.1 and inn1.4unoff4.

My history rebuilding procedure was:

    % stopnews     # stop innd and news-cron jobs.
    % cd ~/lib
    % makehistory -r -s `wc -l history`
    % mv history.n.dir history.dir
    % mv history.n.pag history.pag
    % ~/etc/rc.news
    % # activate news-cron jobs.

Thanks go to Marc Slemko <marcs@znep.com>, for testing my dbz code
and improving the code.
--
Sang-yong Suh <sysuh@kigam.re.kr>            October 17, 1997
