DISTRIBUTED COMPUTER SYSTEMS

Similar documents
Distributed Computing. Synchronization. Dr. Yingwu Zhu

Clock Synchronization

Time in Distributed Systems: Clocks and Ordering of Events

Agreement. Today. l Coordination and agreement in group communication. l Consensus

Time. Today. l Physical clocks l Logical clocks

Distributed Systems Principles and Paradigms. Chapter 06: Synchronization

Time. To do. q Physical clocks q Logical clocks

Distributed Systems Principles and Paradigms

Absence of Global Clock

Distributed systems Lecture 4: Clock synchronisation; logical clocks. Dr Robert N. M. Watson

Distributed Systems. Time, Clocks, and Ordering of Events

Slides for Chapter 14: Time and Global States

Distributed Systems 8L for Part IB

CS 347 Parallel and Distributed Data Processing

CS505: Distributed Systems

416 Distributed Systems. Time Synchronization (Part 2: Lamport and vector clocks) Jan 27, 2017

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

Chapter 11 Time and Global States

Time is an important issue in DS

CS505: Distributed Systems

Distributed Systems. Time, clocks, and Ordering of events. Rik Sarkar. University of Edinburgh Spring 2018

Clocks in Asynchronous Systems

Logical Time. 1. Introduction 2. Clock and Events 3. Logical (Lamport) Clocks 4. Vector Clocks 5. Efficient Implementation

Clock Synchronization

Distributed Systems. 06. Logical clocks. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Algorithms Time, clocks and the ordering of events

Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms. CS 249 Project Fall 2005 Wing Wong

Time, Clocks, and the Ordering of Events in a Distributed System

Cuts. Cuts. Consistent cuts and consistent global states. Global states and cuts. A cut C is a subset of the global history of H

Our Problem. Model. Clock Synchronization. Global Predicate Detection and Event Ordering

Distributed Systems Fundamentals

A subtle problem. An obvious problem. An obvious problem. An obvious problem. No!

7680: Distributed Systems

Recap. CS514: Intermediate Course in Operating Systems. What time is it? This week. Reminder: Lamport s approach. But what does time mean?

Do we have a quorum?

Causality and physical time

CptS 464/564 Fall Prof. Dave Bakken. Cpt. S 464/564 Lecture January 26, 2014

Causality and Time. The Happens-Before Relation

CS5412: REPLICATION, CONSISTENCY AND CLOCKS

Coordination. Failures and Consensus. Consensus. Consensus. Overview. Properties for Correct Consensus. Variant I: Consensus (C) P 1. v 1.

C 1. Recap: Finger Table. CSE 486/586 Distributed Systems Consensus. One Reason: Impossibility of Consensus. Let s Consider This

TTA and PALS: Formally Verified Design Patterns for Distributed Cyber-Physical

Distributed Mutual Exclusion Based on Causal Ordering

Genuine atomic multicast in asynchronous distributed systems

Distributed Systems Time and Global State

Today. Vector Clocks and Distributed Snapshots. Motivation: Distributed discussion board. Distributed discussion board. 1. Logical Time: Vector clocks

Agreement Protocols. CS60002: Distributed Systems. Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur

Failure detectors Introduction CHAPTER

TSCCLOCK: A LOW COST, ROBUST, ACCURATE SOFTWARE CLOCK FOR NETWORKED COMPUTERS

Figure 10.1 Skew between computer clocks in a distributed system

Time. Lakshmi Ganesh. (slides borrowed from Maya Haridasan, Michael George)

Verification of clock synchronization algorithm (Original Welch-Lynch algorithm and adaptation to TTA)

Shared Memory vs Message Passing

Chandy-Lamport Snapshotting

What is the Right Answer?

Time and Frequency Activities at the JHU Applied Physics Laboratory

Efficient Notification Ordering for Geo-Distributed Pub/Sub Systems

Estimation of clock offset from one-way delay measurement on asymmetric paths

Implementing Uniform Reliable Broadcast with Binary Consensus in Systems with Fair-Lossy Links

Real Time Operating Systems

Causal Consistency for Geo-Replicated Cloud Storage under Partial Replication

Real-Time Course. Clock synchronization. June Peter van der TU/e Computer Science, System Architecture and Networking

Lecture 8: Time & Clocks. CDK: Sections TVS: Sections

