---
title: "Object replication; process resilience"
subject: "Distributed System"
chapter: 7
key: "semester_7/distributed_system:object-replication-resilience"
source: https://www.bctengineer.com/q/semester_7/distributed_system/object-replication-resilience
site: BCT Engineering
---

# Object replication; process resilience

Distributed System · Chapter 7: Replication

- Asked in: 2074 Chaitra, 2+6 marks
- Video: [3.5 Process Resilience](https://www.youtube.com/watch?v=C4z9GZ8TKtc) — OU Education
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/object-replication-resilience
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-7

## Question

What do you mean by object replication? Explain process resilience approach.

## Short answer

Object replication keeps identical copies of a distributed object on multiple machines for fault tolerance and load sharing, requiring total order of invocations. Process resilience uses a process group: flat groups decide collectively with no single failure point, hierarchical groups use a coordinator; K-fault tolerance needs K+1 replicas for crash failures.

## Answer

#### Object replication
**Object replication** means keeping copies (replicas) of a distributed object on multiple machines so that they all hold the same state and can serve invocations. It is used for **fault tolerance** (availability), **performance** (load sharing, local access) and scalability.

Issues:
- **Consistency**: invocations on replicas must keep them identical; all replicas must apply the same operations in the same order (e.g. by totally ordered multicast).
- **Replicated invocations**: a replicated object calling another object may send the same call many times, so duplicates have to be suppressed.
- **Replication approaches**: the object itself can be made aware of replication (the object handles its own consistency), or the middleware (**replicated-object adapter, ORB**) does it transparently, e.g. in CORBA's fault-tolerant object groups.

Replication models are *active* replication (all replicas execute every invocation) and *primary-backup* (passive) replication; in both, the object **group** is referenced as a single object.

#### Process resilience approach
**Process resilience** means protecting a system against process failures by replicating a process into a **process group** that works as a single logical process: if a member fails, another takes over, so the service goes on.

**Group organization**
- **Flat group**: all processes are equal and decide collectively (e.g. by voting). There is no single point of failure, but decision making is more complex and has more overhead.
- **Hierarchical group**: one coordinator decides and the workers carry out the instructions. It is simple and fast, but if the coordinator fails the group must elect a new one.

```text
Flat group        Hierarchical group
 P1--P2            Coordinator
  \  /              /   |   \
   P3--P4         W1   W2   W3
```

**Failure masking and group size**: a group that survives K failures is K-fault tolerant. With crash (fail-silent) failures, K+1 members suffice; with arbitrary (Byzantine) failures, 2K+1 members are needed so that a majority vote gives the correct result, and 3K+1 members are needed for the members to reach agreement among themselves.

**Agreement in faulty systems**: members must agree on decisions even with faulty members (consensus, Byzantine agreement). A **group membership** service is needed to add and remove members and to detect failed members (failure detection by pinging and timeouts).

Example: a replicated database server group of 3 servers answering client requests; if one crashes, the other two keep serving.

## Check yourself

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

1. What is object replication?
   A. Keeping copies of a distributed object on multiple machines with the same state to serve invocations
   B. Splitting an object's code across machines
   C. Deleting objects not in use
   D. Compressing objects for storage
   Answer: A. Replicas hold the same state and serve invocations, giving fault tolerance, performance and scalability. (Key point: Object replication)

2. How does process resilience protect against process failure?
   A. By running one fast process
   B. By replicating a process into a process group that acts as one logical process so another member takes over on failure
   C. By restarting the whole machine
   D. By blocking all clients
   Answer: B. A process group behaves as a single logical process; if a member fails, others continue the service. (Key point: Process resilience)

3. Which is true of a flat process group compared with a hierarchical group?
   A. Flat groups have a single coordinator
   B. Flat groups have no single point of failure but decision making is more complex
   C. Hierarchical groups need no election after coordinator failure
   D. Flat groups are simpler and faster
   Answer: B. In a flat group all members are equal and decide collectively, avoiding a single point of failure but with more overhead; hierarchical groups are simple but depend on the coordinator. (Key point: Flat vs hierarchical group)

4. To be K-fault tolerant with Byzantine (arbitrary) failures using voting, how many members are needed?
   A. K + 1
   B. 2K + 1
   C. K
   D. K - 1
   Answer: B. Voting needs a correct majority, so 2K+1 members; K+1 is enough only for crash failures, and 3K+1 for agreement. (Key point: Group size for K failures)

## Related in Distributed System

- [Short note: Process resilience](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aprocess-resilience-note) — Distributed System, chapter 9, asked 4×
- [Faults, failures, errors; resilience](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Afaults-failures-resilience) — Distributed System, chapter 9
- [Replication as scaling; concurrent invocations](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Areplication-concurrent-invocations) — 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×
- [IDL, middleware and RMI approach](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aidl-middleware-rmi) — Distributed System, chapter 2

## Related in other subjects

- [Algorithmic vs object-oriented decomposition](https://www.bctengineer.com/question.md?key=semester_6%2Fobject_oriented_analysis_and_design%3Aalgorithmic-vs-oo-decomposition) — Object Oriented Analysis and Design, chapter 1
- [Organization vs management; scientific approach](https://www.bctengineer.com/question.md?key=semester_7%2Forganization_and_management%3Aorg-vs-management-scientific) — Organization and Management, chapter 2
- [Layered approach to security](https://www.bctengineer.com/question.md?key=semester_8%2Finformation_system%3Alayered-security-throughput) — Information System, chapter 2
- [Cipolletti weir slope and approach velocity](https://www.bctengineer.com/question.md?key=semester_3%2Ffluid_mechanics%3Acipolletti-slope-velocity-of-approach) — Fluid Mechanics, chapter 6
