Outline Theoretical Foundations Fundamental limitations of distributed systems
Outline • Theoretical Foundations – Fundamental limitations of distributed systems – Logical clocks 1/22/2022 COP 5611 1
Lamport’s Logical Clocks – review • Definitions – Happened before relation • Happened before relation ( ) captures the causal dependencies between events • It is defined as follows – a b, if a and b are events in the same process and a occurred before b. – a b, if a is the event of sending a message m in a process and b is the event of receipt of the same message m by another process – If a b and b c, then a c, i. e. , “ ” is transitive 1/22/2022 COP 5611 2
Lamport’s Logical Clocks – review • Definitions – continued – Causally related events • Event a causally affects event b if a b – Concurrent events • Two distinct events a and b are said to be concurrent (denoted by a || b) if a b and b a • For any two events, either a b, b a, or a || b 1/22/2022 COP 5611 3
Lamport’s Logical Clocks – review • Logical clocks – There is a clock at each process Pi in the system • Which is a function that assigns a number to any event a, called the timestamp of event a at Pi • The numbers assigned by the system of the clocks have no relation to physical time • The logical clocks take monotonically increasing values and can be implemented as counters 1/22/2022 COP 5611 4
Lamport’s Logical Clocks – cont. • Conditions satisfied by the system of clocks – For any two events, if a b, then C(a) < C(b) – [C 1] For any two events a and b in a process Pi, if a occurs before b, then Ci(a) < Ci(b) – [C 2] If a is the event of sending a message m in process Pi and b is the event of receiving the same message m at process Pj, then Ci(a) < Cj(b) 1/22/2022 COP 5611 5
Lamport’s Logical Clocks – cont. • Implementation rules – [IR 1] Clock Ci is incremented between any two successive events in process Pi Ci : = Ci + d ( d > 0) – [IR 2] If event a is the sending of message m by process Pi, then message m is assigned a timestamp tm = Ci(a). On receiving the same message m by process Pj, Cj is set to Cj : = max(Cj, tm + d) 1/22/2022 COP 5611 6
An Example 1/22/2022 COP 5611 7
Total Ordering Using Lamport’s Clocks • If a is any event at process Pi and b is any event at process Pj, then a => b if and only if either – Where is any arbitrary relation that totally orders the processes to break ties 1/22/2022 COP 5611 8
Example: Totally-Ordered Multicasting 1/22/2022 COP 5611 9
A Limitation of Lamport’s Clocks • In Lamport’s system of logical clocks – If a b, then C(a) < C(b) – The reverse if not necessarily true if the events have occurred on different processes 1/22/2022 COP 5611 10
A Limitation of Lamport’s Clocks 1/22/2022 COP 5611 11
Vector Clocks • Implementation rules – [IR 1] Clock Ci is incremented between any two successive events in process Pi Ci[i] : = Ci[i] + d ( d > 0) – [IR 2] If event a is the sending of message m by process Pi, then message m is assigned a timestamp tm = Ci(a). On receiving the same message m by process Pj, Cj is set to Cj[k] : = max(Cj[k], tm[k]) 1/22/2022 COP 5611 12
Vector Clocks – cont. 1/22/2022 COP 5611 13
Vector Clocks – cont. 1/22/2022 COP 5611 14
Vector Clocks – cont. • Assertion – At any instant, • Events a and b are casually related if ta < tb or tb < ta. Otherwise, these events are concurrent • In a system of vector clocks, 1/22/2022 COP 5611 15
Causal Ordering of Messages • The causal ordering of messages try to maintain the same causal relationship that holds among “message send” events with the corresponding “message receive” events – In other words, if Send(M 1) -> Send(M 2), then Receive(M 1) -> Receive(M 2) – This is different from causal ordering of events 1/22/2022 COP 5611 16
Causal Ordering of Messages – cont. 1/22/2022 COP 5611 17
Causal Ordering of Messages – cont. • The basic idea – It is very simple – Deliver a message only when no causality constraints are violated – Otherwise, the message is not delivered immediately but is buffered until all the preceding messages are delivered 1/22/2022 COP 5611 18
Birman-Schiper-Stephenson Protocol 1/22/2022 COP 5611 19
Schiper-Eggli-Sando Protocol 1/22/2022 COP 5611 20
Schiper-Eggli-Sando Protocol – cont. 1/22/2022 COP 5611 21
Schiper-Eggli-Sando Protocol – cont. 1/22/2022 COP 5611 22
- Slides: 22