Seeking Fastness in Multi-Writer Multiple- Reader Atomic Register Implementations

Accurate Event Composition

Section 6 Fault-Tolerant Consensus

Degradable Agreement in the Presence of. Byzantine Faults. Nitin H. Vaidya. Technical Report #

Time Synchronization between SOKUIKI Sensor and Host Computer using Timestamps

TECHNICAL REPORT YL DISSECTING ZAB

Time Synchronization

Approximate Synchrony: An Abstraction for Distributed Time-Synchronized Systems

An Indian Journal FULL PAPER. Trade Science Inc. A real-time causal order delivery approach in largescale ABSTRACT KEYWORDS

Early consensus in an asynchronous system with a weak failure detector*

DCS: Distributed Asynchronous Clock Synchronization in Delay Tolerant Networks

Chapter 7 HYPOTHESIS-BASED INVESTIGATION OF DIGITAL TIMESTAMPS. 1. Introduction. Svein Willassen

THE APL TIME AND FREQUENCY LAB

TIME BOUNDS FOR SHARED OBJECTS IN PARTIALLY SYNCHRONOUS SYSTEMS. A Thesis JIAQI WANG

Analysis of Bounds on Hybrid Vector Clocks

arxiv: v1 [cs.dc] 22 Oct 2018

Distributed Algorithms (CAS 769) Dr. Borzoo Bonakdarpour

On the Quality of Service of Failure Detectors. Sam Toueg Wei Chen, Marcos K. Aguilera (part of Wei ChenÕs PhD Thesis)

Scheduling Slack Time in Fixed Priority Pre-emptive Systems

Causal Broadcast Seif Haridi

PC Based Precision Timing Without GPS

Administrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application

Ordering Events Based on Intentionality in Cyber-Physical Systems

A Methodology for Clock Benchmarking

Integrating External and Internal Clock Synchronization. Christof Fetzer and Flaviu Cristian. Department of Computer Science & Engineering

Abstract. The paper considers the problem of implementing \Virtually. system. Virtually Synchronous Communication was rst introduced

Eventually consistent failure detectors

1 Introduction During the execution of a distributed computation, processes exchange information via messages. The message exchange establishes causal

The Weakest Failure Detector to Solve Mutual Exclusion

MODELING TIME AND EVENTS IN A DISTRIBUTED SYSTEM

6.852: Distributed Algorithms Fall, Class 10

INF Models of concurrency

Clock Synchronization in the Presence of. Omission and Performance Failures, and. Processor Joins. Flaviu Cristian, Houtan Aghili and Ray Strong

Clock Synchronization with Bounded Global and Local Skew

1 Introduction During the execution of a distributed computation, processes exchange information via messages. The message exchange establishes causal

Exercises Solutions. Automation IEA, LTH. Chapter 2 Manufacturing and process systems. Chapter 5 Discrete manufacturing problems

6.897: Selected Topics in Cryptography Lectures 7 and 8. Lecturer: Ran Canetti

Transcription:

DISTRIBUTED COMPUTER SYSTEMS SYNCHRONIZATION Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Topics Clock Synchronization Physical Clocks Clock Synchronization Algorithms Network Time Protocol Berkeley Algorithm Clock Synchronization in Wireless Networks Logical Clocks Lamport s Logical Clocks Vector Clocks 1!

SYNCHORNIZATION CLOCK SYNCHRONIZATION Motivation Why clock synchronization matters? Control access to a single, shared resource Agree on the ordering of events Time-based computations on multiple machines Many applications require that clocks advance at similar rates Real-time scheduling events based on processor clock Setting timeouts and measuring latencies 2!

Synchronization Synchronization within one system is hard enough Messages Semaphores, Monitors, Barriers, Synchronization among processes in a distributed system is much harder Two approaches to achieve synchronization Synchronization based on physical time Synchronization using relative ordering rather than absolute time Clock Synchronization In a centralized system, time is unambiguous Processes obtain the time, by issuing a system call to the kernel Process 1 issues R1 to obtain time Kernel return T1 Process 2 issues R2 to obtain time Kernel returns T2 It is guaranteed that T2 T1 In a distributed system, achieving agreement on time is not trivial It is impossible to guarantee that physical clocks run at the same frequency 3!

