Lecture 12: Time and Ordering

Slides:



Advertisements
Similar presentations
COS 461 Fall 1997 Time and Clocks u uses of time in distributed systems: –time-based algorithms (e.g. in security) –distributed make –gathering event traces.
Advertisements

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.
Computer Science 425 Distributed Systems CS 425 / ECE 428  2013, I. Gupta, K. Nahrtstedt, S. Mitra, N. Vaidya, M. T. Harandi, J. Hou.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Time and Synchronization Steve Ko Computer Sciences and Engineering University at Buffalo.
Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2011 August 30, 2011 Lecture 3 Time and Synchronization Reading: Sections
Distributed Systems Spring 2009
Distributed Systems Fall 2010 Time and synchronization.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Time and Synchronization Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Systems CS Synchronization – Part II Lecture 8, Sep 28, 2011 Majd F. Sakr, Vinay Kolar, Mohammad Hammoud.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
CS542: Topics in Distributed Systems Diganta Goswami.
Lecture 9: Time & Clocks CDK4: Sections 11.1 – 11.4 CDK5: Sections 14.1 – 14.4 TVS: Sections 6.1 – 6.2 Topics: Synchronization Logical time (Lamport) Vector.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport (1978) Presented by: Yoav Kantor.
Distributed Systems Foundations Lecture 1. Main Characteristics of Distributed Systems Independent processors, sites, processes Message passing No shared.
Synchronization Chapter 6 Part I Clock Synchronization & Logical clocks Part II Mutual Exclusion Part III Election Algorithms Part IV Transactions.
Lecture 2-1 CS 425/ECE 428 Distributed Systems Lecture 2 Time & Synchronization Reading: Klara Nahrstedt.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
Communication & Synchronization Why do processes communicate in DS? –To exchange messages –To synchronize processes Why do processes synchronize in DS?
Synchronization Distributed System. Why synchronization? Two sharpshooters in a multiplayer online game kill the same target. Which one gets the points?
Lecture 9: Time and clocks (Chap 11) Haibin Zhu, PhD. Assistant Professor Department of Computer Science Nipissing University © 2002.
Time This powerpoint presentation has been adapted from: 1) sApr20.ppt.
CIS825 Lecture 2. Model Processors Communication medium.
Lecture 5-1 Computer Science 425 Distributed Systems CS 425 / ECE 428 Fall 2013 Indranil Gupta (Indy) September 10, 2013 Lecture 5 Time and Synchronization.
Physical clock synchronization Question 1. Why is physical clock synchronization important? Question 2. With the price of atomic clocks or GPS coming down,
Distributed Systems Topic 5: Time, Coordination and Agreement
Hwajung Lee. Primary standard = rotation of earth De facto primary standard = atomic clock (1 atomic second = 9,192,631,770 orbital transitions of Cesium.
Lecture 12-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) October 4, 2012 Lecture 12 Mutual Exclusion.
Distributed Systems Lecture 5 Time and synchronization 1.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
Indranil Gupta (Indy) Topic: Time and Ordering Lecture A: Introduction and Basics Cloud Computing concepts All slides © IG.
CSE 486/586 CSE 486/586 Distributed Systems Time and Synchronization Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Web Systems Time and Global State Lecturer Department University.
Proof of liveness: an example
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
Distributed Computing
Time and Synchronization
Time and Clock Primary standard = rotation of earth
CSE 486/586 Distributed Systems Logical Time
Time and Global States Ali Fanian Isfahan University of Technology
CSE 486/586 Distributed Systems Global States
Lecture 5 Time and synchronization
CSE 486/586 Distributed Systems Time and Synchronization
CSC 8320 Advanced Operating System
Time and Synchronization
CSE 486/586 Distributed Systems Logical Time
Time Synchronization and Logical Clocks
SYNCHORNIZATION Logical Clocks.
Time and Clock.
Logical time (Lamport)
湖南大学-信息科学与工程学院-计算机与科学系
Distributed Systems CS
Distributed Systems CS
Time and Clock.
Time And Global Clocks CMPT 431.
CS 425 / ECE 428  2013, I. Gupta, K. Nahrtstedt, S. Mitra, N. Vaidya, M. T. Harandi, J. Hou.
Distributed Systems CS
Chapter 5 (through section 5.4)
Physical clock synchronization
CDK: Sections 11.1 – 11.4 TVS: Sections 6.1 – 6.2
Lecture 8 Processes and events Local and global states Time
Logical time (Lamport)
Distributed Systems CS
Logical time (Lamport)
CSE 486/586 Distributed Systems Logical Time
CSE 486/586 Distributed Systems Time and Synchronization
Logical time (Lamport)
Last Class: Naming Name distribution: use hierarchies DNS
Outline Theoretical Foundations
Presentation transcript:

