32
Page 1 Page 1 Các đồng hồ logic Logical Clocks Distributed Systems Trường Đại học Duy Tan – Khoa CNTT, Tổ Kỹ thuật mạng – 8/2009 Nguyen Minh Nhat [email protected] - 0905125143

10 logical clocks

  • Upload
    thuy-hu

  • View
    990

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 10 logical clocks

Page 1Page 1

Các đồng hồ logicLogical Clocks

Distributed Systems

Trường Đại học Duy Tan – Khoa CNTT, Tổ Kỹ thuật mạng – 8/2009

Nguyen Minh [email protected] - 0905125143

Page 2: 10 logical clocks

Page 2

Đồng hồ logic

Giả sử đối với dãy các thông điệp

- Tất cả các tiến trình có thể thỏa mãn việc sắp xếp thứ tự của các sự kiện- Đối với đồng hồ vật lý : Lấy thời gian trong ngày

Giả sử không có nguồn thời gian trung tâm

- Mỗi hệ thống duy trì đồng hồ riêng của chính mình- Không có chỉ thị của các sự kiện

+ Không có khái niệm happened-when

Page 3: 10 logical clocks

Page 3

Happened-before

Lamport ký hiệu “happened-before” :

- a b : sự kiện a đã xảy ra trước sự kiện bVí Dụ : a thông điệp được gửi đi, b: thông điệp nhận

Transitive:nếu a b và b c thì a c

Page 4: 10 logical clocks

Page 4

Đồng hồ logic và đồng qui(concurrency)

Giả định ta đã gán giá trị "đồng hồ" cho mỗi sự kiện :

– Nếu ab thì clock(a) < clock(b)– Thời gian không thể chạy ngược

Nếu a và b xảy ra trên các tiến trình khác nhau mà không trao đổi thông điệp, và sau đó không phải a b hoặc không b a là đúng

- Những sự kiện này được gọi là đồng qui

Page 5: 10 logical clocks

Page 5

Ví dụ về việc đếm sự kiện

• Cho 3 hệ thống: P0, P1, P2

• Các sự kiện :a, b, c, …

• Số lượt sự kiện truy cập cục bộ (địa phương) trên mỗi hệ thống

• Các hệ thống đôi khi giao tiếp với nhau

Page 6: 10 logical clocks

Page 6

Ví dụ về việc đếm sự kiện

a b

h i

k

P1

P2

P3

1 2

1 3

21

d f

g3

c

2

4 6

e5

j

Page 7: 10 logical clocks

Page 7

Ví dụ về việc đếm sự kiện

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: 10 logical clocks

Page 8

Lamport’s algorithm

• Mỗi thông điệp mang một dấu thời gian của đồng hồ gởi

• Khi một tin nhắn đến:- nếu đồng hồ nhận < timestamp thông điệp thiết lập lại đồng hồ hệ thống để (message timestamp + 1)khác không phải làm gì

• Đồng hồ phải được cải tiến giữa hai sự kiện trong tiến trình trình như nhau

Page 9: 10 logical clocks

Page 9

Lamport’s algorithm

Thuật toán cho phép chúng ta duy trì thứ tự thời gian trong số các sự kiện liên quan - Partial ordering ( thứ tự từng phần )

Page 10: 10 logical clocks

Page 10

Ví dụ về việc đếm sự kiện

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: 10 logical clocks

Page 11

Tóm lại

• Thuật toán cần nhu cầu truy cập phần mềm monotonically tăng

• ít nhất là có một gia số khi các sự kiện cần được timestamped xảy ra

• Mỗi sự kiện có một dấu thời gian Lamport gắn liền với nó

Đối với bất kỳ hai sự kiện, mà ab, : L (a) <L (b)

Page 12: 10 logical clocks

Page 12

Identical timestamps

ab, bc, …: trình tự các sự kiện tại địa phương

ic, fd , dg, … :Lamport áp đặt một quan hệ sendreceive

Các sự kiện đồng qui (ví dụ, a & i) có thể có những dấu thời gian tương tự ... hoặc không

a b

h i

kj

P1

P2

P3

1 2

1 7

71

d f

g3

c

6

4 6

e5

Page 13: 10 logical clocks

Page 13

Unique timestamps (total ordering)

Chúng ta có thể áp đặt mỗi dấu thời gian là duy nhất- Xác định toàn cầu hợp lý dấu thời gian (Ti, i)Ti đại diện cho dấu thời gian Lamport địa phươngi đại diện cho số quy trình (duy nhất trên toàn cầu)Ví dụ (địa chỉ máy, quá trình ID)

