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 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 indulgent, efficient and 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) although it is devised for a crash-stop model, it can be easily ported to various crash-recovery models, and (2) although it is optimized for steady-state periods, it can easily be extended to trade-off between steady-state performance and fail-over time.
KeywordsTotal Order Correct Process Swiss Federal Institute Leader Election Message Complexity
Unable to display preview. Download preview PDF.
- 1.P. A. Alsberg and J. D. Day. A principle for resilient sharing of distributed resources. In Proceedings of the Second IEEE International Conference on Software Engineering (ICSE), 1976.Google Scholar
- 3.J. F. Bartlett. A nonstop kernel. In Proceedings of the 8 th ACM Symposium on Operating System Principles (SOSP), 1981.Google Scholar
- 4.R. Boichat, P. Dutta, S. Frølund, and R. Guerraoui. Deconstructing Paxos. Technical Report EPFL-2001, Swiss Federal Institute of Technology, January 2001.Google Scholar
- 5.N. Budhiraja, K. Marzullo, F. B. Schneider, and S. Toueg. The primary-backup approach. In S. Mullender, editor, Distributed Systems. Addison-Wesley, 1993.Google Scholar
- 7.G. Chockler and D. Malkhi. Active Disk Paxos with infinitely many processes. In Proceedings of the 21 st ACM Symposium on Principles of Distributed Computing (PODC) (to appear), July 2002.Google Scholar
- 8.X. Défago and A. Schiper. Semi-passive replication and lazy consensus. Technical Report DSC/2000/012, Swiss Federal Institute of Technology, February 2000.Google Scholar
- 9.P. Dutta, F. Frølund, R. Guerraoui, and B. Pochon. An efficient universal construction for message-passing systems. Technical Report EPFL/IC/2002/28, Swiss Federal Institute of Technoology, Lausanne, May 2002.Google Scholar
- 10.E. Gafni and L. Lamport. Disk paxos. In International Symposium on Distributed Computing, pages 330–344, 2000.Google Scholar
- 11.R. Guerraoui. Indulgent algorithms. In Proceedings of the 19 th ACM Symposium on Principles of Distributed Computing (PODC), 2000.Google Scholar
- 12.M. Herlihy. Wait-free synchronization. ACM Transactions on Programming Languages and Systems, 13(1):124–149, January 1991.Google Scholar
- 13.M. Herlihy and J. Wing. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463–492, July 1990.Google Scholar
- 14.L. Lamport. The part-time parliament. Technical Report 49, DEC Systems Research Center, 1989. Also published in ACM Transactions on Computer Systems (TOCS), Vol. 16, No. 2, 1998.Google Scholar
- 15.B. Lampson. How to build a highly available system using consensus. In Proceedings of the International Workshop on Distributed Algorithms (WDAG), Springer-Verlag, LNCS, September 1996.Google Scholar
- 16.J. Yang, G. Neiger, and E. Gafni. Structured derivations of consensus algorithms for failure detectors. In Proceedings of the 17 th ACM Symposium on Principles of Distributed Computing, pages 297–306, 1998.Google Scholar