SLD [ Intro | Pubs | RunInfo | Workbook | Software | SLACVX | Search ]

The DUCS Archive System


This document describes the DUCS Archive System that was instituted at the beginning of 1997. The system replaced a much less automated, vm-based system that has been described in the documents, The Practical Guide to Version Management and VERS_MAN: Tracking Code Version Releases. For a comparison between the new and the older system see The New DUCS Archive System., an SLD software review talk presented 8 January 1997.

The DUCS Archive System maintains a set of directory trees that constitute snapshots of all of the code in DUCS at a given time. These snapshots are taken not at any predetermined interval but when some milestone for the collaboration has been reached, such as when it is time to begin a major Monte Carlo run. At such times, the archivist issues an archive command from the DUCS account on the SLAC central unix system. This in turn causes copies to be made on a specified list of DUCS nodes, currently the SLACVX vax and alpha clusters and the Vanderbilt University alpha cluster. Users are then presented with a simple command by which they can choose to run from the current, ever-changing DUCS or from an archived, stable copy.

The DUCS Archive System is far from being a complete code management system. Such systems require orders of magnitude more logic. In particular, the DUCS Archive System allows only two levels of granularity in archive copies. One can either copy a full DUCS directory tree, or one can copy a partial DUCS directory tree, containing only a subset of complete DUCS sections. When the system copies a full DUCS directory tree, it declares a new major version. When the system copies a partial DUCS directory tree, it declares a new minor version. For example, if one is to make a minor version that contains new code for the DUCS section DC, the minor version must contain the entire DUCS section DC. A minor version may contain one or more complete DUCS sections. All other DUCS sections are taken from the associated major version.

All DUCS archive versions are copied to tape at SLAC soon after they are created on disk. The tape copies serve both as a backup, should disk problems arise, and as a permanent record of the analysis code. As new versions are added to the disks, old versions are deleted to make room. The deletions are not automatic. The archivist must select which versions to delete. This will be versions that are no longer in use and will probably never again be used. Versions deleted from disk remain available from archive tapes and can be restored by the archivist as needed.

Data Structure

The archives consist of copies of full or partial DUCS directory trees. They are located in the vms file structure under the root logical name DISK$SLD_ARC_AXP for Alpha code and DISK$SLD_ARC_VAX for Vax code. Beneath this root, each archive copy is a directory tree with top level directory name VERSION_major_minor, for example, VERSION_14.DIR.

This structure is shown schematically in the accompanying diagram.

The diagram shows five DUCS directory trees.

Note that version 14.3 does not contain the sections DC, CRID or LAC. This illustrates the point that increasing minor version numbers do not necessarily include the code found in earlier minor versions. If the archivist wishes to include code from earlier minor versions, this code must be explicitly copied into the new minor version's directory tree. Step by step instructions for preparing minor versions are given in the discussion of the command ducs_arch partial.

The archive system maintains parallel archives at SLAC and at selected remote hosts (currently just Vanderbilt University). The same root logical names are used at all hosts. Comparable amounts of disk space are set aside for the archives at all hosts allowing all hosts to maintain the same set of archives. At least four complete copies of DUCS and many more partial copies of DUCS can be maintained in the available disk space. When the available space has been exhausted, the archivist may issue a command to delete selected versions from the disk archives.

At SLAC only, the archives are written to tape as well as to disk. It is not likely that versions that have been deleted from disk will be needed again, but should this occur, or should the archive disk fail, data can be recovered from the SLAC archive tapes. The tapes also serve as a proper archival record of SLD analysis software.

An Oracle database maintains information on the status of all archive versions.


The DUCS Archive System presents two faces to the world, one for the archivist and one for the user.

Joseph Perl
24 September 1997