Long-Lived Rambo: Trading Knowledge for Communication
Shareable data services providing consistency guarantees, such as atomicity (linearizability), make building distributedsystems easier. However, combining linearizability with efficiency in practical algorithms is difficult. A reconfigurablelinearizable data service, called Rambo, was developed by Lynch and Shvartsman. This service guarantees consistencyunder dynamic conditions involving asynchrony, message loss, node crashes, and new node arrivals. The specificationof the original algorithm is given at an abstract level aimed at concise presentation and formal reasoning aboutcorrectness. The algorithm propagates information by means of gossip messages. If the service is in use for along time, the size and the number of gossip messages may grow without bound. This paper presents a consistentdata service for long-lived objects that improves on Rambo in two ways: it includes an incremental communicationprotocol and a leave service. The new protocol takes advantage of the local knowledge, and carefully manages thesize of messages by removing redundant information, while the leave service allows the nodes to leave the systemgracefully. The new algorithm is formally proved correct by forward simulation using levels of abstraction. Anexperimental implementation of the system was developed for networks-of-workstations. The paper also includesselected analytical and preliminary empirical results that illustrate the advantages of the new algorithm.