Abstract
The goal of constructing reliable programs has led to the introduction of transaction (action) software into programming environments. The further goal of constructing reliable programs in a distributed environment has led to the extension of transaction systems to operate in a more decentralized environment.
We present the deisgn of a transaction manager that is integrated within the kernel of a decentralized operating system, the Clouds kernel. This action management system supports nested actions, action-based locking, and efficient facilities for supporting recovery. The recovery facilities have been designed to support a systems programming language which recognizes the concept of an action.
Orphans, disjoint parts of actions that will later abort, are managed using a time-driven orphan detection scheme which requires a clock synchronization protocol. We present the facilities to generate a system-wide global clock. In addition to the design of facilities necessary to support a decentralized action manager, we present a search protocol to locate objects in the distributed environment.
The design goal of this implementation has been to achieve the erformance necessary to support an experimental testbed, which serves as the basis for further work in the area of decentralized systems. We feel this prototype implementation meets this goal.