





Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The challenge of clock synchronization in distributed systems, where physical clocks need to be aligned to maintain consistency. Various clock types, synchronization algorithms, and the concept of logical clocks. It also introduces the happened-before relation and vector timestamps for maintaining a consistent global view.
Typology: Study notes
1 / 9
This page cannot be seen from the preview
Don't miss anything!






Clock Synchronization
Clock Synchronization Algorithms In practice: 1 – ρ <= dC/dt <= 1 + ρ, for some small constant drift ρ Goal : Never let two clocks in any system differ by more than δ time units
synchronize at least every δ/( 2 ρ) seconds Clock Synchronization Idea 1: Every machine asks a time server for the accurate time at least once every d/(2r) seconds. Good solution, but
Note: you don’t even need to propagate UTC time. Why not?
Logical Clocks Problem: How do we maintain a global view on the system’s behavior that is consistent with the happened-before relation? Solution: attach a timestamp C ( e) to each event e , satisfying the following properties:
per process. Logical Clocks Each process Pi maintains a local counter Ci and adjusts this counter according to the following rules:
Extension to Multicasting: Vector Timestamps Observation: Lamport timestamps do not guarantee that if C ( a) < C ( b) then a indeed happened before b. Why? We need vector timestamps for that.
Global State ( 2 ) a) Organization of a process and channels for a distributed snapshot Global State ( 3 ) b) Process Q receives a marker for the first time and records its local state c) Q records all incoming message d) Q receives a marker for its incoming channel and finishes recording the state of the incoming channel
Election Algorithms Principle: An algorithm requires that some process acts as a coordinator. The question is how to select this special process dynamically. Note: In many systems the coordinator is chosen by hand (e.g. file servers). This leads to centralized solution single point of failure. Question: If a coordinator is chosen dynamically, to what extent can we speak about a centralized or distributed solution? Question: Is a fully distributed solution, i.e., one without a coordinator, always more robust than any centralized/coordinated solution? Election by Bullying Principle: Each process has an associated priority (weight). The process with the highest priority should always be elected as the coordinator. Issue: How do we find the heaviest process?