Download presentation
Presentation is loading. Please wait.
Published byEugene Richardson Modified over 9 years ago
1
Chapter 9 Global Snapshot
2
Global state A set of local states that are concurrent with each other Concurrent states: no two states have a happened before relation with each other
3
The mystery of the missing dollars A B $400 $300 1. Picture taken at A - $400 2. A sends $100 to B 3. Picture taken at B - $400 4. Total is $800 Send $100
4
Global Snapshot Problem Determine the global system state (e.g. the total money ) Each process records its own state No shared clock/memory Group of photographers taking snaps of different portions and trying to combine to get the overall picture.
5
Consistent cut Given computation (E,!) and F µ E is a cut iff F is a consistent cut (global snapshot) iff
6
Consistent and inconsistent cuts
7
Chandy and Lamport's Algorithm Assumes FIFO and Unidirectional channels A bidirectional channel is modelled as two unidirectional channels
8
Chandy and Lamport's Algorithm Each process has an associated color. All processes are initially white. A process records it local state just before turning red On turning red the process sends out a marker on all outgoing channels On receiving a marker a white process turns red
9
Classification of messages w – white process r – red process E.g.. rw – sent by a red process, received by a white process
10
Algorithm public class RecvCamera extends Process implements Camera {... public RecvCamera(Linker initComm, CamUser app) {... for (int i = 0; i < N; i++) if (isNeighbor(i)) { closed[i] = false; chan[i] = new LinkedList(); } else closed[i] = true; } public synchronized void globalState() { myColor = red; app.localState(); // record local State; sendToNeighbors("marker", myId); // send Markers } public synchronized void handleMsg(Msg m, int src, String tag) { if (tag.equals("marker")) { if (myColor == white) globalState(); closed[src] = true; if (isDone()){ ----- Display channel state (transit messages) chan[] ---- } } else { // application message if ((myColor == red) && (!closed[src])) chan[src].add(m); app.handleMsg(m, src, tag); // give it to app } boolean isDone() { if (myColor == white) return false; for (int i = 0; i < N; i++) if (!closed[i]) return false; return true; }
11
Non FIFO channels Include color in all outgoing messages Each process counts the number of white messages received by it Marker from i to j includes number of white messages sent by i to j
12
Applications Checkpointing Provide fault tolerance in distributed systems Distributed debugging
13
Applications Stable predicate B: Once B becomes true it remains true, i.e. B is stable iff Stable predicate detection Property of a global snapshot S * If S i is the initial global state, S f is the final global state B(S * ) ) B(S f ) B(S * ) ) B(S i ) Take repeated snapshots
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.