distributed systems - pk.org...page 1 logical clocks paul krzyzanowski [email protected]...

30
Page 1 Page 1 Logical Clocks Paul Krzyzanowski [email protected] Distributed Systems Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.

Upload: others

Post on 12-Aug-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

Page 1Page 1

Logical Clocks

Paul Krzyzanowski

[email protected]

Distributed Systems

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

Page 2: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

Page 9

Lamport’s algorithm

Algorithm allows us to maintain time ordering among related events

– Partial ordering

Page 10: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

Page 18

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

Page 19: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

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 30: Distributed Systems - pk.org...Page 1 Logical Clocks Paul Krzyzanowski pxk@cs.rutgers.edu Distributed Systems Except as otherwise noted, the content of this presentation is licensed

Page 30Page 30

The end.