Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 9 Global Snapshot. Global state  A set of local states that are concurrent with each other Concurrent states: no two states have a happened before.

Similar presentations


Presentation on theme: "Chapter 9 Global Snapshot. Global state  A set of local states that are concurrent with each other Concurrent states: no two states have a happened before."— Presentation transcript:

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


Download ppt "Chapter 9 Global Snapshot. Global state  A set of local states that are concurrent with each other Concurrent states: no two states have a happened before."

Similar presentations


Ads by Google