Fault tolerance is an approach by which reliability of a computer system can be increased beyond what can be achieved by traditional methods. While hardware supported fault tolerance has been well-documented, the newer, software supported fault tolerance techniques have remained scattered throughout the literature. Comprehensive and self-contained, this book organizes that body of knowledge with a focus on fault tolerance in distributed systems. (The uniprocess case is treated as a special case of distributed systems.) KEY TOPICS: Treats fault tolerant distributed systems as consisting of levels of abstraction, providing different tolerant services. MARKET: For researchers/practitioners working in the area of fault tolerance.
Basic Concepts and Definitions. Phases in Fault Tolerance. Overview of Hardware Fault Tolerance. Reliability and Availability. Summary.
System Model. Interprocess Communication. Ordering of Events and Logical Clocks. Execution Model and System State. Summary.
Byzantine Agreement. Synchronized Clocks. Stable Storage. Fail Stop Processors. Failure Detection and Fault Diagnosis. Reliable Message Delivery. Summary.
Reliable Broadcast. Atomic Broadcast. Causal Broadcast.
Asynchronous Checkpointing and Rollback. Distributed Checkpointing. Summary.
Atomic Actions and Serializability. Atomic Actions in a Centralized System. Commit Protocols. Atomic Actions on Decentralized Data. Summary.
Optimistic Approaches. Primary Site Approach. Resiliency with Active Replicas. Voting. Degree of Replication. Summary.
Resilient Remote Procedure Call. Resiliency with Asynchronous Communication. Resiliency with Synchronous Message Passing. Total Failure and Last Process to Fail. Summary.
Approaches for Uniprocess Software. Backward Recovery in Concurrent Systems. Forward Recovery in Concurrent Systems. Summary.