In this paper, we present RAMBO, an algorithm for emulating a read/write distributed shared memory in a dynamic, rapidly changing environment. RAMBO provides a highly reliable, highly available service, even as participants join, leave, and fail. In fact, the entire set of participants may change during an execution, as the initial devices depart and are replaced by a new set of devices. Even so, RAMBO ensures that data stored in the distributed shared memory remains available and consistent. There are two basic techniques used by RAMBO to tolerate dynamic changes. Over short intervals of time, replication suffices to provide fault-tolerance. While some devices may fail and leave, the data remains available at other replicas. Over longer intervals of time, RAMBO copes with changing participants via reconfiguration, which incorporates newly joined devices while excluding devices that have departed or failed. The main novelty of RAMBO lies in the combination of an efficient reconfigurat...
Seth Gilbert, Nancy A. Lynch, Alexander A. Shvarts