An Efficient Universal Construction for Message-Passing Systems

A universal construction is an algorithm that transforms any object with a sequential specification into a wait-free and linearizable implementation of that object. This paper presents a novel universal construction algorithm for a message-passing system with process crash failures. Our algorithm relies on two fine-grained underlying abstractions: a weak form of leader election, and a one-shot form of register. Our algorithm is \emp{indulgent}, \emp{efficient} and \emp{generic}. Being indulgent intuitively means that the algorithm preserves consistency even if the underlying system is asynchronous for arbitrary periods of time. Compared to other indulgent universal constructions, our algorithm uses fewer messages and gives rise to less work in steady-state. Our algorithm is generic in two senses: (1) it is initially devised for a crash-stop model and can be easily ported to various crash-recovery models, and (2) it is initially optimized for the steady-state period but can easily be extended to trade-off between steady-state performance and fail-over time.

Related material