---
title: "Reasons for replication; fault tolerant services"
subject: "Distributed System"
chapter: 7
key: "semester_7/distributed_system:replication-reasons-ft-services"
source: https://www.bctengineer.com/q/semester_7/distributed_system/replication-reasons-ft-services
site: BCT Engineering
---

# Reasons for replication; fault tolerant services

Distributed System · Chapter 7: Replication

- Asked in: 2072 Kartik, 4+4 marks
- Video: [Distributed Consensus and Data Replication strategies on the server](https://www.youtube.com/watch?v=GeGxgmPTe4c) — Gaurav Sen
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/replication-reasons-ft-services
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-7

## Question

What are the reasons for replicating the service provided? Discuss about fault tolerant services.

## Short answer

Replicating a service enhances performance, availability (1 - p^n), fault tolerance, disconnected operation, and reduces network traffic. Fault-tolerant services use multiple replica managers; models: passive (primary-backup) with one primary processing requests and updating backups, active replication with all replicas executing in total order, and gossip-based lazy replication. Correctness needs linearizability or sequential consistency, and replicas: f+1 for crash, 2f+1 for Byzantine with voting.

## Answer

#### Reasons for replicating a service
1. **Performance enhancement**: replicas share load and can be placed near users, so response time falls (web caching, mirror sites, CDN). Scalability in numbers and geography.
2. **Increased availability**: if a server fails or is unreachable, another replica provides the service. With n replicas each failing with probability p, availability is 1 − pⁿ.
3. **Fault tolerance**: the system keeps correct service despite crashes, and, using voting among replicas, even arbitrary (Byzantine) faults. Data survive disk or machine failure.
4. **Disconnected operation**: mobile users work on local copies when the network is down.
5. **Reduced network traffic** because requests are answered locally.

#### Fault-tolerant services
A fault-tolerant service continues to give correct answers even if some of its servers fail. It is made by replicating the service on several replica managers (RMs) so that failures are masked. Main models:

**1. Passive (primary-backup)**: front ends talk to one primary RM, which executes requests and sends updates to the backups. If the primary fails, a backup is promoted. Tolerates crash faults, with less work than active.

**2. Active replication**: requests are multicast in total order to all RMs, which all execute them; replies are compared or the first one used. Hides failures immediately and can tolerate Byzantine faults.

**3. Gossip / lazy replication**: any replica can be contacted; updates are propagated in the background. Highly available, with weaker consistency.

Correctness criteria: **linearizability** (operations appear in real-time order of one copy) or **sequential consistency**. A fault-tolerant service requires also failure detection, request ids to avoid duplicate execution, state transfer to repaired replicas, and enough replicas: f+1 for f crashes, 2f+1 for f Byzantine failures with voting (3f+1 if the replicas must also agree).

## Check yourself

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

1. Which is NOT a main reason for replicating a service?
   A. Improving performance by sharing load and placing replicas near users
   B. Increasing availability when a server fails
   C. Allowing disconnected operation for mobile users
   D. Eliminating the need to keep copies consistent
   Answer: D. Replication actually creates the consistency problem; it does not remove it. The other options are genuine reasons. (Key point: Reasons for replication)

2. In passive (primary-backup) replication, what happens when the primary fails?
   A. All requests are lost permanently
   B. A backup is promoted to become the new primary
   C. Front ends multicast requests to all replicas
   D. The client executes the request itself
   Answer: B. Front ends talk only to the primary, which sends updates to backups; on its failure a backup is promoted. (Key point: Passive replication)

3. What distinguishes active replication from primary-backup?
   A. Only one replica executes each request
   B. Requests are multicast in total order to all RMs, which all execute them
   C. Updates propagate lazily in the background
   D. It tolerates only crash faults
   Answer: B. In active replication all RMs execute every request in the same total order, so failures are masked immediately and Byzantine faults can be tolerated with voting. (Key point: Active replication)

4. Which property describes gossip (lazy) replication?
   A. Strong consistency with linearizability always
   B. Any replica can be contacted and updates spread in the background, giving high availability but weaker consistency
   C. A single primary handles all requests
   D. Requests are totally ordered before execution
   Answer: B. Gossip trades consistency for availability by propagating updates lazily between replicas. (Key point: Gossip replication)

5. How many replicas are needed to tolerate f Byzantine failures with voting (without needing agreement among replicas)?
   A. f + 1
   B. 2f + 1
   C. f
   D. 3f + 1
   Answer: B. A majority of correct replicas is needed for voting, so 2f+1 replicas; f+1 suffices only for f crash failures. (Key point: Number of replicas needed)

## Related in Distributed System

- [Reasons for replication; active replication](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aactive-replication-reasons) — Distributed System, chapter 7, asked 2×
- [K-fault tolerant system; recovery](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Ak-fault-recovery) — Distributed System, chapter 9
- [Replication, fault tolerance, scalability](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Areplication-scalability-ft) — Distributed System, chapter 7
- [Passive vs active replication; availability](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Apassive-vs-active-available) — Distributed System, chapter 7, asked 2×
- [Replication objectives; primary-backup](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Areplication-objectives-primary-backup) — Distributed System, chapter 7
- [CORBA services; object adapter functions](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acorba-services-object-adapter) — Distributed System, chapter 4

## Related in other subjects

- [Bus service use cases with elaboration](https://www.bctengineer.com/question.md?key=semester_6%2Fobject_oriented_analysis_and_design%3Agre-bus-service-use-cases) — Object Oriented Analysis and Design, chapter 2
- [Unfair service centre simulation](https://www.bctengineer.com/question.md?key=semester_4%2Fdata_structure_and_algorithm%3Aunfair-service-centre-simulation) — Data Structure and Algorithm, chapter 2
- [Need and services of DNS](https://www.bctengineer.com/question.md?key=semester_8%2Finternet_and_intranet%3Adns-need-services) — Internet and Intranet, chapter 3
- [Train services for trapezoidal and quadrilateral curves](https://www.bctengineer.com/question.md?key=semester_7%2Futilization_of_electrical_energy%3Atrapezoidal-quadrilateral-train-services) — Utilization of Electrical Energy, chapter 4
