170 likes | 349 Views
ECE 428/CS 425 Distributed Systems. Lecture 2 Time & Synchronization. Why synchronization?. Two sharpshooters in a multiplayer online game kill the same target. Which one gets the points? Synchronization required for Fairness Correctness!. Processes and Events.
E N D
ECE 428/CS 425Distributed Systems Lecture 2 Time & Synchronization
Why synchronization? • Two sharpshooters in a multiplayer online game kill the same target. Which one gets the points? • Synchronization required for • Fairness • Correctness!
Processes and Events • A DS consists of a number of processes. • Each process has a state (values of variables). • Each process takes actions to change its state, ortocommunicate (send, receive). • An event is the occurrence of an action. • Events within a process can be ordered by the time of occurrence. • In DS we also need to know the time order of events on different processors & between different processes.
Physical Clocks & Synchronization • In DS each processor has its own timer. • Timers drift from true real time at different rates. • Drift versus Skew • Maximum Drift Rate (MDR) of a clockdepends on clock characteristics and the environment. PPM Stability over Oscillator 0-70°C Year NCXO / VCXO 5-100 1-10 TCXO 0.1-5 0.1-2 OCXO <0.001-1 0.02-2 MCXO <0.05-2 0.02-2 Source: http://www.isotemp.com/146-010.html
Synchronizing to Meet Skew Limits • Max difference between two clocks with similar MDR is 2 * MDR Max-Synch-Interval = (Max-Acceptable-Diff) / (MDR * 2)
Synchronizing Physical Clocks • Ci(t): the reading of the software clock i when the real time is t. • External synchronization: For a synchronization bound D>0, and for source S of UTC time, for i=1,2,...,N and for all real times t in I. Clocks Ci are accurate to within the bound D. • Internal synchronization: For a synchronization bound D>0, for i, j=1,2,...,N and for all real times t in I. Clock Ciagree within the bound D.
m r m t p Time server,S Clock Synchronization Using a Time Server
Cristian’s Algorithm • Uses a time server to synchronize clocks • Time server keeps the reference time • Clients ask the time server for time & adjust their clock, based on the response For links with symmetrical latency: RTT = response-received-time – request-sent-time adjusted-local-time = server-timestamp t + (RTT / 2) or= server-timestamp + (RTT – server-latency) /2 local-clock-error = adjusted-local-time – local-time
Cristian’s Algorithm • Message arrives at time T as per the server’s clock. Then: T >= t + min (min for message from server) T <= t + (RTT-min) (min for msg to server) • Client makes its clock = t + RTT/2 Error is bounded by | RTT/2 – min |
Cristian’s Algorithm Caveat • RTT estimated by the client using its own clock • RTT measurement affected by client’s clock drift • But this effect small if clock drift small relative to real RTT value
Berkeley Algorithm • Uses a elected master to synchronize • The elected master pools or broadcasts to all machines for their time, adjusts times received for RTT & latency, averages times, and tells each machine how to adjust. • In some systems multiple time servers are used. • Avg. time is more accurate, but still drifts
The Network Time Protocol (NTP) • Uses a network of time servers to synchronize all processors on a net. • Time servers are connected by a synchron- ization subnet tree. The root is adjusted directly. Each node synchronizes its children nodes. Primary server, direct synch. 1 Secondry servers, synched by the primary server 2 2 2 Strata 3, synched by the secondary servers 3 3 3 3 3 3
Server B T T i -2 i-1 Time m m' Time Server A T T i - 3 i Messages Exchanged Between a Pair of NTP Peers Each message bears timestamps of recent message events: the local time when the previous NTP message was sent and received, and the local time when the current message was transmitted.
Server B T T i -2 i-1 Time m m' Time Server A T T i - 3 i Theoretical Base for NTP • oi: estimate of the actual offset • between the two clocks • o: true offset of the clock at B • relative to that at A • B’s clock = A’clock + o • t and t’: actual transmission times • for m and m’ • di: estimate of accuracy of oi ; • total transmission times for m • and m’; d=t+t’
Logical Clocks • We are interested in relative time between events (their order), define relation, Happens-Before (): • On the same process:a b, if time(a) < time(b) • If p1 sends m to p2:send(m) receive(m) • Ifa b and b cthena c • Lamport Algorithm uses this relationship to provide a partial ordering of events: • All processes use a counter (clock) with initial value of zero • The counter is incremented by and assigned to each event, as its timestamp. • A send (message) event carries its timestamp • For a receive (message) event the counter is updated by Max(receiver-counter, message-timestamp) + 1