Lecture 12: Time and Ordering CS 425 / ECE 428 Distributed Systems Fall 2017 Indranil Gupta (Indy) Oct. 5, 2017 Lecture 12: Time and Ordering All slides © IG

Why Synchronization? Time synchronization is required for both You want to catch a bus at 6.05 pm, but your watch is off by 15 minutes What if your watch is Late by 15 minutes? You’ll miss the bus! What if your watch is Fast by 15 minutes? You’ll end up unfairly waiting for a longer time than you intended Time synchronization is required for both Correctness Fairness

Synchronization In The Cloud Cloud airline reservation system Server A receives a client request to purchase last ticket on flight ABC 123. Server A timestamps purchase using local clock 9h:15m:32.45s, and logs it. Replies ok to client. That was the last seat. Server A sends message to Server B saying “flight full.” B enters “Flight ABC 123 full” + its own local clock value (which reads 9h:10m:10.11s) into its log. Server C queries A’s and B’s logs. Is confused that a client purchased a ticket at A after the flight became full at B. This may lead to further incorrect actions by C

Why is it Challenging? End hosts in Internet-based systems (like clouds) Each have their own clocks Unlike processors (CPUs) within one server or workstation which share a system clock Processes in Internet-based systems follow an asynchronous system model No bounds on Message delays Processing delays Unlike multi-processor (or parallel) systems which follow a synchronous system model

Some Definitions An Asynchronous Distributed System consists of a number of processes. Each process has a state (values of variables). Each process takes actions to change its state, which may be an instruction or a communication action (send, receive). An event is the occurrence of an action. Each process has a local clock – events within a process can be assigned timestamps, and thus ordered linearly. But – in a distributed system, we also need to know the time order of events across different processes.

Clock Skew vs. Clock Drift Each process (running at some end host) has its own clock. When comparing two clocks at two processes: Clock Skew = Relative Difference in clock values of two processes Like distance between two vehicles on a road Clock Drift = Relative Difference in clock frequencies (rates) of two processes Like difference in speeds of two vehicles on the road A non-zero clock skew implies clocks are not synchronized. A non-zero clock drift causes skew to increase (eventually). If faster vehicle is ahead, it will drift away If faster vehicle is behind, it will catch up and then drift away

How often to Synchronize? Maximum Drift Rate (MDR) of a clock Absolute MDR is defined relative to Coordinated Universal Time (UTC). UTC is the “correct” time at any point of time. MDR of a process depends on the environment. Max drift rate between two clocks with similar MDR is 2 * MDR Given a maximum acceptable skew M between any pair of clocks, need to synchronize at least once every: M / (2 * MDR) time units Since time = distance/speed

External vs Internal Synchronization Consider a group of processes External Synchronization Each process C(i)’s clock is within a bound D of a well-known clock S external to the group |C(i) – S| < D at all times External clock may be connected to UTC (Universal Coordinated Time) or an atomic clock E.g., Cristian’s algorithm, NTP Internal Synchronization Every pair of processes in group have clocks within bound D |C(i) – C(j)| < D at all times and for all processes i, j E.g., Berkeley algorithm

External vs Internal Synchronization (2) External Synchronization with D => Internal Synchronization with 2*D Internal Synchronization does not imply External Synchronization In fact, the entire system may drift away from the external clock S!

Next Algorithms for Clock Synchronization

Cristian’s Algorithm

Basics Time P S Set clock to t What’s the time? Here’s the time t! External time synchronization All processes P synchronize with a time server S Time Set clock to t P What’s the time? Here’s the time t! S Check local clock to find time t

