A Linguistic Approach to Failure Handling in Distributed Systems
Distributed computer systems are increasingly being used for controlling critical applications. An important aspect to constructing dependable systems for such use is ensuring that the system software is robust to failures in the underlying computing platform. One property that makes failures difficult to handle in this environment is that they can occur concurrently with other system events. This paper describes a language-based approach for constructing system software that can cope with such asynchrony in a systematic manner. The basic idea is to treat failures as just another class of events that are handled similarly to normal events. Linguistic constructs that can be added to distributed programming languages with minimal impact are then proposed to handle such failure events. To make our ideas precise, we use the SR distributed programming language as a basis for incorporating these constructs. The approach is illustrated by a detailed presentation in the extended SR language of a replicated directory management program.
KeywordsStable Storage Directory Manager Binding Variable Event Handler Event Description
Unable to display preview. Download preview PDF.
- Reference Manual for the Ada Programming Language. ANSI/MBL--STD--1815A, 22 January 1983.Google Scholar
- F. Cristian, H. Aghili, R. Strong and D. Dolev, “Atomic broadcast: From simple message diffusion to byzantine agreement”, Proc. 15th Annual International Symposium on Fault-Tolerant Computing, Ann Arbor, Michigan (June 1985), 404–409.Google Scholar
- F. Cristian, “Agreeing on who is present and who is absent in a synchronous distributed system”, Proc. 18th Annual International Symposium on Fault-Tolerant Computing, Tokyo (June 1988), 206–211.Google Scholar
- B.W. Lampson, “Atomic transactions”, In Distributed Systems--Architecture and Implementation. Lecture Notes in Computer Science Vol. 105, Springer-Verlag, New York, 1981, Chapter 11.Google Scholar
- B. Liskov and R. Scheifler, “Guardians and Actions: Linguistic support for robust, distributed programs”, Proc. 9th Symp. on Prin. of Programming Languages, Austin, TX (Jan. 1983), 7–19.Google Scholar
- J. Mitchell, W. Maybury and R. Sweet, “Mesa language manual”, Version 5.0. Report CSL-79-3, Xerox PARC, April 1979.Google Scholar