distributed systems - pk.org...page 1 logical clocks paul krzyzanowski pxk@cs.rutgers.edu...

Post on 12-Aug-2021

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Page 1Page 1

Logical Clocks

Paul Krzyzanowski

pxk@cs.rutgers.edu

Distributed Systems

Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.

Page 2

Logical clocks

Assign sequence numbers to messages– All cooperating processes can agree on order of

events

– vs. physical clocks: time of day

Assume no central time source– Each system maintains its own local clock

– No total ordering of events• No concept of happened-when

Page 3

Happened-before

Lamport’s “happened-before” notation

a b event a happened before event b

e.g.: a: message being sent, b: message receipt

Transitive:

if a b and b c then a c

Page 4

Logical clocks & concurrency

Assign “clock” value to each event– if ab then clock(a) < clock(b)

– since time cannot run backwards

If a and b occur on different processes that do not exchange messages, then neither a b nor b a are true

– These events are concurrent

Page 5

Event counting example

• Three systems: P0, P1, P2

• Events a, b, c, …

• Local event counter on each system

• Systems occasionally communicate

Page 6

Event counting example

a b

h i

k

P1

P2

P3

1 2

1 3

21

d f

g3

c

2

4 6

e5

j

Page 7

Event counting example

a b

i

kj

P1

P2

P3

1 2

1 3

21

d f

g3

c

2

4 6

Bad ordering:

e h

f k

h

e5

Page 8

Lamport’s algorithm

• Each message carries a timestamp of the sender’s clock

• When a message arrives:– if receiver’s clock < message timestamp

set system clock to (message timestamp + 1)

– else do nothing

• Clock must be advanced between any two events in the same process

Page 9

Lamport’s algorithm

Algorithm allows us to maintain time ordering among related events

– Partial ordering

Page 10

Event counting example

a b

i

kj

P1

P2

P3

1 2

1 7

21

d f

g3

c

2

4 6

6

7

h

e5

Page 11

Summary

• Algorithm needs monotonically increasing software counter

• Incremented at least when events that need to be timestamped occur

• Each event has a Lamport timestampattached to it

• For any two events, where a b:L(a) < L(b)

Page 12

Problem: Identical timestamps

ab, bc, …: local events sequenced

ic, fd , dg, … : Lamport imposes asendreceive relationship

Concurrent events (e.g., a & i) may have the same timestamp … or not

a b

h i

kj

P1

P2

P3

1 2

1 7

71

d f

g3

c

6

4 6

e5

Page 13

Unique timestamps (total ordering)

We can force each timestamp to be unique– Define global logical timestamp (Ti, i)

• Ti represents local Lamport timestamp

• i represents process number (globally unique)

– E.g. (host address, process ID)

– Compare timestamps:(Ti, i) < (Tj, j)

if and only if

Ti < Tj or

Ti = Tj and i < j

Does not relate to event ordering

Page 14

Unique (totally ordered) timestamps

a b

i

kj

P1

P2

P3

1.1 2.1

1.2 7.2

7.31.3

d f

g3.1

c

6.2

4.1 6.1h

e5.1

Page 15

Problem: Detecting causal relations

If L(e) < L(e’)– Cannot conclude that ee’

Looking at Lamport timestamps– Cannot conclude which events are causally related

Solution: use a vector clock

Page 16

Vector clocksRules:

1. Vector initialized to 0 at each processVi [j] = 0 for i, j =1, …, N

2. Process increments its element of the vector in local vector before timestamping event:

Vi [i] = Vi [i] +1

3. Message is sent from process Pi with Viattached to it

4. When Pj receives message, compares vectors element by element and sets local vector to higher of two values

Vj [i] = max(Vi [i], Vj [i]) for i=1, …, N

Page 17

Comparing vector timestamps

DefineV = V’ iff V [i ] = V’[i ] for i = 1 … NV V’ iff V [i ] V’[i ] for i = 1 … N

For any two events e, e’if e e’ then V(e) < V(e’)

• Just like Lamport’s algorithm

if V(e) < V(e’) then e e’

Two events are concurrent if neitherV(e) V(e’) nor V(e’) V(e)

Page 18

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

Page 19

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)

Page 20

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)

(2,0,0)

Page 21

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)

(2,0,0)

(2,1,0)

Page 22

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)

(2,0,0)

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

Page 23

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)

(2,0,0)

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

(0,0,1)

Page 24

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)

(2,0,0)

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

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

Page 25

(0,0,1)

(1,0,0)

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)

(2,0,0)

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

(2,2,2)

concurrentevents

Page 26

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)

(2,0,0)

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

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

concurrentevents

Page 27

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)

(2,0,0)

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

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

concurrentevents

Page 28

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

(1,0,0)

Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)

(2,0,0)

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

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

concurrentevents

Page 29

Summary: Logical Clocks & Partial Ordering

• Causality– If a->b then event a can affect event b

• Concurrency– If neither a->b nor b->a then one event cannot

affect the other

• Partial Ordering– Causal events are sequenced

• Total Ordering– All events are sequenced

Page 30Page 30

The end.

top related