Clock Synchronization Lack of global time may cause undesirable behavior for time dependent application Example make recompiles if prg.c is newer than prg.o make on machine A to build prg.o Test on machine B; find and fix a bug in prg.c Re-run make on machine B, prg.o remains the same. WHY? Time According to Local Clock Computer B Computer A Prg.o created Prg.c created Time According to Local Clock When each machine has its own clock, an event that occurred after another event may nevertheless be assigned an earlier time SYNCHORNIZATION PHYSICAL CLOCKs 4!

Physical clocks Computer Clocks are acutually Timers, a precisely machined quartz crystal When kept under tension, crystals oscillate at a well-defined frequency Associated with the crystal are two registers, a counter and holding register At each oscillation, the counter decrements by 1 When counter reaches zero, an interrupt is generated Possible to program a timer to generate an interrupt 60 times a second Each interrupt corresponds to a clock tick Within a singly computer, a clock being slightly off is tolerable, with minimal impact In multi-computers systems, clock skew is problematic Clock Synchronization Actual Time For time dependent applications, e.g., real-time systems, the actual time is important External physical clocks become critical For efficiency and redundancy, multiple physical clocks are needed Two issues arise: 1. How to synchronize the physical clocks with real-world clocks? 2. How to synchronize these clocks with each other? 5!

Time Measurement Atomic clocks make it possible to measure time accurately Several laboratories, equipped with Cesium 133 clocks, periodically report the number of times their clock has ticket to the Bureau International de l Heure (BIH) BIH computes the average to produce the International Atomic Time (TAI), the number of seconds since 01/01/1958 midnight divided by 9,192,631,370 TAI seconds are of constant length, unlike solar seconds. As the mean solar day is getting longer, TAI get out of synch Now, 86,600 TAI seconds are about 3 msec less than a mean solar day Universal Coordinated Time BIH solves the TAI problem by introducing leap seconds whenever the discrepancy grows to 800 msec The resulting time system is referred to as the Universal Coordinated Time (UTC) UTC is based on constant TAI seconds, but remains in phase with the motion of the sun 6!

UTC Service National Institute of Standard Time (NIST) provide UTC by operating a shortwave radio station with call letters WWV from Fort Collins, Colorado WWV broadcasts a short pulse at the start of each UTC second WWV accuracy is ± 1 msec, but due atmospheric fluctuations the accuracy is ± 10 msec Satellites offer UTC service GEOS provides UTC with accuracy of 0.5 msec Radio receivers for WWV, GEOS and other UTC sources are commercially available Accurate knowledge of the sender and receiver positions is required to compensate for signal propagation delay GPS Computing Position in 2-D Space Measured delay Δ i = ( T now T i ) + Δ r T i = Timestamp from satellite i T now = Time when message is received Δ r = Deviation of the receiver s clock from the actual time Measured distance d i = c Δ r, where c is speed of light d i = (xi xr)2+(yi yr)2 7!

Global Positioning System Real world facts that complicate GPS It takes a while before data on a satellite s position reaches the receiver. The receiver s clock is generally not in synch with that of a satellite. Relation between Clock Time and UTC 8!

Dealing with drift Set computer to true time Not good idea to set clock back Illusion of time moving backwards can confuse message ordering and software development environments Gradual clock correction If fast then make clock run slower until it synchronizes If slow then make clock run faster until it synchronizes Compensating for a fast clock Computer s time, C dc/dt > 1 skew Clock Synchronized Linear Compensating Function Applied UTC time, t 9!

Compensating for a fast clock Computer s time, C dc/dt < 1! UTC time, t OS Dealing With Drift To deal with drift OS can take different actions Change rate at which it requests interrupts If system requests interrupts every 10 msec and clock is too slow, request interrupts at 9 msec, for example Perform software correction Redefine the interval Adjustment changes slope of system time Linear compensating function After synchronization period is reached Resynchronize periodically Successive application of a second linear compensating function can bring the system time slope closer to the actual slope 10!

SYNCHORNIZATION Network Time Protocol Network Time Protocols Clients contact a time server for synchronization, Time server is typically equipped with a WWV receiver or an accurate clock client Request () server Reply(Crnt_Time) Does not account for processing and communication delay Delay Approximation 11!

Network Time Protocol Getting the current time from a time server. NTP Skew Assume delay is nearly symmetric Skew Estimation θ = [(T2 T1) + (T3 T4 )]/2. If θ < 0 then clock must be set backward Not advisable Change must be introduced gradually, until the correction is made 12!

