Book contents
- Frontmatter
- Contents
- Preface
- 1 Introduction: Distributed Systems
- Part One Protocols
- Part Two Fundamental Algorithms
- Part Three Fault Tolerance
- 13 Fault Tolerance in Distributed Systems
- 14 Fault Tolerance in Asynchronous Systems
- 15 Fault Tolerance in Synchronous Systems
- 16 Failure Detection
- 17 Stabilization
- Part Four Appendices
- References
- Index
16 - Failure Detection
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- 1 Introduction: Distributed Systems
- Part One Protocols
- Part Two Fundamental Algorithms
- Part Three Fault Tolerance
- 13 Fault Tolerance in Distributed Systems
- 14 Fault Tolerance in Asynchronous Systems
- 15 Fault Tolerance in Synchronous Systems
- 16 Failure Detection
- 17 Stabilization
- Part Four Appendices
- References
- Index
Summary
The impossibility of solving consensus in asynchronous systems (Section 14.1) has led to weaker problem formulations and stronger models. Examples of the former include weaker coordinations and randomization, and examples of the latter include introducing synchrony. Failure detectors are now widely recognized as an alternative way to strengthen the computation model.
Studying synchronous models is practically motivated because most distributed programming environments do provide clocks and timers in some way. Theoretical studies reveal for what tasks the use of these primitives is necessary and to what degree they must be used. With failure detectors, the situation is similar: quite often the run-time support system will return error messages upon an attempt to communicate with a crashed process. However, these error messages are not always absolutely reliable. It is therefore useful to study how reliable they must be to allow a solution for the consensus problem (or other problems).
In contrast to synchrony (implemented using physical clocks), failure detectors have no straightforward intuitive implementation. This implies that non-trivial solutions must be found in order to implement them in the runtime system or as a module in the application. The implementations more often than not rely on the use of timers (see Section 16.4) and this has led to some serious critiques of the failure detector approach. It was argued that “failure detectors” as such do not solve any problems, because their implementation requires the same resources (time) that can be used to solve consensus directly.
- Type
- Chapter
- Information
- Introduction to Distributed Algorithms , pp. 505 - 519Publisher: Cambridge University PressPrint publication year: 2000