Content deleted Content added
→History: minor fixes and improvements Tags: Mobile edit Mobile web edit Advanced mobile edit |
|||
(62 intermediate revisions by 47 users not shown) | |||
Line 1:
{{one source |date=May 2024}}
The '''
Leslie Lamport, K. Mani Chandy: [https://research.microsoft.com/users/lamport/pubs/pubs.html#chandy ''Distributed Snapshots: Determining Global States of a Distributed System'']. In: ''ACM Transactions on Computer Systems 3''. Nr. 1, February 1985. ([http://lamport.azurewebsites.net/pubs/chandy.pdf PDF; 1 MB])</ref>
==History==
According to
▲According to one of the authors' [http://research.microsoft.com/users/lamport/pubs/pubs.html#chandy website], "The distributed snapshot algorithm described here came about when I visited Chandy, who was then at the University of Texas in Austin. He posed the problem to me over dinner, but we had both had too much wine to think about it right then. The next morning, in the shower, I came up with the solution. When I arrived at Chandy's office, he was waiting for me with the same solution." Leslie Lamport.
==Definition==
The assumptions of the algorithm are as follows:
* There are no failures and all messages arrive intact and only once
* The communication channels are unidirectional and [[FIFO (computing and electronics)|FIFO]] ordered
* There is a communication path between any two processes in the system
* Any process may initiate the snapshot algorithm
Line 16 ⟶ 15:
* Each process in the system records its local state and the state of its incoming channels
The algorithm works using marker messages. Each process that wants to initiate a snapshot records its local state and sends a marker on each of its outgoing channels. All the other processes, upon receiving a marker, record their local state, the state of the channel from which the marker just came as empty, and send marker messages on all of their outgoing channels. If a process receives a
Some of the assumptions of the algorithm can be facilitated using a more reliable communication protocol such as [[Internet protocol suite|TCP/IP]]. The algorithm can be adapted so that there could be multiple snapshots occurring simultaneously.
==
▲The snapshot algorithm works like so:
▲# The observor process (the process taking a snapshot):
## Saves its own local state
## Sends a snapshot request message bearing a snapshot token to all other processes
# A process receiving the snapshot token
## Sends the
## Attaches the snapshot token to all subsequent messages (to help propagate the snapshot token)
#
From this, the
==References==
{{Reflist}}
{{DEFAULTSORT:Chandy-Lamport algorithm}}
▲[[Category:Distributed computing]]
|