Skip to main content

Fault tolerance and types of faults

Short answer

Fault tolerance is the ability of a system to continue correct operation despite faults. Faults in distributed systems include crash (server halts), omission (lost messages), timing (response outside deadline), response (incorrect value), and arbitrary/Byzantine (malicious or arbitrary behavior).

What is fault tolerance? Explain different type of faults that may occur in a distributed system.

Fault tolerance

Fault tolerance is the property of a system to keep working correctly in the presence of faults, so that a fault does not become a failure of the whole service. It is achieved by redundancy and recovery.

Types of faults

A fault is the defect or cause (a broken component, a software bug, a bad link) that may lead to an error, an incorrect internal state. An error that reaches the service interface and makes the system deviate from its specification is a failure. By duration, faults are transient (occur once and vanish), intermittent (appear and disappear repeatedly) or permanent (persist until the component is repaired).

By the way a server fails, the failures are classified as:

TypeBehaviour
Crash failureThe server halts, but worked correctly until it halted
Omission failureFails to respond to requests (receive omission) or to send replies (send omission)
Timing failureResponse comes outside the specified time interval
Response failureWrong value (value failure) or wrong state transition
Arbitrary (Byzantine) failureProduces arbitrary responses at arbitrary times; may be malicious

By source, faults can also be hardware, software, network or operator faults. In a distributed system, network faults such as lost messages, link failures and partitions are especially important.

Example: a server that stops responding has a crash failure, and a link that drops 5% of packets has an omission failure.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Distributed System chapter 9 questions →