distributed systems
play

Distributed Systems Logical Clocks Paul Krzyzanowski - PowerPoint PPT Presentation

Distributed Systems Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Page 1 Page 1 Logical clocks Assign sequence


  1. Distributed Systems Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Page 1 Page 1

  2. Logical clocks Assign sequence numbers to messages – All cooperating processes can agree on order of events – vs. physical clocks : time of day Assume no central time source – Each system maintains its own local clock – No total ordering of events • No concept of happened-when Page 2

  3. Happened-before Lamport’s “happened - before” notation a  b event a happened before event b e.g.: a : message being sent, b : message receipt Transitive: if a  b and b  c then a  c Page 3

  4. Logical clocks & concurrency Assign “clock” value to each event – if a  b then clock( a ) < clock( b ) – since time cannot run backwards If a and b occur on different processes that do not exchange messages, then neither a  b nor b  a are true – These events are concurrent Page 4

  5. Event counting example • Three systems: P 0 , P 1 , P 2 • Events a , b , c , … • Local event counter on each system • Systems occasionally communicate Page 5

  6. Event counting example e a b c d f P 1 3 4 5 1 2 6 g h i P 2 2 1 3 j k P 3 1 2 Page 6

  7. Event counting example e a b c d f P 1 3 4 5 1 2 6 g h i P 2 2 1 3 j k P 3 1 2 Bad ordering: e  h f  k Page 7

  8. Lamport’s algorithm • Each message carries a timestamp of the sender’s clock • When a message arrives: – if receiver’s clock < message timestamp set system clock to (message timestamp + 1) – else do nothing • Clock must be advanced between any two events in the same process Page 8

  9. Lamport’s algorithm Algorithm allows us to maintain time ordering among related events – Partial ordering Page 9

  10. Event counting example e a b c d f P 1 3 4 5 1 2 6 g h i P 2 2 1 7 6 j k P 3 1 2 7 Page 10

  11. Summary • Algorithm needs monotonically increasing software counter • Incremented at least when events that need to be timestamped occur • Each event has a Lamport timestamp attached to it • For any two events, where a  b: L(a) < L(b) Page 11

  12. Problem: Identical timestamps e a b c d f P 1 3 4 5 1 2 6 g h i P 2 6 1 7 j k P 3 1 7 a  b, b  c, …: local events sequenced i  c, f  d , d  g, … : Lamport imposes a send  receive relationship Concurrent events (e.g., a & i) may have the same timestamp … or not Page 12

  13. Unique timestamps (total ordering) We can force each timestamp to be unique – Define global logical timestamp (T i , i) • T i represents local Lamport timestamp • i represents process number (globally unique) – E.g. (host address, process ID) – Compare timestamps: (T i , i) < (T j , j) if and only if T i < T j or T i = T j and i < j Does not relate to event ordering Page 13

  14. Unique (totally ordered) timestamps e a b c d f P 1 3.1 4.1 5.1 1.1 2.1 6.1 g h i P 2 6.2 1.2 7.2 j k P 3 1.3 7.3 Page 14

  15. Problem: Detecting causal relations If L(e) < L(e’) – Cannot conclude that e  e’ Looking at Lamport timestamps – Cannot conclude which events are causally related Solution: use a vector clock Page 15

  16. Vector clocks Rules: 1. Vector initialized to 0 at each process V i [ j ] = 0 for i, j =1, …, N 2. Process increments its element of the vector in local vector before timestamping event: V i [i] = V i [i] +1 3. Message is sent from process P i with V i attached to it 4. When P j receives message, compares vectors element by element and sets local vector to higher of two values V j [i] = max(V i [i], V j [i]) for i =1, …, N Page 16

  17. Comparing vector timestamps Define V = V’ iff V [i ] = V’[ i ] for i = 1 … N V  V’ iff V [i ]  V’[ i ] for i = 1 … N For any two events e, e’ if e  e’ then V(e) < V(e’) • Just like Lamport’s algorithm if V(e) < V(e’) then e  e’ Two events are concurrent if neither V(e)  V(e’) nor V(e’)  V(e) Page 17

  18. Vector timestamps (0,0,0) a b P 1 (0,0,0) c d P 2 (0,0,0) e f P 3 Page 18

  19. Vector timestamps (1,0,0) (0,0,0) a b P 1 (0,0,0) c d P 2 (0,0,0) e f P 3 Event timestamp a (1,0,0) Page 19

  20. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (0,0,0) c d P 2 (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) Page 20

  21. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (0,0,0) c d P 2 (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) c (2,1,0) Page 21

  22. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) c (2,1,0) d (2,2,0) Page 22

  23. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,1) (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) c (2,1,0) d (2,2,0) e (0,0,1) Page 23

  24. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,1) (2,2,2) (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) c (2,1,0) d (2,2,0) e (0,0,1) f (2,2,2) Page 24

  25. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,1) (2,2,2) (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) concurrent c (2,1,0) events d (2,2,0) e (0,0,1) f (2,2,2) Page 25

  26. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,1) (2,2,2) (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) concurrent c (2,1,0) events d (2,2,0) e (0,0,1) f (2,2,2) Page 26

  27. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,1) (2,2,2) (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) concurrent c (2,1,0) events d (2,2,0) e (0,0,1) f (2,2,2) Page 27

  28. Vector timestamps (1,0,0) (2,0,0) (0,0,0) a b P 1 (2,1,0) (2,2,0) (0,0,0) c d P 2 (0,0,1) (2,2,2) (0,0,0) e f P 3 Event timestamp a (1,0,0) b (2,0,0) c (2,1,0) concurrent d (2,2,0) events e (0,0,1) f (2,2,2) Page 28

  29. Summary: Logical Clocks & Partial Ordering • Causality – If a -> b then event a can affect event b • Concurrency – If neither a -> b nor b -> a then one event cannot affect the other • Partial Ordering – Causal events are sequenced • Total Ordering – All events are sequenced Page 29

  30. The end. Page 30 Page 30

Recommend


More recommend