1 / 43

Lamport clocks

Dave Eckhardt de0u@andrew.cmu.edu. Lamport clocks. L36_Lamport. Synchronization. Project 4 due today Homework 2 due Friday Book report due Friday FCE reminder I will read (and take seriously) every word of what you write. Outline. Lamport clocks

Download Presentation

Lamport clocks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dave Eckhardt de0u@andrew.cmu.edu Lamport clocks L36_Lamport

  2. Synchronization • Project 4 due today • Homework 2 due Friday • Book report due Friday • FCE reminder • I will read (and take seriously) every word of what you write

  3. Outline • Lamport clocks • Covered in 17.1, 17.2 (different focus from today) • Time, Clocks, and the Ordering of Events in a Distributed System • CACM 21:7 (1978) • Leslie Lamport also famous for ...?

  4. Overview • Light cones • Meeting for beer • “Happened before” partial order • Logical clocks • Advanced techniques

  5. Light cones • Concept • Effects propagate at or below speed of light • Objects, light/radio/X-rays, gravity • Knowledge of events limited the same way • Event propagation modeled by expanding sphere • Four-dimensional “cone”

  6. Light cones

  7. Light cones

  8. Light cones

  9. Light cones

  10. Light cones

  11. Light cones

  12. Light cones

  13. Light cones

  14. Light cones • Future light cone • The part of spacetime potentially influenced by an event • Past light cone • The part of spacetime that could have influenced an event

  15. Meeting for Beer • P1 transmits “Panther Hollow Inn” to blackboard

  16. Meeting for Beer • P1 transmits “Panther Hollow Inn” to blackboard • P1 transmits to P2 • Hey, P2, let's go have a beer. • I have transmitted the bar's name to the blackboard. • See you there!

  17. Meeting for Beer • P1 transmits “Panther Hollow Inn” to blackboard • P1 transmits to P2 • Hey, P2, let's go have a beer. • I have transmitted the bar's name to the blackboard. • See you there! • P2 receives P1's message

  18. Meeting for Beer • P1 transmits “Panther Hollow Inn” to blackboard • P1 transmits to P2 • Hey, P2, let's go have a beer. • I have transmitted the bar's name to the blackboard. • See you there! • P2 receives P1's message • P2 queries blackboard

  19. Meeting for Beer • P1 transmits “Panther Hollow Inn” to blackboard • P1 transmits to P2 • Hey, P2, let's go have a beer. • I have transmitted the bar's name to the blackboard. • See you there! • P2 receives P1's message • P2 queries blackboard • It says “Squirrel Cage” - how???

  20. Meeting for Beer

  21. Meeting for Beer

  22. Meeting for Beer

  23. Meeting for Beer

  24. Meeting for Beer

  25. Meeting for Beer

  26. What went wrong? • P1 thought • Blackboard update happened before invitation • P2 thought • Invitation happened before blackboard update • When does an event “happen”? • When its effects propagate “everywhere relevant” • What does “happen before” mean? • Could that green node really be so slow?

  27. Universe Model • System = set of processes • Process = sequence of events • Event • Internal: ++x; • Message transmission • Message reception

  28. “Happened before” partial order • A happens before B (A  B) • If A and B happen inside a process, in (A, B) order • If A = transmission, B = reception, of same message • If A  B and B  C, then A  C • A and B are concurrent when • A ! B and B ! A • Observe: A ! A

  29. Space-time Diagram •  • inside a process, or • follow a message • p0  r2 • concurrent • p0, q0, r0 • p1, q1 • q1, r0 • p1, r0

  30.  means “possibly causes” • p0 possibly causes p1 • ...by storing something in P's memory • p0 possibly causes q1 • Message could trigger q1 • Concurrent events • ...cannot cause each other

  31. Logical clocks • Can we assign timestamps to events? • Want • If A  B then C(A) < C(B) • Events inside Pi • a  b  Ci(a) < Ci(b) • Message from Pi to Pj • a=Pi's send, b=Pj's receive  Ci(a) < Cj(b)

  32. Logical clocks • Events inside Pi • Increment Ci() between successive events • Message from Pi to Pj • Sender: place timestamp T in message: Ci(send) • Receiver: ensure Cj(receive) > T

  33. Meeting for Beer

  34. Meeting for Beer

  35. Meeting for Beer

  36. Meeting for Beer

  37. Meeting for Beer

  38. Meeting for Beer

  39. What this means • P1 wants • <“PHI” written> happened before <read by P2> • Equivalent to “59 < 57” (oops) • The events were concurrent • “PHI” could not cause P2's bar trip

  40. Space-time Diagram • P1 wants • <“PHI” declared> happened before <P2 decided> • Equivalent to “59 < 57” (oops) • The events were concurrent • “PHI” could not cause P2's bar trip

  41. Fixing the problem • P1 should wait for board to acknowledge • “PHI” causes ACK • ACK causes “Meet me at...” • “Meet me at...” causes bar trip • Then: “PHI” causes bar trip

  42. Extensions • Define total ordering of system events • Typical (timestamp, process #) tuple comparison • Process # used to break timestamp ties • Distributed agreement algorithms • Such as “fair distributed mutual exclusion” • Requests must be granted “in order” • See text: 17.2 • Adding physical (real-time) clocks

  43. Summary • Light cones • “Happened before” partial order • Potential causality • Another definition of concurrency • You've dealt with single-clock race conditions • (one memory bus provides one global clock) • In distributed systems there is no global clock • Timestamps track message causality

More Related