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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend