Snapshot algorithm

A snapshot algorithm is used to create a consistent snapshot of the global state of a distributed system. 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

 * Chandy–Lamport algorithm
 * Lai–Yang algorithm
 * Spezialetti–Kearns algorithm
 * Mattern's algorithm