– So sánh timestamps:(Ti, i) < (Tj, j)

Nếu và chỉ nếuTi < Tj hoặc

Ti = Tj và i < j

Không liên quan đến các sự kiện sắp xếp

Page 14: 10 logical clocks

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: 10 logical clocks

Page 15

Phát hiện mối quan hệ nhân quả (Detecting causal relations)

If L(e) < L(e’)– Không thể kết luận rằng ee’

Hãy xem Lamport timestamps– Không thể kết luận là sự kiện có liên quan nhân

quả

Giải pháp: sử dụng một đồng hồ vector

Page 16: 10 logical clocks

Page 16

Vector clocksHệ thống đồng hồ vector được Fidge, Mattern và

Schmuck đề xuất. Rules:

1. Vector khởi tạo có giá trị 0 tại mỗi quá trình Vi [j] = 0 for i, j =1, …, N

2. Nhứng số gia tiến trình nguyên tố của các vector trong vector địa phương xảy ra trước khi sự kiện timestamping:

Vi [i] = Vi [i] +1

3. Thông điệp được gửi từ quá trình Pi với Vi gắn liền với nó.

4. Khi Pj nhận được tin nhắn, so sánh vectơ thành phần bởi nguyên tố và thiết lập véc tơ địa phương theo:

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

Page 17: 10 logical clocks

Page 17

Comparing vector timestamps

DefineV = V’ nếu V [i ] = V’[i ] for i = 1 … N V V’ nếu V [i ] V’[i ] for i = 1 … N

Cho 2 sự kiện bất kỳ e, e’Nếu e e’ thì V(e) < V(e’)

• Cũng giống như thuật toán của Lamport

Nếu V(e) < V(e’) thì e e’

Hai sự kiện đồng qui nếu (H1||H2 )không V(e) V(e’) hoặc không V(e’) V(e)

Page 18: 10 logical clocks

Page 18

Vector timestamps

a b

c d

fe

(0,0,0)P1

P2

P3

(0,0,0)

(0,0,0)

Page 19: 10 logical clocks

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 timestamp a (1,0,0)

Page 20: 10 logical clocks

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 timestamp a (1,0,0) b (2,0,0)

(2,0,0)

Page 21: 10 logical clocks

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 timestamp a (1,0,0) b (2,0,0) c (2,1,0)

(2,0,0)

(2,1,0)

Page 22: 10 logical clocks

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 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: 10 logical clocks

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 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: 10 logical clocks

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 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: 10 logical clocks

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 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)

concurrentevents

Page 26: 10 logical clocks

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 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)

concurrentevents

Page 27: 10 logical clocks

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 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)

concurrentevents

Page 28: 10 logical clocks

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 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)

concurrentevents

Page 29: 10 logical clocks

Page 29

Quan hệ nhân qủa(Causality) giữa hai sự kiện

• Việc xác lập trật tự nhân quả của hai sự kiện e1 và e2 bất kỳ được thực hiện dựa trên những

• quy luật sau đây:• Quy tắc 1: Nếu hai sự kiện e1, e2 xảy ra

trên cũng một trạm Si (i là số thứ tự của trạm trong hệ), khi đó e1e2 khi và chỉ khi Hi(e1)<Hi(e2).

Page 30: 10 logical clocks

Page 30

• Quy tắc 2: Nếu e1 là sự kiện gửi đi một thông điệp m trên một trạm, và e2 là sự kiện

• nhận đươc chính thông điệp đó thì e1e2. • Quy tắc 3: Nếu hai sự kiện e1, e2 xảy ra

trên hai trạm Si, Sj bất kỳ trong hệ (i, j là số • thứ tự của trạm) thì ta có e1e2 tương

đương Hi(e1)<Hj(e2). • Quy tắc 4 :Nếu hai sự kiện e1, e2 ta có

e1||e2 tương đương H(e1)||H(e2).– Nếu a->b thì sự kiện a có thể ảnh hưởng đến sự

kiện b

Page 31: 10 logical clocks

Page 31

• Tương tranh(Concurrency)– Nếu không a->b nor b->a thì một sự kiện

không thể ảnh hưởng đếnsự kiện khác

• Thứ tự từng phần (Partial Ordering )– Sự kiện nguyên nhân là trình tự

• Thứ tự toàn cục (Total Ordering )– Tất cả các sự kiện được trình tự

Page 32: 10 logical clocks

Page 32Page 32

The end.