Distributed Algorithms Contents Index

Global Snapshots: FAQ

Which agent starts a global snapshot algorithm?

Any number of agents can start the global snapshot algorithm. The initiators of the algorithm are not specified.

The correctness of the global snapshot algorithm does not require that only one agent initiates the algorithm. Most applications of the algorithm have a single initiator; however, that is not a requirement of the algorithm.

The choice of initiators is usually evident from the application of the algorithm. For example, an agent that has been waiting a long time for a message may initiate a snapshot algorithm to determine if the agent is in a deadlocked cycle of agents.

Can the algorithm be used to detect the states of a subset of agents and channels, or does the algorithm necessarily have to obtain a snapshot that encompasses all agents?

The algorithm can be modified to record states of subset \(S\) of agents and their incident channels. Modify the algorithm in the obvious way: An agent does not send markers to agents that are not in \(S\).

The subset of agent and channel states that are recorded are part of a global state. Some algorithms only need states of subsets of agents.

Can the algorithm be used to take repeated snapshots?

Yes.

Each initiation of the algorithm by an agent \(x\) at local time \(t\) is identified by the pair \(x, t\). Every local snapshot and every marker is identified in this way. So, different executions of the global snapshot algorithm can be disambiguated in this way.

Next

Next, strategies for developing algorithms that use global snapshots and examples of applications of global snapshots and cuts.

A code skeleton of the algorithm and examples of the global snapshot algorithm are provided here.

Frequently Asked Questions

Review


K. Mani Chandy, Emeritus Simon Ramo Professor, California Institute of Technology