Lecture 4 Compatibility Mode
Lecture 4 Compatibility Mode
Introduction
Even if clocks on all computers in a DS are set to the same time, their clocks will eventually vary quite significantly unless corrections are applied
Event: the occurrence of a single action that a process carries out as it executes e.g. Send, Receive, change state Events at a single process pi, can be placed in a total ordering denoted by the relation i between the events. i.e.
e i e if and only if e occurs before e at pi
Clocks
We have seen how to order events (happened before) To timestamp events, use the computers clock At real time, t, the OS reads the time on the computers hardware clock Hi(t) It calculates the time on its software clock Ci(t)= Hi(t) + e.g. a 64 bit number giving nanoseconds since some base time in general, the clock is not completely accurate but if Ci behaves well enough, it can be used to timestamp events at pi
Network
Figure 10.1
Computer clocks are not generally in perfect agreement Skew: the difference between the times on two clocks (at any instant) Computer clocks are subject to clock drift (they count time at different rates) Clock drift rate: the difference per unit of time from some ideal reference clock Ordinary quartz clocks drift by about 1 sec in 11-12 days. (10-6 secs/sec). High precision quartz clocks drift rate is about 10-7 or 10-8 secs/sec
1. 2. 3.
If two events occurred at the same process pi (i = 1, 2, N) then they occurred in the order observed by pi, that is when a message, m is sent between two processes, send(m) happened before receive(m) The happened before relation is transitive
HB1, HB2 and HB3 (page 397) are formal statements of these 3 points
the happened before relation is the relation of causal ordering
p1 a p2 c d m2 b m1
Figure10.5
Physical time
p3 e
DS BY KAPIL SHRIVASTAVA ,ASST. PROFESSOR @CSE
each of p1, p2, p3 has its logical clock initialised to zero, the clock values are those immediately after the event. for 1 for is piggybacked and c gets max(0,2)+1 e.g. m1, 2a, 2 for b. =3
1 p1 a 2 b m1 3 p2 c 1 p3 e
DS BY KAPIL SHRIVASTAVA ,ASST. PROFESSOR @CSE
e e implies L(e)<L(e) The converse is not true, that is L(e)<L(e') does not imply e e
Figure 10.6
4 d m2 5 f Physical time
Vector clocks overcome the shortcoming of Lamport logical clocks (L(e) < L(e) does not imply e happened before e) Vector timestamps are used to timestamp local events They are applied in schemes for replication of data and causal multicast
Vector clock Vi at process pi is an array of N integers VC1:initially Vi[j] = 0 for i, j = 1, 2, N VC2:before pi timestamps an event it sets Vi[i] := Vi[i] +1 VC3:pi piggybacks t = Vi on every message it sends VC4:when pi receives (m,t) it sets Vi[j] := max(Vi[j] , t[j]) j = 1, 2, N ( then before next event adds I to own
element using VC2)
Can you see a pair of parallel events?. Vi[i]] is the number of events that pi has timestamped Viji] ( j i) is the number|| e( parallel) pj that pi has been affected bynor V(e) <= V(c). c of events at because neither V(c) <= V(e)
Vector clocks
At p2 on receipt of m1 get max ((0,0,0), (2,0,0)) = (2, 0, 0) add 1 to own element = (2,1,0)
Meaning of =, <=, max etc for vector timestamps - compare elements pairwise Note that e e implies L(e)<L(e). The converse is also
Figure 10.7
(2,2,0) d m2 (2,2,2) f Physical time