Bài 5: Thời gian và Trạng thái trong các Hệ thống phân tán Thời gian trong các hệ thống phân tán Đồng hồ logic Lamport Đồng hồ vector Trạng thái của hệ phân tán Thuật toán tính
Trang 1Bài 5: Thời gian và Trạng thái trong
các Hệ thống phân tán
Thời gian trong các hệ thống phân tán
Đồng hồ logic Lamport
Đồng hồ vector
Trạng thái của hệ phân tán
Thuật toán tính đoạn trạng thái
Mục tiêu:
HỌC VIỆN CÔNG NGHỆ BCVT 1 TS HÀ HẢI NAM KHOA CÔNG NGHỆ THÔNG TIN 1
Trang 2Thời gian trong các HPT
Thời gian dùng để đồng bộ các sự kiện xảy ra
trong hệ thống
Các hệ thống kích hoạt bởi thời gian
Duy trì tính nhất quán của dữ liệu phân tán thường dựa trên thời gian sự thay đổi xảy ra
Ví dụ: Chương trình biên dịch make
Trang 3Thời gian trong các HPT (tt.)
Trang 5Đồng bộ đồng các hồ vật lý (tt.)
Các nguồn tham chiếu:
Thời gian quốc tế dựa trên các đồng hồ vật lý siêu chính xác (10E-123)
UTC là tiêu chuẩn quốc tế để giữ nhịp định thời
Được quảng bá từ các trạm phát sóng mặt đất hoặc
Trang 6 Họat động đồng bộ phải được thực hiện theo chu kỳ
Nếu một đồng hồ nhanh hơn đồng hồ chuẩn, nó
không đơn thuần được chỉnh ngược lại
Trang 7Đồng bộ đồng các hồ vật lý (tt.)
Đồng bộ ngoài
Đồng hồ của một MT Ci được đồng bộ với một
đồng hồ ngoài chuẩn S, sao cho:
Trang 8Thuật toán Critian
Client C gửi yêu cầu thời gian trong một bản tin đến server
S và nhận được giá trị thời gian t trong bản tin C UTC từ S t
là thời gian hiện tại ở S trước khi gửi C UTC về C.
T trans là thời gian cần thiết để bản tinC UTC từ S đến C, C
sẽ thiết lập thời gian là t + T trans .
T trans có thể biến đổi Có thể là: T trans = min+x, x ≥ 0 , x???
Giải pháp:
(1) Ghi tổng thời gian ở phía C là T round
(2) Nếu thời gian nhận được trong bản tin là t, C được
ước lượng: t + T round /2.
Trang 9Thuật toán Critian (tt.)
Trang 10Thuật toán Berkeley
Một nhóm các máy tính được chọn để điều phối
(time server)
Master gửi các yêu cầu hỏi về thời gian đến các
slaves bằng cách gửi thời gian của bản thân master
Slaves gửi về độ lệc thời gian với master
Dựa trên thời gian nhận được từ slaves, master tính giá trị thời gian trung bình (gồm cả master)
Master gửi giá trị điều chỉnh thời gian đến slaves
Trang 11Thuật toán Berkeley (tt.)
Trang 12Đồng bộ đồng hồ - Giao thức thời gian mạng NTP
Trang 13Thời gian logic và đồng hồ logic
Trong nhiều ứng dụng, thứ tự tương đối của các sự kiện quan trọng hơn thời gian vật lý xảy ra sự kiện (make)
Không cần các đồng hồ vật lý đồng bộ
Thứ tự tương đối dựa trên thời gian logic
Thời gian logic có được nhờ đồng hồ logic
Trang 14Đồng hồ logic của Lamport
Thứ tự đề xuất bởi Lamport dựa trên quan hệ xảy ra
trước - Happened-Before (HB) ký hiệu là ->:
x-P->y nghĩa là sự kiện x xảy ra trước sự kiện y trong tiến
trình P
happened-before(HB) “->”
HB1: If for process P: x-P->y, then x-> y.
HB2: For the same message m, send(m)->receive(m)
HB3: If x, y, and z are events, x->y, y->z then x->z.
Trang 15Đồng hồ logic của Lamport (tt.)
a->b : Quan hệ nhân quả
Có các sự kiện không có quan hệ HB Chúng là các sự kiện xảy ra đồng thời và được ký hiệu ||(Vd: a||e)
Trang 16Đồng hồ logic của Lamport (tt.)
Đồng hồ logic được dùng để thực hiện quan hệ HB
Một đồng hồ logic là một bộ đếm chương trình
tăng đơn điệu – Ký hiệu là C
Mỗi tiến trình Pi có một đồng hồ logic C Pi
Giá trị của đồng hồ logic được sử dụng để gán các
nhãn thời gian cho các sự kiện - C Pi (a)
Không có mối quan hệ giữa đồng hồ logic và đồng
hồ vật lý
Đồng hồ logic phải được cài đặt sau cho:
Nếu a->b thì C(a) < C(b)
Trang 17Đồng hồ logic của Lamport (tt.)
Các luật truyền và cập nhật đồng hồ logic:
mỗi sự kiện phát sinh ở tiến trình Pi : C Pi = C Pi + 1
a) Khi a là một sự kiện gửi thông điệp m từ tiến trình P i , thì
nhãn thời gian t m = C Pi (a) được gửi kèm trong thông điệp
m C Pi (a) là giá trị đồng hồ logic có được sau khi áp dụng
luật L1.
b) Khi tiến trình P j nhận được thông điệp m, đồng hồ logic của tiến trình P j được cập nhật như sau: C Pj := max (C Pj , t m ).
c) Giá trị mới C Pj được dùng để gán nhãn thời gian cho sự
kiện nhận thông điệp sau khi áp dụng luật L1.
Trang 18Đồng hồ logic của Lamport (tt.)
Trang 20Đồng hồ logic của Lamport (tt.)
Một số ứng dụng đòi hỏi phải có sắp
xếp thứ tự toàn cục với giả thiết KHÔNG có hai sự kiện xảy ra đồng thời
Để sắp xếp thứ tự toàn cục, khái niệm
nhãn thời gian logic toàn cục (Global Logical Timestamp) được sử dụng được định nghĩa là: (C Pi (a), i)
Trang 21Vấn đề đối với đồng hồ Lamport
Nếu a->b thì C(a) < C(b) Tuy nhiên, ngược lại thì không luôn đúng
Trang 22 Mỗi tiến trình i duy trì một đồng hồ vector C V Pi
Đồng hồ vector được sử dụng để gán các nhãn thời
gian cho các sự kiện - C V
Trang 23Đồng hồ vector (tt.)
Các luật cập nhật đồng hồ vector
khi có một sự kiện phát sinh ở tiến trình P i
C V Pi [i] := C V Pi [i] + 1;
thông điệp m từ tiến trình P i , nhãn thời gian t m =C V Pi (a) được gửi kèm thông điệp m C V
Pi (a) là đồng hồ vector có được sau
khi áp dung L1.
b) Khi một tiến trình P j nhận được thông điệp m, đồng hồ
vector của tiến trình P j được cập nhật như sau:
Với mọi k, k=1 N, C V
Pj [k] = max (C V Pj [k], t m [k]) c) Giá trị C V
Pj được dùng để gán nhãn thời gian sự kiện nhận
thông điệp m sau khi áp dụng luật L1
Trang 24Đồng hồ vector (tt.)
Cho hai nhãn thời gian u, v
u = v khi và chỉ khi u[i] = v[i] với mọi i
u ≤ v khi và chỉ khi u[i] ≤ v[i] với mọi i
u < v khi và chỉ khi u ≤ v và u≠v
u||v khi và chỉ khi ¬ (u<v) và ¬ (v<u)
Thuộc tính quan trọng: a-> b khi và chỉ khi C V (a) < C V (b)
Trang 25Thứ tự nhân quả sử dụng đồng hồ vector
Trang 26Thứ tự nhân quả sử dụng đồng hồ vector (tt.)
Giao thức truyền thông điệp thực hiện thứ tự nhân quả sử dụng đồng hồ vector
Ý tưởng cơ bản:
Một thông điệp được chuyển giao tới một tiến trình chỉ khi thông điệp ngay trước nó đã được chuyển giao tới
tiến trình đó Nếu không đó được lưu trong bộ đệm
Giả thiết: Các tiến trình dùng cơ chế quảng bá thông điệp để liên lạc
Trang 27Thứ tự nhân quả sử dụng đồng hồ vector (tt.)
Cài đặt giao thức dựa trên các luật sau:
Luật 1(L1): a) Trước khi quảng bá thông điệp m, một tiến trình Pi sẽ
tăng đồng hồ vector của nó: C V
Pi [i] := C V
Pi [i] +1 b) Nhãn thời gian t m = C V Pi được gửi kèm thông điệp m
Luật 2(L2): Tại nơi nhận, một tiến trình P j trễ việc chuyển giao
thông điệp m từ P i cho đến khi cả hai điều kiện sau thỏa mãn:
ĐK1: C V
Pj [i] = t m [i] - 1
ĐK2 : C V Pj [k] ≥ t m [k] , mọi k thuộc {1,2, n} – {i}
Các thông điệp được trễ được lưu trong hàng đợi theo thứ tự nhãn
thời gian, cá thông điệp tương tranh được sắp xếp thứ tự dựa trên thời điểm đến
Luật 3 (L3): Khi một thông điệp được chuyển giao đến tiến trình P j,
đồng hồ vector của P j được cập nhật theo luật cập nhật Luật 2.b cho
cài đặt đồng hồ vector (Với mọi k, k=1 N, C V
Trang 28Thứ tự nhân quả sử dụng đồng hồ vector (tt.)
Trang 30Các trạng thái toàn cục (tt.)
Một trạng thái toàn cục bao gồm
Một tập các trạng thái cục bộ
Một tập các trạng thái kênh truyền thông
Khó ghi trạng thái kênh => Trạng thái toàn cục
thường được ghi không sử dụng trạng thái kênh
Trang 31Định nghĩa hình thức
LS i là trạng thái cục bộ của tiến trình P i
Ngoài các thông tin khác, trạng thái cục bộ bao gồm một bản ghi các thông
điệp được gửi/nhận bởi tiến trình P i.
Trạng thái toàn cục của hệ thống, ký hiệu là GS, là tập các trạng thái toàn
Trang 32Định nghĩa hình thức (tt.)
Một trạng thái toàn cục GS = {LS 1 , LS 2 ,…,LS n } là nhất quán khi và chỉ khi:
Một trạng thái toàn cục GS = {LS 1 , LS 2 ,…,LS n } là không chuyển tiếp (transitless) khi và chỉ khi:
Một trạng thái toàn cục là nhất quán mạnh nếu nó
nhất quán và không chuyển tiếp
Trang 35Các lát cắt của tính toán phân tán
Một lát cắt là một biểu diễn đồ
họa của một trạng thái toàn cục
Một lát cắt nhất quán là một
biểu diễn đồ họa của một trạng
thái toàn cục nhất quán
Trang 36Các lát cắt của tính toán phân tán (tt.)
Giả sử e k là một sự kiện tại tiến trình P k
Một lát cắt Ct = {c 1 , c 2 , …,c n } là một lát cắt đồng
nhất nếu:
{c1,c4,c5}?
Định lý: Một lát cắt Ct = {c 1 , c 2 , …,c n } là một lát cắt
đồng nhất nếu không tồn tại hai sự kiện cắt có quan
hệ nhân quả Nghĩa là:
Trang 37Ghi trạng thái toàn cục Lamport)
(Chandy- Thuật toán ghi một tập các trạng thái cục bộ cho phép đạt được trạng thái toàn cục nhất quán
Ghi trạng thái của các kênh
View, snapshort(Đoạn trạng thái)
Giả thiết kênh truyền một chiều, truyền thông điệp theo cơ chế FIFO
Đồ thị biểu diễn kết nối mạnh
Thuật toán dựa trên dùng thông điệp đánh dấu(thẻ bài)
Trang 38Thuật toán Chandy-Lamport
Luật gửi thẻ bài cho tiến trình P i : Được thực hiện bởi tiến trình khởi
tạo ghi và các tiến trình khi lần đầu tiên nhận được thông điệp đánh dấu
[SR1]: P ighi trạng thái của nó
[SR2]: P i gửi bản tin đánh dấu đến các kênh đầu ra
Luật nhận thẻ bài cho tiến trình P j : Được thực hiện khi tiến trình P j
nhận được thông điệp đánh dấu từ tiến trình P i trên kênh Ch ij
[RR1]: if P j chưa ghi trạng thái của nó then
Ghi trạng thái của kênh: SCh ij := ∅
Theo luật áp dụng cho bên gửi thẻ bài.
else
Ghi trạng thái của kênh: SCh ij := M,
ở đó M là tập các thông điệp P j đã nhận từ P i sau khi P j ghi trạng thái của nó và trước khi P j nhận được bản tin đánh dấu trên Ch ij
Trang 39Thuật toán Chandy-Lamport (tt.)
Trang 40Thuật toán Chandy-Lamport (tt.)
Trang 41Thuật toán Chandy-Lamport (tt.)
Trang 42Thuật toán xác định kết thúc tính toán trạng thái
Dùng thuật toán tính toán đoạn trạng thái để phát hiện kết thúc
Nếu vẫn còn thông điệp đang được truyền=> chưa kết thúc
Giả sử tiến trình P khởi tạo thuật toán, nó gửi bản tin đánh đấu đến tiến trình Q P được gọi là phần tử cha của Q
Khi Q hoàn thành công việc tính toán đoạn trạng thái, nó gửi về tiến trình cha thông điệp DONE hoặc CONTINUTE
Trang 43Thuật toán xác định kết thúc tính toán
*CONTINUE : Các trường hợp khác
Khi tiến trình khởi tạo nhận được tất cả các bản tin DONE từ các tiến trình con thì hoạt động tính toán được coi là kết thúc
Trang 44Tổng kết
Thời gian trong các hệ thống phân tán
Đồng hồ logic Lamport
Đồng hồ vector
Trạng thái của hệ phân tán
Thuật toán tính đoạn trạng thái