You are on page 1of 32

Distributed Systems

Cc ng h logic
Logical Clocks
Nguyen Minh Nhat
nhatnam06@gmail.com - 0905125143

Trng i hc Duy Tan Khoa CNTT, T K thut mng 8/2009


Page 1

ng h logic
Gi s i vi dy cc thng ip
- Tt c cc tin trnh c th tha mn vic sp xp
th t ca cc s kin
- i vi ng h vt l : Ly thi gian trong ngy
Gi s khng c ngun thi gian trung tm
- Mi h thng duy tr ng h ring ca chnh mnh
- Khng c ch th ca cc s kin
+ Khng c khi nim happened-when

Page 2

Happened-before
Lamport k hiu happened-before :
- a b : s kin a xy ra trc s kin b
V D : a thng ip c gi i, b: thng ip
nhn
Transitive:
nu a b v b c th a c

Page 3

ng h logic v ng qui(concurrency)
Gi nh ta gn gi tr "ng h" cho mi s
kin :
Nu ab th clock(a) < clock(b)
Thi gian khng th chy ngc

Nu a v b xy ra trn cc tin trnh khc nhau


m khng trao i thng ip, v sau khng
phi a b hoc khng b a l ng
- Nhng s kin ny c gi l ng qui

Page 4

V d v vic m s kin
Cho 3 h thng: P0, P1, P2
Cc s kin :a, b, c,
S lt s kin truy cp cc b (a phng)
trn mi h thng
Cc h thng i khi giao tip vi nhau

Page 5

V d v vic m s kin
P1

a
1

P3

P2

j
1

c
g
1

d
4

e
5

f
h

k
2

Page 6

V d v vic m s kin
P1

a
1

P3

P2

j
1

g
1

d
4

e
5

f
h

k
2

Bad ordering:
eh
fk

Page 7

Lamports algorithm
Mi thng ip mang mt du thi gian ca
ng h gi
Khi mt tin nhn n:
- nu ng h nhn < timestamp thng ip
thit lp li ng h h thng (message
timestamp + 1)
khc khng phi lm g
ng h phi c ci tin gia hai s kin
trong tin trnh trnh nh nhau

Page 8

Lamports algorithm
Thut ton cho php chng ta duy tr th t thi
gian trong s cc s kin lin quan
- Partial ordering ( th t tng phn )

Page 9

V d v vic m s kin
P1

a
1

P3

P2

j
1

c
g
1

d
4

e
5

f
h

2
6

k
27

Page 10

Tm li
Thut ton cn nhu cu truy cp phn mm
monotonically tng
t nht l c mt gia s khi cc s kin cn c
timestamped xy ra
Mi s kin c mt du thi gian Lamport gn
lin vi n
i vi bt k hai s kin, m ab, : L (a) <L (b)

Page 11

Identical timestamps
P1

a
1

P3

P2

g
1

d
4

e
5

f
h

ab, bc, :

trnh t cc s kin ti a phng

ic, fd , dg, :Lamport p t mt quan h


sendreceive
Cc s kin ng qui (v d, a & i) c th c
nhng du thi gian tng t ... hoc khng
Page 12

Unique timestamps (total ordering)


Chng ta c th p t mi du thi gian l duy nht
- Xc nh ton cu hp l du thi gian (Ti, i)
Ti i din cho du thi gian Lamport a phng
i i din cho s quy trnh (duy nht trn ton cu)
V d (a ch my, qu trnh ID)

So snh timestamps:
(Ti, i) < (Tj, j)
Nu v ch nu
Ti < Tj hoc
Ti = Tj v i < j

Khng lin quan n cc s kin sp xp

Page 13

Unique (totally ordered) timestamps


P1
P2
P3

a
1.1

b
2.1

j
1.3

3.1 4.1

1.2

5.1

6.1

6.2

7.2

k
7.3

Page 14

Pht hin mi quan h nhn qu


(Detecting causal relations)
If L(e) < L(e)
Khng th kt lun rng ee

Hy xem Lamport timestamps


Khng th kt lun l s kin c lin quan nhn qu

Gii php: s dng mt ng h vector

Page 15

Vector clocks
H thng ng h vector c Fidge, Mattern v
Schmuck xut.
Rules:
1.

Vector khi to c gi tr 0 ti m i qu trnh


