Distributed Memory in a Heterogeneous Network, as Used in the
C.E.R.N. PS Complex Timing System.
Vova Kolvaltsov, I.H.E.P. Protvino Russia
Julian Lewis*, C.E.R.N. Geneva Switzerland
The Distributed Table Manager (DTM) is a fast and efficient utility for
distributing named binary data structures called Tables, of arbitrary size and
structure, around a heterogeneous network of computers to a set of registered
clients. The Tables are transmitted over a UDP network between DTM servers in
network format, where the servers perform the conversions to and from host
format for local clients. The servers provide clients with synchronization
mechanisms, a choice of network data flows, and table options such as keeping
table disc copies, shared memory or heap memory table allocation, table
read/write permissions, and table subnet broadcasting. DTM has been designed
to be easily maintainable, and to automatically recover from the type of errors
typically encountered in a large control system network, implying a powerful
set of remote monitoring and diagnostic functions.
The DTM system is based on a three level server daemon hierarchy, in which an
inter daemon protocol handles network failures, and incorporates recovery
procedures which will guarantee table consistency when communications are
re-established. These protocols are implemented over a communications layer
which performs the data conversions, packet splitting, error-correction with
retry, and time out handling. The same communications layer is used to
implement the application program interface which calls on the server daemon
for client services. DTM is a registration based system, in which
communications are established dynamically as needed, and tables are
distributed only to the clients who have registered their interest in them. The
registration protocols include mechanisms to recover from daemon re-launches,
and clean up after dead clients. These mechanisms will be explained in detail,
and the implication on table consistency and real time system response will be
discussed.