What’s Wrong By the time response message is received at P, time has moved on P’s time set to t is inaccurate! Inaccuracy a function of message latencies Since latencies unbounded in an asynchronous system, the inaccuracy cannot be bounded

Cristian’s Algorithm P measures the round-trip-time RTT of message exchange P S Time What’s the time? Here’s the time t! Check local clock to find time t Set clock to t

Cristian’s Algorithm (2) P measures the round-trip-time RTT of message exchange Suppose we know the minimum P  S latency min1 And the minimum S  P latency min2 min1 and min2 depend on Operating system overhead to buffer messages, TCP time to queue messages, etc. P S Time What’s the time? Here’s the time t! Check local clock to find time t Set clock to t RTT

Cristian’s Algorithm (3) P measures the round-trip-time RTT of message exchange Suppose we know the minimum P  S latency min1 And the minimum S  P latency min2 min1 and min2 depend on Operating system overhead to buffer messages, TCP time to queue messages, etc. The actual time at P when it receives response is between [t+min2, t+RTT-min1] P S Time What’s the time? Here’s the time t! Check local clock to find time t Set clock to t RTT

Cristian’s Algorithm (4) The actual time at P when it receives response is between [t+min2, t+RTT-min1] P sets its time to halfway through this interval To: t + (RTT+min2-min1)/2 Error is at most (RTT-min2-min1)/2 Bounded! P S Time What’s the time? Here’s the time t! Check local clock to find time t Set clock to t RTT

Gotchas Allowed to increase clock value but should never decrease clock value May violate ordering of events within the same process Allowed to increase or decrease speed of clock If error is too high, take multiple readings and average them

NTP = Network Time Protocol NTP Servers organized in a tree Each Client = a leaf of tree Each node synchronizes with its tree parent Primary servers Secondary servers Tertiary servers Client

NTP Protocol Message 1 recv time tr1 Message 2 send time ts2 Time Child Parent Time Let’s start protocol Message 1 Message 1 send time ts1 Message 2 send time ts2 Message 1 recv time tr1 Message 2 recv time tr2 Message 2 ts1, tr2

What the Child Does Child calculates offset between its clock and parent’s clock Uses ts1, tr1, ts2, tr2 Offset is calculated as o = (tr1 – tr2 + ts2 – ts1)/2

Why o = (tr1 - tr2 + ts2 - ts1)/2? Offset o = (tr1 – tr2 + ts2 – ts1)/2 Let’s calculate the error Suppose real offset is oreal Child is ahead of parent by oreal Parent is ahead of child by -oreal Suppose one-way latency of Message 1 is L1 (L2 for Message 2) No one knows L1 or L2! Then tr1 = ts1 + L1 + oreal tr2 = ts2 + L2 – oreal

Why o = (tr1 - tr2 + ts2 - ts1)/2? (2) Then tr1 = ts1 + L1 + oreal tr2 = ts2 + L2 – oreal Subtracting second equation from the first oreal = (tr1 – tr2 + ts2 – ts1)/2 + (L2 – L1)/2 => oreal = o + (L2 – L1)/2 => |oreal – o| < |(L2 – L1)/2| < |(L2 + L1)/2| Thus, the error is bounded by the round-trip-time

And yet… We still have a non-zero error! We just can’t seem to get rid of error Can’t, as long as message latencies are non-zero Can we avoid synchronizing clocks altogether, and still be able to order events?

Lamport Timestamps

Ordering Events in a Distributed System To order events across processes, trying to sync clocks is one approach What if we instead assigned timestamps to events that were not absolute time? As long as these timestamps obey causality, that would work If an event A causally happens before another event B, then timestamp(A) < timestamp(B) Humans use causality all the time E.g., I enter a house only after I unlock it E.g., You receive a letter only after I send it

Logical (or Lamport) Ordering Proposed by Leslie Lamport in the 1970s Used in almost all distributed systems since then Almost all cloud computing systems use some form of logical ordering of events

Logical (or Lamport) Ordering(2) Define a logical relation Happens-Before among pairs of events Happens-Before denoted as  Three rules On the same process: a  b, if time(a) < time(b) (using the local clock) If p1 sends m to p2: send(m)  receive(m) (Transitivity) If a  b and b  c then a  c Creates a partial order among events Not all events related to each other via 