Vi [j] = 0 for i, j =1, , N

2. Nhng s gia tin trnh nguyn t ca cc vector trong


vector a phng xy ra trc khi s kin timestamping:
Vi [i] = Vi [i] +1

3. Thng ip c gi t qu trnh Pi vi Vi g n li n v i n.
4. Khi Pj nhn c tin nhn, so snh vect thnh ph n b i
nguyn t v thit lp vc t a ph ng theo:
Vj [i] = max(Vi [i], Vj [i]) for i=1, , N

Page 16

Comparing vector timestamps


Define

V = V nu V [i ] = V[i ] for i = 1 N
V V nu V [i ] V[i ] for i = 1 N

Cho 2 s kin bt k e, e
Nu e e th V(e) < V(e)
Cng ging nh thut ton ca Lamport

Nu V(e) < V(e) th e e

Hai s kin ng qui nu (H1||H2 )


khng V(e) V(e) hoc khng V(e) V(e)

Page 17

Vector timestamps
(0,0,0)
P1
(0,0,0)
P2
(0,0,0)
P3

b
c
e

d
f

Page 18

Vector timestamps
(1,0,0)
(0,0,0)
a
b
P1
(0,0,0)
P2
(0,0,0)
e
P3

Event
a

d
f
timestamp
(1,0,0)

Page 19

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(0,0,0)
c
P2
(0,0,0)
e
P3
Event
a
b

d
f
timestamp
(1,0,0)
(2,0,0)

Page 20

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0)
(0,0,0)
c
P2
(0,0,0)
e
P3
Event
a
b
c

d
f
timestamp
(1,0,0)
(2,0,0)
(2,1,0)

Page 21

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,0)
e
f
P3
Event
a
b
c
d

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

Page 22

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,1)
(0,0,0)
e
f
P3
Event
a
b
c
d
e

timestamp
(1,0,0)
(2,0,0)
(2,1,0)
(2,2,0)
(0,0,1)
Page 23

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,1)
(2,2,2)
(0,0,0)
e
f
P3
Event
a
b
c
d
e
f

timestamp
(1,0,0)
(2,0,0)
(2,1,0)
(2,2,0)
(0,0,1)
(2,2,2)
Page 24

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,1)
(2,2,2)
(0,0,0)
e
f
P3
Event
a
b
c
d
e
f

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

concurrent
events

Page 25

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,1)
(2,2,2)
(0,0,0)
e
f
P3
Event
a
b
c
d
e
f

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

concurrent
events

Page 26

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,1)
(2,2,2)
(0,0,0)
e
f
P3
Event
a
b
c
d
e
f

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

concurrent
events

Page 27

Vector timestamps
(1,0,0) (2,0,0)
(0,0,0)
a
b
P1
(2,1,0) (2,2,0)
(0,0,0)
c
d
P2
(0,0,1)
(2,2,2)
(0,0,0)
e
f
P3
Event
a
b
c
d
e
f

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

concurrent
events

Page 28

Quan h nhn qa(Causality) gia hai s kin


Vic xc lp trt t nhn qu ca hai s kin
e1 v e2 bt k c thc hin da trn
nhng
quy lut sau y:
Quy tc 1: Nu hai s kin e1, e2 xy ra trn
cng mt trm Si (i l s th t ca trm
trong h), khi e1e2 khi v ch khi
Hi(e1)<Hi(e2).

Page 29

Quy tc 2: Nu e1 l s kin gi i mt
thng ip m trn mt trm, v e2 l s kin
nhn c chnh thng ip th e1e2.
Quy tc 3: Nu hai s kin e1, e2 xy ra trn
hai trm Si, Sj bt k trong h (i, j l s
th t ca trm) th ta c e1e2 tng
ng Hi(e1)<Hj(e2).
Quy tc 4 :Nu hai s kin e1, e2 ta c e1||
e2 tng ng H(e1)||H(e2).
Nu a->b th s kin a c th nh hng n s
kin b
Page 30

Tng tranh(Concurrency)
Nu khng a->b nor b->a th mt s kin khng th
nh hng ns kin khc

Th t tng phn (Partial Ordering )


S kin nguyn nhn l trnh t

Th t ton cc (Total Ordering )


Tt c cc s kin c trnh t

Page 31

The end.

Page 32

You might also like