Snapshot algorithm explained

A snapshot algorithm is used to create a consistent snapshot of the global state of a distributed system.[1] Due to the lack of globally shared memory and a global clock, this is not trivially possible.

Example

Several computers work together in a distributed system. Each of them represents a bank account holding a certain amount of money. The participants can transfer money between their accounts by exchanging the messages.

To calculate the overall balance, just requesting the balance of each participant can lead to an incorrect result, as different accounts might be recorded before or after any transfers in progress. But a snapshot algorithm would avoid this as it makes sure to record the whole state in a point in time.

Algorithms

Notes and References

  1. Book: Vijay K. Garg. Elements of Distributed Computing. 23 May 2002. John Wiley & Sons. 978-0-471-03600-5. 121.