Following is the documentation for radix compression, by Andrew Molitor.
------------------------------------------------------------------------

NOTE:   You should not use radix compression unless you have a relatively
        large database, consisting of a few hundred objects. Those starting
        from scratch should NOT use compression.

	Using compression is something you don't want to take lightly.
It's useful if you're short on disk space in disk based mode, and it will
help slightly on memory usage as well, but it will cost a little performance.
Not a lot, there is some question about whether the users can feel it at all
on the dinky little Sun 3/60 I run my MUSH on, so it's likely that nobody
will even notice on a normal machine. Benchmarks indicate about a 5%
performance hit. The larger issue is that it's a bit of a hassle to set up.


1. You need to produce a compression table. The radix tree compression
library works by converting common substrings into 12 bit code, so it needs
to know what your common substrings are. You'll need a flat dump of your
database, or at least the ability to produce one. In the radixlib directory,
do a 'configure' then a 'make a' which builds the binary part of the tools
used to analyse your flat dump. Then you run your database through the
analyse.sh shell script, like this:

cat my_db.flat | analyse.sh

	or possibly these variations:

db_unload my_game.gdbm | analyse.sh
zcat my_db.flat.Z | analyse.sh

	This will a) take a while and b) produce a file called compresstab.h.
You can look at it if you like, it's just a big C structure with 4000ish
of the most common strings in your database. If you have access to a big
machine for one-off jobs, I highly recommend using this machine to build
your compression table. Ignore any messages about broken pipes if
compresstab.h exists.

2. Build the compression library. Just do a 'make libcompress.a' in
the radixlib subdirectory.

3. Rebuild your server. Edit the Makefile section called 'Radix
Compression', uncommenting the necessary defines, and rebuild netmux
from scratch. Make damn sure have a copy of dbconvert that does not use
compression. Use it to get a flat dump of your uncompressed DB before moving
on.

4. Reload your database compressed. Use the rebuilt dbconvert, it will
now load/unload into/out of a compressed gdbm database. Its flat dump format
is still uncompressed, however. db_load or whatever your poison is to load
up the gdbm database from the flat dump. You're ready to roll!
