Logical Clocks (Distributed computing)

sriprasanna 27,780 views 30 slides Sep 02, 2009
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

No description available for this slideshow.


Slide Content

Page 1Page 1
Logical Clocks
Paul Krzyzanowski
[email protected]
[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
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 a®b 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: P
0
, P
1
, P
2
•Events a, b, c, …
•Local event counter on each system
•Systems occasionally communicate

Page 6
Event counting example
ab
hi
k
P
1
P
2
P
3
1 2
1 3
21
d f
g
3
c
2
4 6
e
5
j

Page 7
Event counting example
ab
i
k
j
P
1
P
2
P
3
1 2
1 3
21
d f
g
3
c
2
4 6
Bad ordering:
e  h
f  k
h
e
5

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
ab
i
k
j
P
1
P
2
P
3
1 2
1 7
21
d f
g
3
c
2
4 6
6
7
h
e
5

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 timestamp
attached to it
•For any two events, where a ® b:
L(a) < L(b)

Page 12
Problem: Identical timestamps
a®b, b®c, …:local events sequenced
i®c, f®d , d®g, … :Lamport imposes a
send®receive relationship
Concurrent events (e.g., a & i) may have
the same timestamp … or not
ab
hi
k
j
P
1
P
2
P
3
1 2
1 7
71
d f
g
3
c
6
4 6
e
5

Page 13
Unique timestamps (total ordering)
We can force each timestamp to be unique
–Define global logical timestamp (T
i
, i)
•T
i
represents local Lamport timestamp
•i represents process number (globally unique)
–E.g. (host address, process ID)
–Compare timestamps:
(T
i
, i) < (T
j
, j)
if and only if
T
i
< T
j
or
T
i
= T
j
and i < j
Does not relate to event ordering

Page 14
Unique (totally ordered) timestamps
ab
i
kj
P
1
P
2
P
3
1.12.1
1.2 7.2
7.31.3
d f
g
3.1
c
6.2
4.1 6.1
h
e
5.1

Page 15
Problem: Detecting causal relations
If L(e) < L(e’)
–Cannot conclude that e®e’
Looking at Lamport timestamps
–Cannot conclude which events are causally related
Solution: use a vector clock

Page 16
Vector clocks
Rules:
–Vector initialized to 0 at each process
V
i
[j] = 0 for i, j =1, …, N
–Process increments its element of the vector
in local vector before timestamping event:
V
i
[i] = V
i
[i] +1
–Message is sent from process P
i with V
i
attached to it
–When P
j
receives message, compares vectors
element by element and sets local vector to
higher of two values
V
j [i] = max(V
i [i], V
j [i]) for i=1, …, N

Page 17
Comparing vector timestamps
Define
V = V’ iff V

[i ] = V’[i ] for i = 1 … N
V £ 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 neither
V(e) £ V(e’) nor V(e’) £ V(e)

Page 18
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)

Page 19
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (1,0,0)

Page 20
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (1,0,0)
b (2,0,0)
(2,0,0)

Page 21
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (1,0,0)
b (2,0,0)
c (2,1,0)
(2,0,0)
(2,1,0)

Page 22
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (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
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (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
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (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
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
Event timestamp
a (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)
concurrent
events

Page 26
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (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)
concurrent
events

Page 27
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (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)
concurrent
events

Page 28
Vector timestamps
ab
c d
fe
(0,0,0)
P
1
P
2
P
3
(0,0,0)
(0,0,0)
(1,0,0)
Event timestamp
a (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)
concurrent
events

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.