So that brings us to Lamport's Physical Clock,
and the notation we're going to use for that is
this funny symbol here. So, this is saying
that in physical time, in real time, event a
in the distributed system happened before b. So
if I want to make sure that, that an
event a in the distributed system anywhere happened in
absolute, real time before b, so Pi, there's a
process Pj. Event a is happening on Pi and event b is happening on Pj. And what
we want to make sure is that the time
stamp associated with a has to be less than
the time stamp associate with b. If I want
to guarantee that a, in real time, happened before
b, so, a in real time happened before b,
that is how you have to read this notation,
that, in real time, the event a happened before
b. And in order to satisfy that, the condition
is, the time stamp associated with a has to
be less than the time stamp associated with b.
So to guarantee this, and we are talking about
real time here, so real time stamp associated with
a and b. In order to ensure that the
real time associated with these events give you this guarantee,
you have to have certain conditions associated with the
clocks that are on the machines Pi and Pj.
And the first condition, which I'll call PC1, I'll
refer to that as PC1 later on, the condition
is a bound on individual clock drift. So PC1
is a condition which gives a bound on individual
clock drift. Informally, what this condition is going to tell
you, is that the clocks don't drift that much.
So let's talk about this. If, what is the time that is read on process P1 at
time t? If t is the real time, at time t, real time t, I look at the clock on
my machine and that is Ci of t, what
should it read? Well, it should read t. Now, if
it doesn't, that's when we are saying it is
drifting with respect to t. And so what this equation
is saying is dci over dt is the clock drift. The absolute value of that drift is
a very, very small. So in other words, what we are saying is, all the
clocks in the distributed system, whether we are talking about Ci on Pi or
Cj on Pi all these clocks are running approximately
correctly. So that the clock individual drift, is very
very small. So k is the individual clock drift, and
we are hoping that it is very, very small. And you
can see that if Ci of t is equal to t.
Then dCi of dt should be equal to 1 and therefore
this would be a 0. So, the left hand side of
this will be a zero and so that's why we're saying
that k has to be a very small number. The second
condition is that the mutual drift between the clocks on different
nodes of the distributed system should be very small.
Should, there should be a bound on mutual clock drift,
so that is captured in this condition saying that.
For all ij, any pair of nodes in the entire
distributed system, the difference between the time that I
read on my clock and the time that I read
on somebody else's clock is very, very small. because
this is the mutual clock drift. As I said earlier,
at real time t, my clock should also
be reading t. This guy also should be reading
t. If it doesn't, that's when you have
a drift. What we're seeing is the mutual clock
drift between any two nodes in the entire
distributed system is bound by a small quantity, epsilon.
So k and epsilon are the two important parameters
In the physical clock condition. Intuitively, we're going to
argue that these values, the absolute values of these individual clock drift and
mutual clock drift, has to be
negligible compared to the inter-process communication time.