This chapter deals with methods for performing atomic
actions on a collection of computers, even in the face of such adverse
circumstances as concurrent access to the data involved in the actions, and
crashes of some of the computers involved. For the sake of definiteness, and
because it captures the essence of the more general problem, we consider the
problem of crash recovery in a data storage system which is constructed from a
number of independent computers.