Abstract
This paper introduces two benign failure models for shared memory in distributed systems, crash-omission and crash-eventual. These models are of intermediate power between the crash model and omission models of [JCT92]. (They exhibit more faulty behaviors than crash and fewer than omission.) Unlike the crash model, crash-omission is shown to have universal, gracefully-degrading constructions. That is, for any integer k, any shared object may be constructed from shared registers and consensus objects, so that: (1) if no more than k of the components suffer crash-omission failures, the constructed object exhibits no failures, and (2) if more than k of the components suffer crash-omission failures, the constructed object exhibits crash-omission failures.
Simple constructions also demonstrate that registers and consensus objects in the (apparently) less benign crash-eventual model can be used to construct corresponding objects in the crash-omission model.
These results are cited as evidence that the crash-omission failure model may be an appropriate choice to consider in the formulation of a more extensive theory of fault-tolerant shared objects.
Preview
Unable to display preview. Download preview PDF.
References
Y. Afek, D. Greenberg, M. Merritt, and G. Taubenfeld. Computing with faulty shared memory. In Proc. 11th ACM Symp. on Principles of Distributed Computing, pages 47–58, 1992.
G. Bell. Ultracomputers: A teraflop before its time. Communications of the ACM, 35(8):27–47, August 1992.
B. Bloom. Constructing two-writer atomic registers. In Proc. of the Sixth ACM Symp. on Principles of Distributed Computing, pages 249–259, 1987.
J. E. Burns and G. L. Peterson. Constructing multi-reader atomic values from non-atomic values. In Proc. of the Sixth ACM Symp. on Principles of Distributed Computing, pages 222–231, 1987.
N. Carriero and D. Gelernter. Linda in context. Communications of the ACM, 32(4):444–458, April 1989.
B. Chor, A. Israeli, and M. Li. On processor coordination using asynchronous hardware. In Proc. 6th ACM Symp. on Principles of Distributed Computing, pages 86–97, 1987.
D. Dolev, C. Dwork, and L. Stockmeyer. On the minimal synchronism needed for distributed consensus. Journal of the ACM, 34(1):77–97, 1987.
M. Fischer, N. Lynch, and M. Paterson. Impossibility of distributed consensus with one faulty process. Journal of the ACM, 32:374–382, April 1985.
M. Herlihy. Wait-free synchronization. ACM Trans. on Programming Languages and Systems, 11(1):124–149, January 1991.
P. Jayanti, T. Chandra, and S. Toueg. Fault-tolerant wait-free shared objects. In 33rd Annual Symp. on the Foundations of Computer Science. IEEE Computer Society Press, October 1992.
K. Li and P. Hudak. Memory coherence in shared virtual memory systems. ACM Trans. on Programming Languages and Systems, 7(4):321–359, 1989.
M. C. Loui and H. H. Abu-Amara. Memory requirements for agreement among unreliable asynchronous processes. Advances in Computing Research, JAI Press, 4:163–183, 1987.
L. Lamport. On interprocess communication, parts I and II. Distributed Computing, 1:77–101, 1986.
N. A. Lynch and M. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proc. of 6th ACM Symp. on Principles of Distributed Computation, pages 137–151, August 1987. Expanded version available as Technical Report MIT/LCS/TR-387, April 1987.
M. Li, J. Tromp, and P. M. B. Vitányi. How to construct concurrent waitfree variables. Technical Report CS-8916, CWI, Amsterdam, April 1989. See also: pp. 488–505 in: Proc. International Colloquium on Automata, Languages, and Programming, Lecture Notes in Computer Science, Vol. 372, Springer Verlag, 1989.
N. A. Lynch. I/O automata: A model for discrete event systems. In 22nd Annual Conf. on Information Science and Systems. Princeton University, March 1988. Also MIT technical report number MIT/LCS/TM-351.
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6(1):319–340, 1976.
S. Owicki. Axiomatic Proof Techniques for Parallel Programs. PhD thesis, Cornell University, August 1975.
G. L. Peterson and J. E. Burns. Concurrent reading while writing II: The multi-writer case. In Proc. of the 28th IEEE Annual Symp. on Foundations of Computer Science, pages 383–392, October 1987.
G. L. Peterson. Concurrent reading while writing. ACM Trans. on Programming Languages and Systems, 5(1):46–55, 1983.
A. K. Singh, J. H. Anderson, and M. G. Gouda. The elusive atomic register revisited. In Proc. of the Sixth ACM Symp. on Principles of Distributed Computing, pages 206–221, 1987.
A. S. Tanenbaum, M. F. Kaashoek, and H. E. Balvrije. Parallel programming using shared objects. IEEE Computer, pages 10–19, August 1992.
J. Tromp. How to construct an atomic variable. In J.C. Bermond and M. Raynal, editors, Proc. of the 3rd International Workshop on Distributed Algorithms, pages 292–302. Springer-Verlag LNCS 392, September 1989.
G. Taubenfeld and S. Moran. Possibility and impossibility results in a shared memory environment. In 3rd International Workshop on Distributed Algorithms, 1989. Lecture Notes in Computer Science, vol. 392 (eds.: J.C. Bermond and M. Raynal), Springer-Verlag 1989, pages 254–267.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Afek, Y., Merritt, M., Taubenfeld, G. (1993). Benign failure models for shared memory. In: Schiper, A. (eds) Distributed Algorithms. WDAG 1993. Lecture Notes in Computer Science, vol 725. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57271-6_28
Download citation
DOI: https://doi.org/10.1007/3-540-57271-6_28
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57271-8
Online ISBN: 978-3-540-48029-7
eBook Packages: Springer Book Archive