Objects entered into a HEPDB database are assigned a unique key within the directory into which they are inserted (the key serial number) and are stamped with the insertion date and time. It is important that these values are the same in all copies of the database. This is achieved by assigning these values centrally. The node on which the so-called master server runs may be different for each experiment but will typically be at the laboratory where the experiment is being conducted. At CERN, a dedicated system has been set up to host the master database servers. This is node hepdb.
Master and slave servers operate identically. The only difference lies in the names file that drives them. Updates are always queued by the HEPDB client software into the directory pointed to by the :queue tag in the names file, as described above. The servers scan the directory pointed to by the :todo tag for outstanding updates. In the case of the master server, the :queue and :todo directories are the same. In all other cases it is a separate process that performs the automatic distribution of updates between servers. In the case of distributed file systems such as afs, this operation is trivial. In other cases TCP/IP, Bitnet, DECnet or other transport mechanism is used.
The updates are stamped with the user and node name of origin. This allows the servers to avoid forwarding updates back to their node of origin.