Example A B C D E P1 Time E F G P2 H I J P3 Instruction or step Message E F G H I J While P1 and P3 each have an event labeled E, these are different events as they occur at different processes.

Happens-Before A B C D E P1 Time E’ F G P2 H I J P3 A  B Instruction or step P1 P3 Message E’ F G H I J A  B B  F A  F

Happens-Before (2) A B C D E P2 Time Instruction or step P1 P3 Message E’ F G H I J H  G F  J H  J C  J

In practice: Lamport timestamps Goal: Assign logical (Lamport) timestamp to each event Timestamps obey causality Rules Each process uses a local counter (clock) which is an integer initial value of counter is zero A process increments its counter when a send or an instruction happens at it. The counter is assigned to the event as its timestamp. A send (message) event carries its timestamp For a receive (message) event the counter is updated by max(local clock, message timestamp) + 1

Example P2 Time Instruction or step P1 P3 Message

Lamport Timestamps P1 Time P2 P3 Instruction or step Message Initial counters (clocks)

Lamport Timestamps P1 ts = 1 Time P2 Message carries ts = 1 P3 ts = 1 P2 Time Instruction or step P1 P3 Message ts = 1 Message carries ts = 1 ts = 1 Message send

Lamport Timestamps P1 1 Time P2 Message carries ts = 1 P3 1 P2 Time Instruction or step P1 P3 Message 1 ts = max(local, msg) + 1 = max(0, 1)+1 = 2 Message carries ts = 1 1

Lamport Timestamps P1 2 1 Message carries Time ts = 2 P2 2 max(2, 2)+1 P2 Time Instruction or step P1 P3 Message 2 1 Message carries ts = 2 2 max(2, 2)+1 =3 1

Lamport Timestamps max(3, 4)+1 =5 P2 Time Instruction or step P1 P3 P2 Time Instruction or step P1 P3 Message 2 1 3 2 3 4 1

Lamport Timestamps P2 Time Instruction or step P1 P3 Message 2 5 6 1 3 P2 Time Instruction or step P1 P3 Message 2 5 6 1 3 2 3 4 2 7 1

Obeying Causality A B C D E P2 Time Instruction or step P1 P3 Message P2 Time Instruction or step P1 P3 Message 1 2 3 4 5 6 7 E’ F G H I J 2 A  B :: 1 < 2 B  F :: 2 < 3 A  F :: 1 < 3

Obeying Causality (2) A B C D E P2 Time Instruction or step P1 P3 P2 Time Instruction or step P1 P3 Message 1 2 3 4 5 6 7 E’ F G H I J 2 H  G :: 1 < 4 F  J :: 3 < 7 H  J :: 1 < 7 C  J :: 3 < 7

Not always implying Causality A B C D E P2 Time Instruction or step P1 P3 Message 1 2 3 4 5 6 7 E’ F G H I J 2 ? C  F ? :: 3 = 3 ? H  C ? :: 1 < 3 (C, F) and (H, C) are pairs of concurrent events

Concurrent Events A pair of concurrent events doesn’t have a causal path from one event to another (either way, in the pair) Lamport timestamps not guaranteed to be ordered or unequal for concurrent events Ok, since concurrent events are not causality related! Remember E1  E2  timestamp(E1) < timestamp (E2), BUT timestamp(E1) < timestamp (E2)  {E1  E2} OR {E1 and E2 concurrent}

Next Can we have causal or logical timestamps from which we can tell if two events are concurrent or causally related?

Vector Timestamps Used in key-value stores like Riak Each process uses a vector of integer clocks Suppose there are N processes in the group 1…N Each vector has N elements Process i maintains vector Vi[1…N] jth element of vector clock at process i, Vi[j], is i’s knowledge of latest events at process j

Assigning Vector Timestamps Incrementing vector clocks On an instruction or send event at process i, it increments only its ith element of its vector clock Each message carries the send-event’s vector timestamp Vmessage[1…N] On receiving a message at process i: Vi[i] = Vi[i] + 1 Vi[j] = max(Vmessage[j], Vi[j]) for j ≠ i