NTP Basic Operation NTP is set up pairwise A probes B for its current time and B also probes A Compute the offset, θ, and the delay estimation, δ δ = [(T 2 T 1 )+(T 4 T 3 )]/2 Buffer 8 pairs of (θ, δ), and select the minimal value for δ as the best delay estimation between the two servers The associated θ with the minimal delay δ is the most reliable estimation of the offset NTP Clock Adjustment NTP divides servers into strata Strata-1 Servers Servers with a reference clock such as WWV receiver Clock itself is said to operate at stratum 0 A contacting B adjusts its time only if its own stratum level is higher than B s After synchronization, A set its stratum to B s stratum + 1 If A s stratum is lower than B, then B adjusts itself to A 13!

SYNCHORNIZATION Berkeley Protocol The Berkeley Algorithm Request The algorithm is suitable for a system in which no machine has a WWV receiver The time daemon asks all the other machines for their clock values. 14!

The Berkeley Algorithm Reply The machines answer, with their current time Daemon computes the average of the received answers The Berkeley Algorithm (3) The time daemon tells everyone how to adjust their clock. Advance the clock to the new time or slow the clock down until some specification reduction is achieved 15!

SYNCHORNIZATION Logical Clocks Logical Clocks For many DS algorithms, associating an event to an absolute real time is not essential What s important is that the processes in the Distributed System agree on the ordering in which certain events occur relative time may not relate to the real time. Such clocks are referred to as Logical Clocks Lamport's timestamps Vector timestamps 16!

Lamport s Logical Clocks To synchronize logical clocks, Lamport defines a relation called "happens-before" happens before relation is denoted as The relation can be observed directly in two situations: If a and b are events in the same process, and a occurs before b, then a b is true. If a is the event of a message being sent by one process, and b is the event of the message being received by another process, then a b Happens Before Relation The happens before relation is transitive a b and b c then a c If two events e1 and e2 happen in different processes that do not exchange messages, then e1 e2 is not true The events e1 and e2 are said to be concurrent Nothing can be said about the order in which these events happened 17!

Concurrent Events If two events happen without any message, then we can't say anything about their relative occurrence in time. We can say that a b c d f, but we can say little about e other than e f. P 1 a b m 1 c d P 2 P 3 e m 2 f Lamport Logical Clocks A way is needed to measure the notion of time, such that each event is assigned a time value e i e j LC(e i ) < LC(e j ) LC i is a local clock and contains increasing values Each process i has own LC i Increment LC i on each event occurrence Within same process i, if e j occurs before e k LC i (e j ) < LC i (e k ) If e s is a send event and e r receives that send, then LC i (e s ) < LC j (e r ) 18!

Lamport s Logical Clocks Three processes, each with its own clock. The clocks run at different rates. Message m 3 arrives before it was sent! Logical Clocks Readjusting Lamport s algorithm corrects the clocks. 19!

Lamport s Logical Clocks The positioning of Lamport s logical clocks in distributed systems. Lamport s Logical Clocks To implement Lamport s algorithm, each process, P i, maintains a local counter, C i Updating counter C i for process P i 1. Before executing an event P i executes C i C i + 1. 2. When process P i sends a message m to P j, it sets m s timestamp ts (m) equal to C i after having executed the previous step. 3. Upon the receipt of a message m, process P j adjusts its own local counter as C j max{c j, ts (m)}, after which it then executes the first step and delivers the message to the application. 20!

Logical Clocks Application Totally Ordered Multicast Application Scenario Replicated database across several sites Copies of a bank account is stored in two different sites Query 1 Account Debit Add $100 to X s account, which contains $1000 Query 2 Account Update Increase X s account by 1% interest Due to communication delays, qeuries may arrive in random order Database can become inconsistent 21!

DB Inconsistent State Updating a replicated database and leaving it in an inconsistent state. Totally-Ordered Multicasting Totally-Ordered Multicasting Message is timestamped with sender s logical time Message is multicast (including sender itself) When message is received It is put into local queue Ordered according to timestamp Multicast acknowledgement Message is delivered to applications only when It is at head of queue It has been acknowledged by all involved processes 22!

