---
title: "Short note: Forward and backward recovery"
subject: "Distributed System"
chapter: 9
key: "semester_7/distributed_system:forward-backward-note"
source: https://www.bctengineer.com/q/semester_7/distributed_system/forward-backward-note
site: BCT Engineering
---

# Short note: Forward and backward recovery

Distributed System · Chapter 9: Fault Tolerance

- Asked in: 2075 Chaitra, 4 marks; 2072 Kartik, 4 marks (asked 2 times)
- Video: [DS29:Backward and Forward error recovery in distributed systems|Recovery in Concurrent System](https://www.youtube.com/watch?v=BcMtsv2E8tc) — University Academy
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_7/distributed_system/forward-backward-note
- Whole chapter: https://www.bctengineer.com/md/semester_7/distributed_system/chapter-9

## Question

Write a short note on forward and backward recovery in distributed system (recovery approach in distributed system).

## Short answer

Backward recovery restores a previous correct state via checkpoints and logs, losing work since checkpoint but needing no error knowledge. Forward recovery moves to a new correct state using error-specific correction (e.g., error-correcting codes). Backward is general, forward avoids rollback but requires advance error knowledge.

## Answer

#### Backward recovery
The system is brought back to a **previously saved correct state** (a *recovery point* or checkpoint) and execution resumes from there. The state is recorded periodically by **checkpointing** and/or **message logging**. It is general-purpose and does not need to know which error occurred, but it has overhead (saving state), it loses the work done since the checkpoint, and it is impossible for some operations (e.g. once a cash dispenser has paid out money, that cannot be undone). Example: restoring a database from a checkpoint and replaying the log.

#### Forward recovery
The system moves to a **new correct state** from which it can continue, by correcting the error without going back. It requires knowing in advance which errors may occur. Examples: **error-correcting codes**, and **erasure correction**, where a lost packet is reconstructed from other, successfully delivered packets instead of being resent.

| Point | Backward recovery | Forward recovery |
|---|---|---|
| Idea | Roll back to saved state | Move to new correct state |
| Error knowledge | Not needed | Needed in advance |
| Overhead | Checkpoint cost, lost work | Less, but designed per error |
| Generality | General | Specific |
| Example | Checkpoint/restart | Error-correcting codes |

## Check yourself

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

1. Backward recovery works by:
   A. Moving to a new correct state without going back
   B. Restoring a previously saved correct state and resuming from it
   C. Voting among replicas
   D. Ignoring the error
   Answer: B. It rolls back to a checkpoint or recovery point. (Key point: Backward recovery)

2. What does forward recovery require?
   A. No knowledge of errors
   B. Knowing in advance what errors might occur
   C. Periodic checkpoints
   D. Message logging
   Answer: B. The system must be designed to correct specific anticipated errors, e.g. error-correcting codes. (Key point: Forward recovery requirement)

3. Why can backward recovery be impossible for some operations?
   A. Checkpoints are too small
   B. Some actions, such as a cash dispenser paying out, cannot be undone
   C. It needs error-specific design
   D. Logs cannot be replayed
   Answer: B. Rolling back state does not undo real-world effects. (Key point: Backward limit)

## Related in Distributed System

- [Forward/backward recovery; checkpointing](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aforward-backward-coordinated-ckpt) — Distributed System, chapter 9
- [Distributed deadlock and recovery](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Adistributed-deadlock-note) — Distributed System, chapter 8, asked 3×
- [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
- [True distributed system; middleware organisation](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Atrue-ds-middleware) — Distributed System, chapter 3

## Related in other subjects

- [Forward vs backward chaining](https://www.bctengineer.com/question.md?key=semester_6%2Fartificial_intelligence%3Aforward-vs-backward-chaining) — Artificial Intelligence, chapter 4, asked 3×
- [Infinite line: surge impedance and forward/backward waves](https://www.bctengineer.com/question.md?key=semester_8%2Fhigh_voltage_engineering%3Ainfinite-line-surge-impedance-waves) — High Voltage Engineering, chapter 3
- [Governing equations; forward, backward, central differencing](https://www.bctengineer.com/question.md?key=semester_8%2Fcomputational_techniques_in_civil_engineering%3Agoverning-eq-forward-backward-central) — Computational Techniques in Civil Engineering, chapter 5
- [Forward and backward pass definition](https://www.bctengineer.com/question.md?key=semester_7%2Fproject_engineering%3Aforward-backward-pass) — Project Engineering, chapter 3
