time and clocks

21
COS 461 Fall 1997 Time and Clocks uses of time in distributed systems: – time-based algorithms (e.g. in security) – distributed make – gathering event traces for debugging – proving or disproving causality (insider trading) common element: need to know in which order events happened

Upload: forrest-james

Post on 30-Dec-2015

30 views

Category:

Documents


0 download

DESCRIPTION

Time and Clocks. uses of time in distributed systems: time-based algorithms (e.g. in security) distributed make gathering event traces for debugging proving or disproving causality (insider trading) common element: need to know in which order events happened. Absolute Time. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Time and Clocks

COS 461Fall 1997

Time and Clocks

uses of time in distributed systems:– time-based algorithms (e.g. in security)– distributed make– gathering event traces for debugging– proving or disproving causality (insider

trading) common element: need to know in which

order events happened

Page 2: Time and Clocks

COS 461Fall 1997

Absolute Time

this is what clocks tell us strategy: keep clocks synchronized; put

time-stamp on each event problems

– hard to synchronize distributed clocks– clock speeds vary unpredictably– handling time zones, daylight savings time,

year 2000, etc.

Page 3: Time and Clocks

COS 461Fall 1997

Synchronizing Clocks

many protocols exist– NTP (Network Time Protocol) standard– will discuss simpler protocol here

use reference clock as baseline– “Coordinated Universal Time” (UCT)– from atomic clocks run by NIST

other machines try to sync with UCT

Page 4: Time and Clocks

COS 461Fall 1997

Clock Synchronization Protocol

A sends to B: “My clock says <value>”– only possible building block

problem: message takes time to get to B– network delay is unknown and variable

work-around: measure round-trip time between A and B, assume it doesn’t vary much and that delay is equal in both directions– not completely accurate

Page 5: Time and Clocks

COS 461Fall 1997

Clock Synchronization Problems

synchronization is necessarily inaccurate– “happens before” judgements might be wrong

can get out of sync badly if network is partitioned

vulnerable to dishonest time-servers

bottom line: OK for some applications alternative: logical time

Page 6: Time and Clocks

COS 461Fall 1997

Logical Time

insight: often don’t care about when something happened, only about which thing happened first

logical time talks about “happened before” relationships, without reference to absolute time

(analogies to Einstein’s relativity are common but bogus)

Page 7: Time and Clocks

COS 461Fall 1997

Example

ProcessP1

ProcessP2

ProcessP3

A B

C D

E F

Page 8: Time and Clocks

COS 461Fall 1997

The “Happened Before” Relation

X --> Y means “X happened before Y– captures logical ordering, not temporal

three rules:– if X and Y occur in the same process, and X

occurs before Y, then X --> Y– if M is a message, then send(M) --> receive(M)– if X --> Y and Y --> Z, then X --> Z

Page 9: Time and Clocks

COS 461Fall 1997

Example

ProcessP1

ProcessP2

ProcessP3

A B

C D

E F

Page 10: Time and Clocks

COS 461Fall 1997

Logical Time Relationships

Given two events X and Y, either– X --> Y, or– Y --> X, or– neither

» “X and Y are concurrent”

» X could not have caused Y, and vice versa

--> relation defines a partial order How to determine --> in practice?

Page 11: Time and Clocks

COS 461Fall 1997

Logical Timestamp Algorithms

simple algorithms to capture --> assign numerical timestamp to each event

– no relation to absolute time simple timestamps

– if X --> Y, then TS(X) < TS(Y) vector timestamps

– X --> Y if and only if TS(X) --> TS(Y)

Page 12: Time and Clocks

COS 461Fall 1997

Simple Logical Timestamps

timestamp is an integer each process has a “logical clock”

– starts at zero– incremented on each local event

each message has a timestamp– equal to sender’s logical clock when sent– on receive, receiver’s logical clock set to 1 +

max(message timestamp, receiver’s previous logical clock)

Page 13: Time and Clocks

COS 461Fall 1997

Logical Timestamp Example

ProcessP1

ProcessP2

ProcessP3

A B

C D

E F

1

1

2

3 4

5

0

0

0

Page 14: Time and Clocks

COS 461Fall 1997

Simple Logical Timestamps

successfully capture all --> relationships also capture some false relationships

– TS(X) < TS(Y) but not X --> Y

good scheme to use if “extra” ordering isn’t a problem

otherwise, need something fancier

Page 15: Time and Clocks

COS 461Fall 1997

Vector Timestamps

captures --> exactly more complicated than simple timestamps

– uses more time and space represent a logical time as a vector with P

entries (assuming P processes) each process has logical clock each message has a logical timestamp

Page 16: Time and Clocks

COS 461Fall 1997

Vector Timestamp Algorithm

local event in process I– process I increments the I’th element of its logical clock

message sent– message timestamp = logical clock of sender

message received– for all J, receiver sets J’th element of logical clock to

max of» J’th component in message timestamp

» J’th component in receiver’s logical clock

Page 17: Time and Clocks

COS 461Fall 1997

Vector Time Example

ProcessP1

ProcessP2

ProcessP3

A B

C D

E F

(1,0,0) (2,0,0)

(2,1,0)

(2,2,0)

(0,0,1) (2,2,2)

Page 18: Time and Clocks

COS 461Fall 1997

Vector Time and Ordering

given two events X and Y, – X --> Y iff some X[i]<Y[i] and all X[i]<=Y[i]– Y --> X iff some Y[i]<X[i] and all Y[i]<=Y[i]– X || Y iff some X[i]<Y[i] and some X[j]>Y[j]

captures happened-before relation exactly

Page 19: Time and Clocks

COS 461Fall 1997

Interpreting Vector Time

each process numbers its events sequentially– represented by I’th element of process I’s clock

each process keeps track of which events on other processes have happened before the present time– if the I’th element of P’s clock is N, that means

that the first N events at I happened before the present on process P

Page 20: Time and Clocks

COS 461Fall 1997

Application: Event Logging Tool

maintain vector logical clocks each process dumps events of interest to a

local file– mark with logical timestamp

postmortem analysis tool can interleave the local traces correctly– can answer questions of possible causality

Page 21: Time and Clocks

COS 461Fall 1997

Critique of Logical Time

fine for some applications, but doesn’t capture all of the real relationships

– “messages” can flow outside the system» insider trading example

happened before doesn’t capture causality– absolute time has this problem too