Totally-Ordered Multicasting Update 1 is time-stamped and multicast. Added to local queues. Update 2 is time-stamped and multicast. Added to local queues. Acknowledgements for Update 2 sent/received. Update 2 can now be processed. Acknowledgements for Update 1 sent/received. Update 1 can now be processed. Note All queues are the same, as the timestamps have been used to ensure the happens-before relation holds. Limitation of Lamport s Algorithm e i e j LC(e i ) < LC(e j ) P 1 P 2 P 3 However, LC(e i ) < LC(e j ) does not imply e i e j For example, (1,1) < (1,3), but events a and e are concurrent a b Real Time (1,1) (2,1) e (1,3) m 1 c d (3,2) (4,2) g (2,3) m 2 (5,3) f 23!

Vector Clocks (1) Lamport clocks do not capture causality Sending m3 may have depended on m1 Causality can be captured by Vector Clocks Vector Clocks (2) Vector clocks are constructed by letting each process P i maintain a vector VC i with the following two properties: 1. VC i [ i ] is the number of events that have occurred so far at P i. In other words, VC i [ i ] is the local logical clock at process P i. 2. If VC i [ j ] = k then P i knows that k events have occurred at P j. It is thus P i s knowledge of the local time at P j. 24!

Vector Clocks Basic Steps Steps carried out to accomplish property 2: 1. Before executing an event P i executes VC i [ i ] VC i [i ] + 1. 2. When process P i sends a message m to P j, it sets m s (vector) timestamp ts (m) equal to VC i after having executed the previous step. 3. Upon the receipt of a message m, process P j adjusts its own vector by setting VC j [k ] max{vc j [k ], ts (m)[k ]} for each k, after which it executes the first step and delivers the message to the application. Vector Clocks Local Events Initialization The vector timestamp for each process is initialized to (0,0,,0) Local Event When an event occurs on process P i : VT i [i] VT i [i] + 1 For example on processor 3, (1,2,1,3) (1,2,2,3) 25!

Vector Clocks Messages Message Passing When P i sends a message to P j, the message has timestamp t[]=vt i [] When P j receives the message, it sets VT j [k] to max (VT j [k],t[k]), for k = 1, 2,, N For example, P 2 receives a message with timestamp (3,2,4) and P 2 s timestamp is (3,4,3), then P 2 adjusts its timestamp to (3,4,4) Comparing Clock Vectors VT 1 = VT 2 iff VT 1 [i] = VT 2 [i] for all i VT 1 VT 2 iff VT 1 [i] VT 2 [i] for all i VT 1 < VT 2 iff VT 1 VT 2 & VT 1 VT 2 For example, (1, 2, 2) < (1, 3, 2) 26!

Vector Clocks Analysis Claim e e iff e.vt < e.vt P 1 P 2 P 3 a [1,0,0] e [0,0,1] b [2,0,0] m 1 c [2,1,0] g [0,0,2] d Real Time [2,2,0] m 2 f [2,2,3] Causally-Ordered Multicasting For ordered delivery of related messages Upon sending a message, P i will only increment V i [i] by 1 When it delivers a message m with timestamp ts(m), it only adjusts VC i [k] to max{vc i [k], ts(m)]}, for each k When P k gets a message, m, from P j, with ts(m), the message is buffered until 1 and 2 are met: Condition 1: ts(m)[j] = VC k [j] + 1 Timestamp indicates this is the next message that P k is expecting from j Condition 2: ts(m)[i] VC k [i] for all i j P k has seen all messages that were seen by P j, when it sent the message, m 27!

Causally-Ordered Multicasting For ordered delivery of related messages Upon sending a message, Pi will only increment Vi[i] by 1 When it delivers a message m with timestamp ts(m), it only adjusts VCi [k] to max{vc i [k], ts(m)]}, for each k When P k gets a message, m, from P j, with ts(m), the message is buffered until 1 and 2 are met: Condition 1: ts(m)[j] = VC k [j] + 1 Timestamp indicates this is the next message that P k is expecting from j Condition 2: ts(m)[i] VC k [i] for all i j P k has seen all messages that were seen by P j, when it sent the message, m Causally-ordered multicasting is weaker then totally-ordered multicasting Two messages that are not related to each may be delivered in any order May be delivered in different order in different locations Enforcing Causal Communication 28!

Conclusion Physical Clocks Clock Synchronization Algorithms Network Time Protocol Berkeley Algorithm Clock Synchronization in Wireless Networks Logical Clocks Lamport s Logical Clocks Vector Clocks Enforcing Causal Communication 29!