Logical Clocks.

Slides:



Advertisements
Similar presentations
Chapter 12 Message Ordering. Causal Ordering A single message should not be overtaken by a sequence of messages Stronger than FIFO Example of FIFO but.
Advertisements

Global States.
Logical Clocks (2).
Replication. Topics r Why Replication? r System Model r Consistency Models r One approach to consistency management and dealing with failures.
Time and Global States Part 3 ECEN5053 Software Engineering of Distributed Systems University of Colorado, Boulder.
Synchronization Chapter clock synchronization * 5.2 logical clocks * 5.3 global state * 5.4 election algorithm * 5.5 mutual exclusion * 5.6 distributed.
Consistency and Replication (3). Topics Consistency protocols.
Time and Clock Primary standard = rotation of earth De facto primary standard = atomic clock (1 atomic second = 9,192,631,770 orbital transitions of Cesium.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Distributed Systems Spring 2009
Ordering and Consistent Cuts Presented By Biswanath Panda.
CMPT 431 Dr. Alexandra Fedorova Lecture VIII: Time And Global Clocks.
Distributed Systems Fall 2009 Logical time, global states, and debugging.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
1. Explain why synchronization is so important in distributed systems by giving an appropriate example When each machine has its own clock, an event that.
Teaching material based on Distributed Systems: Concepts and Design, Edition 3, Addison-Wesley Copyright © George Coulouris, Jean Dollimore, Tim.
EEC 688/788 Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Synchronization Clock Synchronization Logical Clocks Global State Election Algorithms Mutual Exclusion.
20101 Synchronization in distributed systems A collection of independent computers that appears to its users as a single coherent system.
Lecture 13 Synchronization (cont). EECE 411: Design of Distributed Software Applications Logistics Last quiz Max: 69 / Median: 52 / Min: 24 In a box outside.
Clock Synchronization and algorithm
EEC-681/781 Distributed Computing Systems Lecture 10 Wenbing Zhao Cleveland State University.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport (1978) Presented by: Yoav Kantor.
1 Synchronization Part 1 REK’s adaptation of Claypool’s adaptation of Tanenbaum’s Distributed Systems Chapter 5.
Physical Clocks.
Synchronization Chapter 6 Part I Clock Synchronization & Logical clocks Part II Mutual Exclusion Part III Election Algorithms Part IV Transactions.
Logical Clocks (2). Topics r Logical clocks r Totally-Ordered Multicasting r Vector timestamps.
1 Physical Clocks need for time in distributed systems physical clocks and their problems synchronizing physical clocks u coordinated universal time (UTC)
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Chapter 5.
Computer Science Lecture 10, page 1 CS677: Distributed OS Last Class: Naming Name distribution: use hierarchies DNS X.500 and LDAP.
Synchronization CSCI 4900/6900. Importance of Clocks & Synchronization Avoiding simultaneous access of resources –Cooperate to grant exclusive access.
Synchronization. Why we need synchronization? It is important that multiple processes do not access shared resources simultaneously. Synchronization in.
Logical Clocks. Topics Logical clocks Totally-Ordered Multicasting Vector timestamps.
Lamport’s Logical Clocks & Totally Ordered Multicasting.
Synchronization Chapter 5.
Communication & Synchronization Why do processes communicate in DS? –To exchange messages –To synchronize processes Why do processes synchronize in DS?
Distributed Systems Fall 2010 Logical time, global states, and debugging.
Replication (1). Topics r Why Replication? r System Model r Consistency Models – How do we reason about the consistency of the “global state”? m Data-centric.
Event Ordering Greg Bilodeau CS 5204 November 3, 2009.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport Massachusetts Computer Associates,Inc. Presented by Xiaofeng Xiao.
Time This powerpoint presentation has been adapted from: 1) sApr20.ppt.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Real-Time & MultiMedia Lab Synchronization Distributed System Jin-Seung,KIM.
Distributed Coordination. Turing Award r The Turing Award is recognized as the Nobel Prize of computing r Earlier this term the 2013 Turing Award went.
Synchronization CSCI 4900/6900. Importance of Clocks & Synchronization Avoiding simultaneous access of resources –Cooperate to grant exclusive access.
Replication (1). Topics r Why Replication? r System Model r Consistency Models r One approach to consistency management and dealing with failures.
D u k e S y s t e m s Asynchronous Replicated State Machines (Causal Multicast and All That) Jeff Chase Duke University.
Logical Clocks. Topics Logical clocks Totally-Ordered Multicasting Vector timestamps.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Building Dependable Distributed Systems, Copyright Wenbing Zhao
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Logical Clocks. Topics r Logical clocks r Totally-Ordered Multicasting.
Event Ordering. CS 5204 – Operating Systems2 Time and Ordering The two critical differences between centralized and distributed systems are: absence of.
6 SYNCHRONIZATION. introduction processes synchronize –exclusive access. –agree on the ordering of events much more difficult compared to synchronization.
Hwajung Lee. Primary standard = rotation of earth De facto primary standard = atomic clock (1 atomic second = 9,192,631,770 orbital transitions of Cesium.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 6: Synchronyzation 3/5/20161 Distributed Systems - COMP 655.
6.2 Logical Clocks Kranthi Koya09/23/2015. Overview Introduction Lamport’s Logical Clocks Vector Clocks Research Areas Conclusion.
Mutual Exclusion Algorithms. Topics r Defining mutual exclusion r A centralized approach r A distributed approach r An approach assuming an organization.
Prof. Leonardo Mostarda University of Camerino
Distributed Computing
COT 5611 Operating Systems Design Principles Spring 2012
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Lecture 9: Ordered Multicasting
COT 5611 Operating Systems Design Principles Spring 2014
Outline Theoretical Foundations
Presentation transcript:

Logical Clocks

Topics Logical clocks Totally-Ordered Multicasting

Readings L. Lamport, “Time, Clocks and the Ordering of Events in Distributed Systems,” Communications of the ACM, Vol. 21, No. 7, July 1978, pp. 558-565.

What Time Is It? In distributed system we need practical ways to deal with time We may need to agree that update A occurred before update B Or offer a “lease” on a resource that expires at time 10:10.0150 Or guarantee that a time critical event will reach all interested parties within 100ms

How Do We Keep Time? Electronic clocks in most servers and network devices keep inaccurate time. Small errors can add up over a long period. Assume two clocks are synchronized on January 1. One of the clocks consistently takes an extra 0.04 milliseconds to increment itself by a second. On December 31 the clocks will differ by 20 minutes

How Do We Keep Time? In some instances it is acceptable to measure time with some accuracy: When we try to determine how many minutes left in an exam Making a soft boiled egg We can be relaxed about time in some instances: The time it takes to drive to Toronto The number of hours studied for an exam

How Do We Keep Time? However, for many applications more precision is needed. Example: Telecommunications Accurate timing is needed to ensure that the switches routing digital signals through their networks all run at the same rate. If not, slow running switches would not be able to cope with traffic and messages would be lost.

How Do We Keep Time? Example: Global Positioning System (GPS) Ship, airplane and car navigation use GPS to determine location. GPS satellites that orbit Earth broadcast timing signals from their clocks. By looking at the signal from four (or more) satellites, the user’s position can be determined. Any tiny error could put you off course by a very long way. A nanosecond of error translates into a GPS error of one foot.

How Do We Keep Time? Other: Need to know when a transaction occurs Equipment on a factory floor may need to know when to turn on or off equipment. Billing services E-mail sorting can be difficult if time stamps are incorrect Tracking security breaches Secure document transmissions

Clock Synchronization In a centralized system: Time is unambiguous. A process gets the time by issuing a system call to the kernel. If process A gets the time and later process B gets the time then the value B gets is higher than (or possibly equal to) the value A got. Example: UNIX make examines the times at which all the source and object files were last modified. If time (input.c) > time(input.o) then recompile input.c If time (input.c) < time(input.o) then no compilation is needed.

Clock Synchronization In a distributed system, achieving agreement on time is not easy. Assume no global agreement on time. Let’s see what happens: Assume that the compiler and editor are on different machines output.o has time 2144 output.c is modified but is assigned time 2143 because the clock on its machine is slightly behind. Make will not call the compiler. The resulting executable will have a mixture of object files from old and new sources.

Clock Synchronization When each machine has its own clock, an event that occurred after another event may nevertheless be assigned an earlier time.

Clock Synchronization Another example File synchronization after disconnected operation Synchronize workstation and laptop copies of 610-a1.c Disconnect laptop Make some changes to 610-a1.c on the laptop. Reconnect and re-sync, hopefully copying laptop version over the workstation version. If laptop’s clock is behind workstation, the copy might go the other way around

Ordering of Events For many applications, it is sufficient to be able to agree on the order that events occur and not the actual time of occurrence. It is possible to use a logical clock to unambiguously order events May be totally unrelated to real time. Lamport showed this is possible (1978). A significant number of problems are solved if we can unambiguously order events, even if we don’t know the “real” time.

The Happened-Before Relation Lamport’s algorithm synchronizes logical clocks and is based on the happened-before relation: a  b is read as “a happened before b” The definition of the happened-before relation: If a and b are events in the same process and a occurs before b, then a  b For any message m, send(m) rcv(m), where send(m) is the event of sending the message and rcv(m) is event of receiving it. If a, b and c are events such that a  b and b  c then a  c

The Happened-Before Relation If two events, x and y, happen in different processes that do not exchange messages, then x  y is not true, but neither is y  x The happened-before relation is sometimes referred to as causality.

Example Say in process P1 you have a code segment as follows: 1.2 y = 10*x; 1.3 send(y,P2); Say in process P2 you have a code segment as follows: 2.1 a=8; 2.2 b=20*a; 2.3 rcv(y,P1); 2.4 b = b+y; Let’s say that you start P1 and P2 at the same time. You know that 1.1 occurs before 1.2 which occurs before 1.3; You know that 2.1 occurs before 2.2 which occurs before 2.3 which is before 2.4. You do not know if 1.1 occurs before 2.1 or if 2.1 occurs before 1.1. You do know that 1.3 occurs before 2.3 and 2.4

Example Continuing from the example on the previous page – The order of actual occurrence of operations is often not consistent from execution to execution. For example: Execution 1 (order of occurrence): 1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 2.4 Execution 2 (order of occurrence): 2.1,2.2,1.1,1.2,1.3, 2.3,2.4 Execution 3 (order of occurrence) 1.1, 2.1, 2.2, 1.2, 1.3, 2.3, 2.4 We can say that 1.1 “happens before” 2.3, but not that 1.1 “happens before” 2.2 or that 2.2 “happens before” 1.1. Note that the above executions provide the same result.

Lamport’s Algorithm We need a way of measuring time such that for every event a, we can assign it a time value C(a) on which all processes agree on the following: The clock time C must monotonically increase i.e., always go forward. If a  b then C(a) < C(b) Each process, p, maintains a local counter Cp The counter is adjusted based on the rules presented on the next page.

Lamport’s Algorithm Cp is incremented before each event is issued at process p: Cp = Cp + 1 When p sends a message m, it piggybacks on m the value t=Cp On receiving (m,t), process q computes Cq = max(Cq,t) and then applies the first rule before timestamping the event rcv(m).

Example P1 P2 P3 a e b j f c k g d h l i Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality. i Assume that each process’s logical clock is set to 0

Example P1 P2 P3 a 1 e 1 2 b j 1 f 3 c 3 k 2 g d 4 4 3 h 5 l i 6 Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality. i 6 Assume that each process’s logical clock is set to 0

Example From the timing diagram on the previous slide, what can you say about the following events? Between a and b: a  b Between b and f: b  f Between e and k: concurrent Between c and h: concurrent Between k and h: k  h

Total Order A timestamp of 1 is associated with events a, e, j in processes P1, P2, P3 respectively. A timestamp of 2 is associated with events b, k in processes P1, P3 respectively. The times may be the same but the events are distinct. We would like to create a total order of all events i.e. for an event a, b we would like to say that either a  b or b  a

Total Order Create total order by attaching a process number to an event. Pi timestamps event e with Ci (e).i We then say that Ci(a).i happens before Cj(b).j iff: Ci(a) < Cj(b); or Ci(a) = Cj(b) and i < j

Example (total order) P1 P2 P3 a 1.1 e 1.2 2.1 b j 1.3 f 3.2 c 3.1 k 2.3 g d 4.1 4.2 3.3 h 5.2 l Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality. i 6.2 Assume that each process’s logical clock is set to 0

Example: Totally-Ordered Multicast Application of Lamport timestamps (with total order) Scenario Replicated accounts in New York(NY) and San Francisco(SF) Two transactions occur at the same time and multicast Current balance: $1,000 Add $100 at SF Add interest of 1% at NY If not done in the same order at each site then one site will record a total amount of $1,111 and the other records $1,110.

Example: Totally-Ordered Multicasting Updating a replicated database and leaving it in an inconsistent state.

Example: Totally-Ordered Multicasting We must ensure that the two update operations are performed in the same order at each copy. Although it makes a difference whether the deposit is processed before the interest update or the other way around, it does matter which order is followed from the point of view of consistency. We need totally-ordered multicast, that is a multicast operation by which all messages are delivered in the same order to each receiver. NOTE: Multicast refers to the sender sending a message to a collection of receivers.

Example: Totally Ordered Multicast Algorithm Update message is timestamped with sender’s logical time Update message is multicast (including sender itself) When message is received It is put into local queue Ordered according to timestamp, Multicast acknowledgement

Example:Totally Ordered Multicast Message is delivered to applications only when It is at head of queue It has been acknowledged by all involved processes Pi sends an acknowledgement to Pj if Pi has not made an update request Pi’s identifier is greater than Pj’s identifier Pi’s update has been processed; Lamport algorithm (extended for total order) ensures total ordering of events

Example: Totally Ordered Multicast On the next slide m corresponds to “Add $100” and n corresponds to “Add interest of 1%”. When sending an update message (e.g., m, n) the message will include the timestamp generated when the update was issued.

Example: Totally Ordered Multicast San Francisco (P1) New York (P2) Issue m 1.1 1.2 Issue n Send m 2.1 2.2 Send n 3.2 Recv m Recv n 3.1 Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality.

Example: Totally Ordered Multicast The sending of message m consists of sending the update operation and the time of issue which is 1.1 The sending of message n consists of sending the update operation and the time of issue which is 1.2 Messages are multicast to all processes in the group including itself. Assume that a message sent by a process to itself is received by the process almost immediately. For other processes, there may be a delay.

Example: Totally Ordered Multicast At this point, the queues have the following: P1: (m,1.1), (n,1.2) P2: (m,1.1), (n,1.2) P1 will multicast an acknowledgement for (m,1.1) but not (n,1.2). Why? P1’s identifier is higher then P2’s identifier and P1 has issued a request 1.1 < 1.2 P2 will multicast an acknowledgement for (m,1.1) and (n,1.2) Why? P2’s identifier is not higher then P1’s identifier

Example: Totally Ordered Multicast P1 does not issue an acknowledgement for (n,1.2) until operation m has been processed. 1 < 2 Note: The actual receiving by P1 of message (n,1.2) is assigned a timestamp of 3.1. Note: The actual receiving by P2 of message (m,1.1) is assigned a timestamp of 3.2

Example: Totally Ordered Multicast If P2 gets (n,1.2) before (m,1.1) does it still multicast an acknowledgement for (n,1.2)? Yes! At this point, how does P2 know that there are other updates that should be done ahead of the one it issued? It doesn’t; It does not proceed to do the update specified in (n,1.2) until it gets an acknowledgement from all other processes which in this case means P1. Does P2 multicast an acknowledgement for (m,1.1) when it receives it? Yes, it does since 1 < 2

Example: Totally Ordered Multicast San Francisco (P1) New York (P2) Issue m 1.1 1.2 Issue n Send m 2.1 2.2 Send n 3.2 Recv m Recv n 3.1 4.2 Send ack(m) Recv ack(m) 5.1 Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality. Note: The figure does not show a process sending a message to itself or the multicast acks that it sends for the updates it issues.

Example: Totally Ordered Multicast To summarize, the following messages have been sent: P1 and P2 have issued update operations. P1 has multicasted an acknowledgement message for (m,1.1). P2 has multicasted acknowledgement messages for (m,1.1), (n,1.2). P1 and P2 have received an acknowledgement message from all processes for (m,1.1). Hence, the update represented by m can proceed in both P1 and P2.

Example: Totally Ordered Multicast San Francisco (P1) New York (P2) Issue m 1.1 1.2 Issue n Send m 2.1 2.2 Send n 3.2 Recv m Recv n 3.1 4.2 Send ack(m) Recv ack(m) 5.1 Process m Process m Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality. Note: The figure does not show the sending of messages it oneself

Example: Totally Ordered Multicast When P1 has finished with m, it can then proceed to multicast an acknowledgement for (n,1.2). When P1 and P2 both have received this acknowledgement, then it is the case that acknowledgements from all processes have been received for (n,1.2). At this point, it is known that the update represented by n can proceed in both P1 and P2.

Example: Totally Ordered Multicast San Francisco (P1) New York (P2) Issue m 1.1 1.2 Issue n Send m 2.1 2.2 Send n 3.2 Recv m Recv n 3.1 4.2 Send ack(m) Recv ack(m) 5.1 Process m Process m 6.1 Send ack(n) Note that if two events happen without any message, then we can't say anything about their relative occurrence in time. In this example a <= b <= c <= d <= f, but we can say little about e other than e <= f. We say that events such as a and e are concurrent. Note also that “happened before” does not demonstrate causality. There is merely the potential for causality. Recv ack(n) 7.2 Process n Process n

Example: Totally Ordered Multicast What if there was a third process e.g., P3 that issued an update (call it o) at about the same time as P1 and P2. The algorithm works as before. P1 will not multicast an acknowledgement for o until m has been done. P2 will not multicast an acknowledgement for o until n has been done. Since an operation can’t proceed until acknowledgements for all processes have been received, o will not proceed until n and m have finished.

Summary We have presented an algorithm based on logical clocks that provides sequential consistency in a distributed fashion.