Example A B C D E P1 Time E’ F G P2 H I J P3 Instruction or step Message E’ F G H I J

Vector Timestamps P2 Time P1 P3 (0,0,0) Initial counters (clocks)

Vector Timestamps (0,0,0) (1,0,0) (0,0,0) Message(0,0,1) (0,0,0) (1,0,0) (0,0,0) Message(0,0,1) (0,0,0) (0,0,1) P2 Time P1 P3

Vector Timestamps P2 Time P1 P3 (0,0,0) (1,0,0) (0,0,0) (0,1,1) (0,0,0) (1,0,0) (0,0,0) (0,1,1) Message(0,0,1) (0,0,0) (0,0,1)

Vector Timestamps P1 (0,0,0) (1,0,0) (2,0,0) Message(2,0,0) Time (0,0,0) (1,0,0) (2,0,0) Message(2,0,0) (0,0,0) (0,1,1) (2,2,1) (0,0,0) (0,0,1)

Vector Timestamps P1 (0,0,0) (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) (0,0,0) (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) (0,0,0) (0,1,1) (2,2,1) (2,3,1) (0,0,0) (0,0,1) (0,0,2) (5,3,3)

Causally-Related … VT1 = VT2, iff (if and only if) VT1[i] = VT2[i], for all i = 1, … , N VT1 ≤ VT2, iff VT1[i] ≤ VT2[i], for all i = 1, … , N Two events are causally related iff VT1 < VT2, i.e., iff VT1 ≤ VT2 & there exists j such that 1 ≤ j ≤ N & VT1[j] < VT2 [j]

… or Not Causally-Related Two events VT1 and VT2 are concurrent iff NOT (VT1 ≤ VT2) AND NOT (VT2 ≤ VT1) We’ll denote this as VT2 ||| VT1

Obeying Causality A B C D E P1 Time P1 P3 (0,0,0) (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) (0,0,0) (0,1,1) (2,2,1) (2,3,1) (0,0,0) (0,0,1) (0,0,2) (5,3,3) E’ F G H I J A  B :: (1,0,0) < (2,0,0) B  F :: (2,0,0) < (2,2,1) A  F :: (1,0,0) < (2,2,1)

Obeying Causality (2) A B C D E P1 Time P1 P3 (0,0,0) (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) (0,0,0) (0,1,1) (2,2,1) (2,3,1) (0,0,0) (0,0,1) (0,0,2) (5,3,3) E’ F G H I J H  G :: (0,0,1) < (2,3,1) F  J :: (2,2,1) < (5,3,3) H  J :: (0,0,1) < (5,3,3) C  J :: (3,0,0) < (5,3,3)

Identifying Concurrent Events A B C D E P2 Time P1 P3 (0,0,0) (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) (0,0,0) (0,1,1) (2,2,1) (2,3,1) (0,0,0) (0,0,1) (0,0,2) (5,3,3) E’ F G H I J C & F :: (3,0,0) ||| (2,2,1) H & C :: (0,0,1) ||| (3,0,0) (C, F) and (H, C) are pairs of concurrent events

Logical Timestamps: Summary Lamport timestamps Integer clocks assigned to events Obeys causality Cannot distinguish concurrent events Vector timestamps Obey causality By using more space, can also identify concurrent events

Time and Ordering: Summary Clocks are unsynchronized in an asynchronous distributed system But need to order events, across processes! Time synchronization Cristian’s algorithm NTP Berkeley algorithm But error a function of round-trip-time Can avoid time sync altogether by instead assigning logical timestamps to events

Reminders (4 cr students) MP2 due this Sunday, Demos on Monday Signup sheet (soon) on Piazza (All) HW2 due next Tuesday

HW1 Statistics (min, max, median, average, stdev) On-campus Undergrads: 0, 80, 56, 65, 24.1 On-campus Grads: 0, 80, 63.5, 72, 22.1 MCS-online: 0, 78, 50.2, 52, 19.4 MCS-DS: 0, 77, 38.7, 42, 26.6

HW1 Statistics Collect your HW1s (returned 10/3) Sorted by last name To your left (my right) Middle To your right (my left) A-J K-R S-Z