Leslie Lamport @ Massachusetts Computer Assoc. Inc.
CACM 1978
Note: In this paper the notation '->' and '=>' are used to denote a partial and total ordering, respectively, between events. So I am using '-->' and '==>' for logical implication and equivalence in this paper.
Temporal ordering should be reconsidered in distributed systems |
|
Sometimes total ordering is impossible and only partial ordering, therefore, is possible |
Definition: a -> b = a precedes b in a partial ordering
|
|||||||
Space-time diagram: see Fig 1 or 2
|
|||||||
a -> b
|
|||||||
About the reliability of communication: system can be modeled only with actually delivered msgs! |
Logical clock function C(event) = a number assigned by the process in which the event occurs |
|||||
Clock condition: if a -> b, then C(a) < C(b)
|
|||||
Satisfying the condition ==>
|
Definition: a => b = total ordering
|
|||||||||||||||||||||||||||||||
An example application of total ordering: mutual exclusion
|
The system so far does not guarantee to keep the causal ordering between event some of which are out-of-band events, like phone call |
|||||||||
Solution
|
Issues: precision(= granularity of tick) of each clock & synchronization of independent clocks
|
|||||||
Def: u = minimum of the time taken by any out-of-band communication = (shortest distance between 2 processes) / (speed of light) |
|||||||
Necessary condition: C(t + u) > C(t), for any time t |
|||||||
Satisfying the above condition:
Req. for synchronization: How often messages should be exchanged? Theorem at page 563 |