“Virtual Time and Global States of Distributed Systems”

Slides:



Advertisements
Similar presentations
Virtual Time Virtual Time and Global States of Distributed Systems Friedmann Mattern, 1989 The Model: An asynchronous distributed system = a set of processes.
Advertisements

Global States.
Virtual Time “Virtual Time and Global States of Distributed Systems” Friedmann Mattern, 1989 The Model: An asynchronous distributed system = a set of processes.
SES Algorithm SES: Schiper-Eggli-Sandoz Algorithm. No need for broadcast messages. Each process maintains a vector V_P of size N - 1, N the number of processes.
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.
CS542 Topics in Distributed Systems Diganta Goswami.
Logical Time Each event is assigned a logical time from a totally ordered set T The logical times for the events must respect any possible dependencies.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Logical Clocks and Global State.
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.
CPSC 668Set 12: Causality1 CPSC 668 Distributed Algorithms and Systems Fall 2009 Prof. Jennifer Welch.
20101 Synchronization in distributed systems A collection of independent computers that appears to its users as a single coherent system.
EEC-681/781 Distributed Computing Systems Lecture 11 Wenbing Zhao Cleveland State University.
Cloud Computing Concepts
1 Distributed Process Management: Distributed Global States and Distributed Mutual Exclusion.
Computer Science Lecture 10, page 1 CS677: Distributed OS Last Class: Clock Synchronization Physical clocks Clock synchronization algorithms –Cristian’s.
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 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.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Logical Clocks and Global State.
Logical Clocks (2). Topics r Logical clocks r Totally-Ordered Multicasting r Vector timestamps.
Chapter 5.
CIS 720 Distributed algorithms. “Paint on the forehead” problem Each of you can see other’s forehead but not your own. I announce “some of you have paint.
1 Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms Author: Ozalp Babaoglu and Keith Marzullo Distributed Systems: 526.
Logical Clocks n event ordering, happened-before relation (review) n logical clocks conditions n scalar clocks condition implementation limitation n vector.
Computer Science Lecture 10, page 1 CS677: Distributed OS Last Class: Naming Name distribution: use hierarchies DNS X.500 and LDAP.
DISTRIBUTED ALGORITHMS By Nancy.A.Lynch Chapter 18 LOGICAL TIME By Sudha Elavarti.
Issues with Clocks. Context The tree correction protocol was based on the idea of local detection and correction. Protocols of this type are complex to.
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.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport Massachusetts Computer Associates,Inc. Presented by Xiaofeng Xiao.
D u k e S y s t e m s Asynchronous Replicated State Machines (Causal Multicast and All That) Jeff Chase Duke University.
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 5 Instructor: Haifeng YU.
D ISTRIBUTED S YSTEM UNIT-2 Theoretical Foundation for Distributed Systems Prepared By: G.S.Mishra.
Feb 15, 2001CSCI {4,6}900: Ubiquitous Computing1 Announcements.
Event Ordering. CS 5204 – Operating Systems2 Time and Ordering The two critical differences between centralized and distributed systems are: absence of.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
CSE 486/586 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
1 Chapter 11 Global Properties (Distributed Termination)
6.2 Logical Clocks Kranthi Koya09/23/2015. Overview Introduction Lamport’s Logical Clocks Vector Clocks Research Areas Conclusion.
CS3771 Today: Distributed Coordination  Previous class: Distributed File Systems Issues: Naming Strategies: Absolute Names, Mount Points (logical connection.
11-Jun-16CSE 542: Operating Systems1 Distributed systems Time, clocks, and the ordering of events in a distributed system Leslie Lamport. Communications.
Logical Clocks event ordering, happened-before relation (review) logical clocks conditions scalar clocks  condition  implementation  limitation vector.
Distributed Systems Lecture 6 Global states and snapshots 1.
Ordering of Events in Distributed Systems UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
Greetings. Those of you who don't yet know me... Today is... and
CSE 486/586 Distributed Systems Global States
Overview of Ordering and Logical Time
COT 5611 Operating Systems Design Principles Spring 2012
湖南大学-信息科学与工程学院-计算机与科学系
Logical Clocks and Casual Ordering
Outline Theoretical Foundations - continued Lab 1
Time And Global Clocks CMPT 431.
Event Ordering.
Outline Theoretical Foundations
Chien-Liang Fok Distribution Seminar Chien-Liang Fok
CS 425 / ECE 428  2013, I. Gupta, K. Nahrtstedt, S. Mitra, N. Vaidya, M. T. Harandi, J. Hou.
Chapter 5 (through section 5.4)
Basics of Distributed Systems
Outline Theoretical Foundations - continued
CSE 486/586 Distributed Systems Global States
Distributed algorithms
COT 5611 Operating Systems Design Principles Spring 2014
Outline Theoretical Foundations
Presentation transcript:

“Virtual Time and Global States of Distributed Systems” Friedmann Mattern, 1989 The Model: An asynchronous distributed system = a set of processes having no shared memory, communicating by message transfer. Message delay > 0, but is not known in advance. A global observer – sees the global state at certain points in time. It can be said to “take a snapshot” of the global state. A local observer – (one of the processes in the system) sees the local state. Because of the asynchrony, a local observer can only gather local views to an approximate global view. The lack of a global observer is a hard hazard for many management and control problems: mutual exclusion, deadlock detection, distributed contracts, leader election, load sharing, checkpointing etc. Style change of the paper title Added checkpointing in the examples of applications (at the bottom)

Solution Approaches Simulating a synchronous system by an asynchronous one. This requires high overhead on global synchronization of each and every step. Simulation of a global state. A snapshot, taken asynchronously, which is not necessarily correct for any specific point in time, but is in a way “consistent” with the local states of all processes. A logical clock which is not global, but can be used to derive useful global information. The system works asynchronously, but the processes make sure to maintain their part of the clock. It is not clear how do we do 1 & 2

Events An event is a change in the process state. An event happens instantly, it does not “take time”. A process is a sequence of events There are 3 types of events: send event – causes a message to be sent receive event – causes a message to be received local event – only causes an internal change of state Events correspond to each other as follows: All events in the same process happen sequentially, one after the other. Each send event has a corresponding receive event This allows us to define the happened before relation among events. Made changes the description of 3 types of events Added the last sentence and Split the slide to the current and next slides

The Happened Before Relation We say that event e happened before event e’ (and denote it by e  e’ or e < e’) if one of the following properties holds: Processor Order: e precedes e’ in the same process Send-Receive: e is a send and e’ is the corresponding receive Transitivity: exists e’’ s.t. e < e’’ and e’’< e’ Example: P1 P2 P3 e21 e11 e31 e22 e13 global time e12 e23 e32 e14 Program order: e13 < e14 Send-Receive: e23 < e12 Transitivity: e21 < e32 This is the new slide Addition of the example

Independent/Concurrent Events global time Two such diagrams are called equivalent when the happened before relation is the same in both. (When global time differs for certain events, think of processor execution as if it was a rubber band). A slight style change of the diagram Slight change in the definition at the bottom; ommited the word Definition because it doesn’t appear in any of the other definitions Two events e, e’ are said to be independent or concurrent (denoted by e || e’) if not e < e’ and not e’ < e.

Cuts c1 P1 c2 Ci are past events of P2 the cut. future c3 P3 P4 c4 A cut C of a set of events E is the union set of the cut events set { ci } and all the events e  E which precede any of the ci in program order. A cut is said to be consistent if also: e  C and e’<e always imply e’ C. If a receipt of a message is inside a consistent cut – so is its sending. The opposite does not necessarily hold.

Consistent Cuts c1 P1 Ci are c2 past events of P2 the cut. c3 P3 future e41 P4 e42 c4 Intuitively, a cut is consistent if when stretching the execution lines so that the cut events form a vertical line, there is no send-receive arrow which crosses the cut right to left.

inconsistent Cut c1 P1 c2 Ci are past events of P2 the cut. future c3

Global View and Consistent Cuts If a cut is consistent then there is an execution of the diagram in which all cut events happen at the same moment. Clearly, the view of a global observer at any point in time is necessarily consistent (a message that arrived was necessarily previously sent). Thus: A global view determines a consistent cut at any point in time.

Consistent Cuts and Global Snapshots Any consistent cut may actually happen at a certain point during a an execution. The cut is said to contain the local states of the cut processes and the set of messages that were already sent but not received. This is a “snapshot” of what is happening in the system. The Global Snapshot problem: Find an efficient protocol to compute consistent cuts. i.e. collect the local process states and the messages which are “in flight” (or, “in the communication buffers”) at the time of the cut.

Virtual Time (Lamport, 1978) A logical clock is a function C: E(vents)  T(ime) E – set of events, C(e) timestamp of e T – a partially ordered set s.t. e<e’  C(e)<C(e’) (the opposite not necessarily true, e.g. concurrent events.) Commonly, T=N, and there is a local clock Ci for every process Pi. The clocks tick using the following protocol: When a local event e is executed by Pi: new Ci := Ci + d (d>0) C(e) := Timestamp(e) := new Ci A message m, sent on event s = send(m), is time-stamped t(m) = C(s); t(m) is sent together with the m as a pair (t(m),m). When Pi receives (t(m),m): Ci := max{ Ci, t(m) } + d (d >0) Usually, d=1. However, d may change arbitrarily and dynamically (as long as it is positive), e.g., in an attempt to reflect actual time.

Loss of execution information Example: C(e11)=1 C(e12)=2 C(e13)=3 P1 e11 e12 e13 C(e21)=1 Send(m), C(e22)=2 P2 e21 e22 (t(m)=2,m) P3 e31 Receive(m), C(e31)=3 A problem: Suppose we read execution log where only the timestamps of the events were recorded. Suppose C(e) < C(e’) . We can infer that e’ cannot have happened (Lamport-sense) before e: “not (e’<e)”. But we cannot distinguish between e < e’ and e || e’. Information whether the events are independent is lost. Notice: a global observer would know that. Question: can we change the clock mechanism to preserve more info?

A Vector Clock for a Global Observer P1 P2 P3 P4 3 1 2 cuts Improved the style of arrows 1 Vector of times as seen by a global observer 2 2 1 3 1 1 3 1 3 2 3 1 2 3 1 2 3

Approximating Global Vector Time Idea: let’s compute for every process an approximation of the global observer’s vector clock (will have to show approx-n is good enough). Instead of scalar clocks, process Pi will maintain a vector clock Ci[]. Timestamp C(e) of an event e at process Pi is Ci[] when e happens. When executing a local event e in Pi: Ci[i] := Ci[i] + 1 (Ci[] ticks) C(e) :=Ci[] A message m sent by event s = send(m), is time-stamped t(m) = C(s). The message is sent together with the timestamp as a pair (t(m),m). Upon receipt of a message m by Pi: for every j: Ci[j] := max{ Ci[j], t(m)[j] } Ci[i] := Ci[i] + 1 (Ci[] ticks) The time stamp of a received message contains information about other processes states. On receipt of a message, a process combines this information with what it already knows about the system state, and communicates it elsewhere, piggybacking on messages it sends out.

Back to Example P1 P2 P3 P4 3 1 2 t(m)= m m’ m’’ t(m’)= t(m’’)= Vector of times as seen by a global observer C1 C2 C3 C4 t(m)= m m’ m’’ t(m’)= t(m’’)= Note 1: P3 receives ticking information from P2 albeit they never communicate directly. Note 2: Local timestamps approximating global observer times

Actual Order of Independent Events not Important 3 1 2 m m’ m’’ 2 1 Really don’t Care! Can tell e2,1 and e3,1 are concurrent (vectors independent) Inconsistent global time = is impossible. What is the actual global order? 1 2 1 2 2 3 2 3 1      1 1 2 1 3 1 2 3 1 1     

An Invariant (*) Only Pi can advance his clock: Ci[i] ticks only at Pi. Thus, Pi always knows the up-to-date time of his local time. Thus, at any point in time, for any i,j, it holds that: Ci[i] >= Cj[i]

Vector Times can be Compared u and v concurrent: u happened before v: u did not happen after v: Slight changes in the frame With vector times, timestamps can keep more information on order of events. Need to show: time stamp vector relations and Lamport’s happens-before relation of events are equivalent.

Vector Times Relations Represent Order of Events Claim: for every e,e’ C(e) <vectorial C(e’) iff e <Lamport e’ C(e) ||vectorial C(e’) iff e ||Lamport e’ If in addition e is known to have happened in process Pi then for every e’ (<>e): C(e)[i] < C(e’)[i] iff e < e’ Proof for (1): (Proofs of 2,3 are similar.) If e’ knows the local time of e (i.e., the vector component corresponding to the process where e happened is bigger in e’ than in e), then there must exist a sequence of time stamps from e to e’ which represents the happened before relation.  If e<e’ then there exist a sequence of time stamps from e to e’, and these time stamps monotonically grow in each component. The growth is strict in at least one component: that corresponding to e’s process. FIXME: The proof is given only for the claim that “C(e) < C(e’) iff e < e’”. It should be specified in the slide.

Cuts Revisited Let X be a cut, {xi} cut events, a system of n processes. We say that the global time of X is tx = max(C(x1), … , C(xn)) (max is taken per entry). Example: Different cuts have same global Time. 1 2 However …

Different Consistent Cuts Have Different Global Times Claim: X is consistent iff tx = [C(x1)[1], … ,C(xn)[n]] Proof: If X is consistent then its cut events xi can be viewed as if they occurred at the same moment. By the invariant (*) at that moment the claim holds. If X is not consistent, then there exists a message that was sent (say) from Pi after xi, and was received by Pj before xj. Let t be the timestamp on the message, then xi[i] < t[i] <= xj[i]. Thus tx > [C(x1)[1], … ,C(xn)[n]].