DIDUMP(8)

DILOAD(8)

NAME
didump - Diablo program to dump the dhistory database

diload - Diablo program to append to the dhistory database

SYNOPSIS
didump [ -f ] [ -x ] [ -t ] [ -v ] [ -l ] dhistory-file

diload [ -v ] [ -f ] [ -h hashtablesize ] [ -u ] [ -o ] [ dhistory-file ]

DESCRIPTION
Didump dumps the specified dhistory file into a human readable format. It is used to debug the dhistory database, to recover a corrupted dhistory file. In combination with diload, didump may be used to remove expired entries over 16 days old from the dhistory file.

-x causes didump to not dump expired entries that are over 16 days old.

-t is used for debugging and causes didump to attempt to trace the dhistory file's hash table links. It is very inefficient.

-l is used to force didump to flush each line to the output rather then buffer the output, useful when running "didump -f dhistory | dreadart -v -f -" or something of that ilk.

-v is used to generate additional information, such as the spool file containing the article.

-o DiDump V1.08 can read older (V1.07 or smaller) Diablo dhistory files if this option is specified. This is used when upgrading to 1.08 to reload the dhistory file with the dhistory file format.

-f with a normal dump (no -t), seeks to the end of the history file and prints out entries as other programs (diablo) add them. DiDump will not exit in this case. This option is useful to get an idea of the aggregate incoming article rate. NOTE, however, that diablo does not add history file entries with a simple append, so you may see blank records in the output that, in fact, are filled-in later.

Generally speaking, when recovering a dhistory file or trimming off obsolete entries, didump or didump -x is run with the existing history file as an argument, and the output is piped to diload -f tempfile. Once the recovery is complete, the temporary history file is then renamed to become the actual history file. The diablo server must be paused during such operations to prevent it from acting on the 'old' version of the history file while the new one is being constructed.

Diload takes history data on the standard input and appends it to the specified history file. If no history file is specified, the active dhistory database is used. If any given record already exists in the dhistory file, the new record is thrown away and the original record left intact. You can safely run diload to append new entries without shutting the main Diablo server down, but Diablo must be shutdown if you intend to rewrite the history file.

-v Turn on verbose mode. diload prints out its progress.

-f Turn on special-fast mode. This locks the history file through the entire procedure and makes the assumption that entries being added did not previously exist. This also causes the base hash table to be cached and written then written out when the load operation has completed. DiLoad will create the history file you supply as an argument and will refuse to run if it is already pre-existing. This is used in the weekly trimming script to quickly rebuild the history file from a dump.

-u May be used with special-fast mode to re-enable checking for duplicates. You have the advantage of locking the history file throughout the entire operation, but can still use a pre-existing history file to 'update'.

-h hashtablesize The default hash table size is 4 million entries (-h 4m). You can set it to any power of two but the suggested size is 4m or 8m. Do NOT forget the 'm' for million, or you will be a very unhappy camper.

SEE ALSO
diablo(8), dclean(8), dicmd(8), didump(8), diload(8), dnewslink(8), doutq(8), dexpire(8), dexpireover(8), diconvhist(8), dilookup(8), dspoolout(8), dnewsfeeds(5), dkp(8), dpath(8), diablo-kp(5), diablo-files(5)