The RelaX Architecture
- Overview and Interfaces -
R. Kr?ger, M. Mock, R. Schumann
German National Research Center for Computer Science (GMD)
5205 St. Augustin 1, West Germany
RelaX (Reliable distributed applications support on UNIX) is a portable and extensible system software layer on top of UNIX-like operating system kernels supporting reliable distributed applications by a generalized transaction mechanism. The distributed transaction mechanism relieves each programmer of dealing explicitly with error recovery and concurrency control in every distributed application. In order to make transactions applicable as a general programming tool, the following extensions were made to the traditional transaction concept: optional use of uncommitted data, extended nesting, i.e. differentiation between recovery and synchronization levels, possible separation of transaction completion from its commitment, group commitment, multiple processes per transaction per site, and fast recovery in virtual memory, respectively. The transaction mechanism is isolated in a server (Transaction Manager, TM) that cooperates with an extensible set of resource managers (RM), which provide different kinds of long-term storage entities accessible by RelaX transactions (e.g. object management systems, transactional file systems, database systems). Each RM provides a standard interface to the transaction kernel, and, if so desired, additional RMs can be built. In order to support the easy construction of new RMs, RelaX provides generic software components as building blocks for any kind of RM. The generic transaction support components implement the interface between the RM and the TM, the local functions of concurrency control based on non-strict two-phase read/write locking and the local recovery control functions. They only assume a few basic operations from the underlying resources. This paper describes the RelaX architecture and its interfaces. It concludes with sketching the design of an examplary RM, the transactional object management system which provides access to persistent shared objects that can be manipulated within transactions. RelaX contributes the transaction mechanism to the ESPRIT project COMANDOS (Construction and Management of Distributed Open Systems). A prototype implementation of the transaction mechanism is running at GMD.