---
title: "Fault tolerance techniques"
subject: "Distributed System"
chapter: 9
key: "semester_7/distributed_system:fault-tolerance-techniques"
source: https://www.bctengineer.com/q/semester_7/distributed_system/fault-tolerance-techniques
site: BCT Engineering
---

# Fault tolerance techniques

Distributed System · Chapter 9: Fault Tolerance

- Asked in: Model question
- Video: [Distributed Systems 2.4: Fault tolerance](https://www.youtube.com/watch?v=43TDfUNsM3E) — Martin Kleppmann
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/fault-tolerance-techniques
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-9

## Question

Define fault tolerance. Explain how fault tolerance is ensured in distributed system. What are the different fault tolerance techniques?

## Short answer

Fault tolerance is the ability to continue providing correct service despite faults, achieved through redundancy and recovery. Techniques include failure detection, replication and voting, checkpointing and message logging, reliable communication, distributed commit, and Byzantine agreement. Redundancy may be information, time, or physical.

## Answer

**Fault tolerance** is the ability of a system to continue to provide correct service even when faults occur: faults are detected, masked, or recovered from, so failures are not visible to the user.

**How it is ensured**: by **redundancy**, together with detecting faults and recovering from them. Redundancy comes in three kinds:
- **Information redundancy**: extra bits, e.g. parity bits, Hamming codes and checksums, to detect and correct errors.
- **Time redundancy**: an action is repeated if needed, e.g. retransmission and transaction retry; used for transient and intermittent faults.
- **Physical redundancy**: extra hardware or software copies, e.g. **triple modular redundancy**, replicated servers and process groups.

**Techniques**
1. **Failure detection**: heartbeats, pinging and timeouts.
2. **Failure masking by redundancy**: process groups with replication; voting (TMR).
3. **Recovery**: **backward recovery** with checkpointing and message logging; **forward recovery** with error-correcting codes.
4. **Reliable communication**: retransmission, sequence numbers, reliable multicast.
5. **Distributed commit**: 2PC/3PC to keep all-or-nothing semantics in the presence of failures.
6. **Agreement protocols**: Byzantine agreement for arbitrary failures.
7. **Avoiding faults**: careful design, testing, using reliable components, and fault prevention.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What does fault tolerance mean?
   A. The system never has faults
   B. The system continues to provide correct service despite faults
   C. The system stops safely on any fault
   D. Faults are visible to users
   Answer: B. Faults are detected, masked or recovered so failures are not visible to the user. (Key point: Definition)

2. Which pairing of redundancy kind and example is correct?
   A. Time redundancy: parity bits
   B. Information redundancy: retransmission
   C. Physical redundancy: triple modular redundancy
   D. Physical redundancy: checksums
   Answer: C. TMR uses extra copies (physical); parity/checksums are information redundancy; retransmission is time redundancy. (Key point: Kinds of redundancy)

3. Time redundancy is mainly suited to which faults?
   A. Permanent faults
   B. Transient and intermittent faults
   C. Byzantine faults only
   D. Design faults
   Answer: B. Repeating an action helps when the fault does not persist. (Key point: Time redundancy use)

4. Which is forward recovery?
   A. Checkpointing
   B. Message logging
   C. Error-correcting codes
   D. Rollback to recovery line
   Answer: C. Forward recovery corrects the error to reach a new correct state; checkpointing and logging are backward recovery. (Key point: Recovery types)

## Related in Distributed System

- [Replication, fault tolerance, scalability](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Areplication-scalability-ft) — Distributed System, chapter 7
- [Fault tolerance and types of faults](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Afault-types) — Distributed System, chapter 9
- [Fault tolerance; Byzantine failure](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Abyzantine-failure-agreement) — Distributed System, chapter 9
- [K-fault tolerant system; recovery](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Ak-fault-recovery) — Distributed System, chapter 9
- [Autonomous vs distributed system](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aautonomous-vs-distributed) — Distributed System, chapter 1
- [Models of distributed system](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Amodels-of-ds) — Distributed System, chapter 1

## Related in other subjects

- [Availability and fault tolerance in GFS](https://www.bctengineer.com/question.md?key=semester_8%2Fbig_data_technologies%3Agfs-availability-fault-tolerance) — Big Data Technologies, chapter 2
- [Fault tolerance and redundancy for reliability](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Afault-tolerance-schemes) — Instrumentation II, chapter 7, asked 4×
- [Software fault tolerance and recovery](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Asw-fault-tolerance-rollback) — Instrumentation II, chapter 9, asked 2×
- [Cable fault location techniques and Murray loop](https://www.bctengineer.com/question.md?key=semester_4%2Fpower_system_analysis_i%3Acable-fault-techniques-murray) — Power System Analysis I, chapter 2
