Next: 4.3 Archiver daemons Up: 4 Archive Pipeline: detailed Previous: 4.1 copyd daemon

4.2 distd daemon

The distributor daemon distd makes sure that all the files from its working directory are linked to the working directory of each archiver and miscellaneous process. When the distribution is done successfully, distd removes the files from its working directory.

However, in case an archiver daemon signals that its media is full (by writing EOM in its .status file) the distribution process is stopped. distd forces the other archiver daemons to save their files (by writing SAVE_NOW in their .broadcast file) and waits until they are finished. Then distd moves the files that couldn't be saved by all the archivers into the .redist subdirectory in its working directory. The .redist subdirectory will be redistributed to the archivers only (the miscellaneous processes have already processed these files) next time distd is restarted, that is after the operator has changed the media. Eventually, distd warns the archive manager that the media are full (when one is full, all of them are considered full for an exact mirroring) and exits.

distd parfile is listed below. The main information contained in it is the working directories of all the archiver and miscellaneous process daemons. The exact algorithm for distd is sketched on 4.2.

#
# distd.par - distributor daemon parfile
#

# Directory where the datas to be distributed are
daemon_dir = "$ARCHDIR/distributor"

# Name of each archiver's working directory
arch_dir = "$ARCHDIR/tarexa2 $ARCHDIR/tarexa"

# Name of each misc proc's working directory
misc_dir = "$ARCHDIR/striphead $ARCHDIR/aiqe"

# Mail adress of the archive managers
arch_mail = "od-archive"

# Sleeping time after each iteration (in seconds)
sleep_time = 600

[IMAGE (figure)]


archive@cfht.hawaii.edu