Implementing Atomicity in Two Systems: Techniques, Tradeoffs, and Experience
Abstract
This paper presents our experience with implementing atomicity in two systems: the QuickSilver distributed file system and the Starburst relational database manager. Each of these systems guarantees that certain collections of operations done on behalf of their clients execute atomically, despite process, machine, or network failures. In this paper we describe the atomic properties implemented by each system, present the algorithms and mechanisms used, examine the similarities and differences between the two systems, and give the rationale for different design decisions. We demonstrate that the support of atomicity with high performance requires a variety of techniques carefully chosen to balance the amount of data logged, the level of concurrency allowed, and the mutual consistency requirements of sets of objects. The main goal of this paper is to help others implement efficient systems that support atomicity. Although we will discuss many techniques and mechanisms for implementing atomicity, we do not attempt to provide an exhaustive description of all possibilities or a complete set of references, nor do we claim to be the first to use the techniques that we describe. © 1993 IEEE