Bài 5: Thời gian và Trạng thái trong
các Hệ thống phân tán
Mục tiêu:
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
HỌC VIỆN CÔNG NGHỆ BCVT
1
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Thời gian trong các HPT
www.ptit.edu.vn
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
Thời gian và Trạng thái trong các HTPT
2
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Thời gian trong các HPT (tt.)
P.c không được dịch
Thời gian và Trạng thái trong các HTPT
3
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồng bộ đồng các hồ vật lý
Mỗi máy tính trong HPT có một đồng hồ cục bộ
Không có đồng hồ vật lý toàn cục
Cần phải đồng bộ các đồ hồ vật lý cục bộ
Đồng bộ đồng hồ vật lý: Đạt được độ chính xác biết
trước => điều phối các hoạt động xảy ra trên các
máy tính khác nhau
Thời gian và Trạng thái trong các HTPT
4
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồ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
vệ tinh
Tín hiệu từ các trạm mặt đất có độ chính xác 0.110 ms
Tín hiệu từ GPS có độ chính xác 1 micro giây
Thời gian và Trạng thái trong các HTPT
5
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Đồng bộ đồng các hồ vật lý (tt.)
www.ptit.edu.vn
Các khó khăn trong việc đồng bộ đồng hồ với
HPT:
Không phải tất cả các vị trí đều có nguồn đồng hồ chính
xác GPS
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
Thời gian và Trạng thái trong các HTPT
6
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồ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:
|S(t) - Ci(t)| < D , i = 1, 2, … N
Đồng bộ trong
Đồng hồ được đồng bộ giữa các cặp MT:
| Ci(t) - Cj(t)| < D , i = 1, 2, … N
Thời gian và Trạng thái trong các HTPT
7
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Thuật toán Critian
www.ptit.edu.vn
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 CUTC từ S. t
là thời gian hiện tại ở S trước khi gửi CUTC về C.
Ttrans là thời gian cần thiết để bản tinCUTC từ S đến C, C
sẽ thiết lập thời gian là t + Ttrans .
Ttrans có thể biến đổi. Có thể là: Ttrans = min+x, x ≥ 0 , x???
Giải pháp:
(1) Ghi tổng thời gian ở phía C là Tround
(2) Nếu thời gian nhận được trong bản tin là t, C được
ước lượng: t + Tround/2.
Thời gian và Trạng thái trong các HTPT
8
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Thuật toán Critian (tt.)
Thời gian và Trạng thái trong các HTPT
9
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Thuậ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
Thời gian và Trạng thái trong các HTPT
10
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Thuật toán Berkeley (tt.)
Thời gian và Trạng thái trong các HTPT
11
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồng bộ đồng hồ - Giao thức thời gian
mạng NTP
Thời gian và Trạng thái trong các HTPT
12
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Thời gian logic và đồng hồ logic
www.ptit.edu.vn
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
Thời gian và Trạng thái trong các HTPT
13
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồ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.
Thời gian và Trạng thái trong các HTPT
14
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Đồng hồ logic của Lamport (tt.)
www.ptit.edu.vn
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)
Thời gian và Trạng thái trong các HTPT
15
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồ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 CPi
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 - CPi (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)
Thời gian và Trạng thái trong các HTPT
16
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồng hồ logic của Lamport (tt.)
Các luật truyền và cập nhật đồng hồ logic:
Luật 1 (L1): Đồng hồ logic CPi được tăng lên một đơn vị khi
mỗi sự kiện phát sinh ở tiến trình Pi : CPi = CPi + 1
Luật 2 (L2):
a) Khi a là một sự kiện gửi thông điệp m từ tiến trình Pi , thì
nhãn thời gian tm = CPi(a) được gửi kèm trong thông điệp
m. CPi(a) là giá trị đồng hồ logic có được sau khi áp dụng
luật L1.
b) Khi tiến trình Pj nhận được thông điệp m, đồng hồ logic
của tiến trình Pj được cập nhật như sau:
CPj :=
max (CPj, tm).
c) Giá trị mới CPj đượ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.
Thời gian và Trạng thái trong các HTPT
17
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồng hồ logic của Lamport (tt.)
Ví dụ: Thuật toán Lamport để hiệu chỉnh đồng hồ logic
Thời gian và Trạng thái trong các HTPT
18
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Kiểm tra
Thời gian và Trạng thái trong các HTPT
19
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Đồng hồ logic của Lamport (tt.)
www.ptit.edu.vn
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à: (CPi(a), i)
Thỏa:
(CPi(a), i) < (CPj(b), j) khi và chỉ khi:
CPi(a) < CPj(b) hoặc :
CPi(a) = CPj(b) và i < j
Thời gian và Trạng thái trong các HTPT
20
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Vấn đề đối với đồng hồ Lamport
www.ptit.edu.vn
Nếu a->b thì C(a) < C(b). Tuy nhiên, ngược lại thì
không luôn đúng
Thời gian và Trạng thái trong các HTPT
21
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
Đồng hồ vector
www.ptit.edu.vn
Cho biết hai sự kiện có quan hệ nhân quả hay không
bằng việc xem xét nhãn thời gian của các sự kiện
Một đồng hồ vector cho một hệ thống N tiến trình là
một mảng N số nguyên
Mỗi tiến trình i duy trì một đồng hồ vector CVPi
Đồng hồ vector được sử dụng để gán các nhãn thời
gian cho các sự kiện - CVPi (a)
CVPi [i] là điểm vào thứ i của vector, tương ứng là thời
gian logic của tiến trình Pi
CVPi [j] với j≠i là dự đoán thời gian logic tại tiến trình
Pj
Thời gian và Trạng thái trong các HTPT
22
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồng hồ vector (tt.)
Các luật cập nhật đồng hồ vector
Luật 1 (L1): Thời gian logic của tiến trình Pi được tăng mỗi
khi có một sự kiện phát sinh ở tiến trình Pi
CVPi[i] := CVPi[i] + 1;
Luật 2 (L2): a) Khi có một sự kiên a là sự kiện gửi một
thông điệp m từ tiến trình Pi, nhãn thời gian tm=CVPi(a) được
gửi kèm thông điệp m. CVPi(a) là đồng hồ vector có được sau
khi áp dung L1.
b) Khi một tiến trình Pj nhận được thông điệp m, đồng hồ
vector của tiến trình Pj được cập nhật như sau:
Với mọi k, k=1..N, CVPj[k] = max (CVPj[k], tm[k])
c) Giá trị CVPj đượ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.
Thời gian và Trạng thái trong các HTPT
23
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Đồ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
Thuộc tính quan trọng: a-> b khi và chỉ khi CV(a) < CV(b)
Thời gian và Trạng thái trong các HTPT
24
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1
www.ptit.edu.vn
Thứ tự nhân quả sử dụng đồng hồ vector
Vấn đề với đồng hồ logic
Lampart=>
Chúng ta mong muốn các
thông điệp được xử lý theo
thứ tự nhân quả
M1->M2
M1->M3
M2||M3
Nếu Send(M1) → Send(M2),
các tiến trình nhận cả M1 và
M2 phải nhận M1 trước
M2.
Thời gian và Trạng thái trong các HTPT
25
TS. HÀ HẢI NAM
KHOA CÔNG NGHỆ THÔNG TIN 1