Hệ phân tán (NW605)
III. Sao lặp và tính nhất quán
1.
2.
Sao lặp
Tính nhất quán
•
•
3.
4.
Mô hình
Giao thức
Phát tán cập nhật
Sắp đặt các replica
Sao lặp
Tạo các bản sao dịch vụ trên nhiều máy
Tại sao?
– Độ tin cậy
• Dư thừa
– Hiệu năng
• Tăng năng lực xử lý
• Giảm liên lạc
– Tính mở rộng được (giảm tập trung)
• Ngăn chặn quá tải tại một server đơn (mở rộng về kích thước)
• Tránh độ trễ liên lạc (mở rộng về địa lý)
Hai kiểu
– Sao lặp dữ liệu
– Sao lặp điều khiển
Sao lặp và tính thống
2
Sao lặp dữ liệu
Sao lặp server dữ liệu
duyệt Web
Caching tại trình
Sao lặp và tính thống
3
Sao lặp điều khiển
Sao lặp và tính thống
4
Sao lặp cả dữ liệu và điều khiển
Sao lặp và tính thống
5
Sao lặp – các vấn đề
Cập nhật
– Tính thống nhất (xử lý dữ liệu được cập nhật)
– Phát tán cập nhật
Các bản sao
– Bao nhiêu bản sao?
– Đặt ở đâu?
Định tuyến/chuyển tiếp
– Client nên dùng bản sao nào?
Sao lặp và tính thống
6
Distributed data store
Kho dữ liệu lưu trữ các phần tử dữ liệu
Nhìn từ phía
client
Sao lặp và tính thống
7
Distributed data store
Kho dữ liệu lưu trữ các phần tử dữ liệu
Nhìn từ phía
kho dữ liệu
Sao lặp và tính thống
8
Distributed data store – Các thao tác
Các thao tác cho data store:
– Read. Ri(x)b
Client i đọc giá trị của phần tử dữ liệu x, được kết quả trả về
là b
– Write. Wi(x)a
Client i thực hiện thao tác gán giá trị x:=a
– Các thao tác không có tính chất tức thời:
• Thời điểm phát ra (khi client gửi yêu cầu)
• Thời điểm thực hiện (khi một bản sao thực hiện yêu cầu)
• Thời điểm hoàn thành (khi client nhận được kết quả trả lời)
– Sự hợp tác giữa các bản sao (replica)
Sao lặp và tính thống
9
Distributed data store – Các thao tác
Ví dụ: hai client truy nhập hai replica khác nhau của một data store
Thời điểm thực thi
thao tác
thời gian
• Read: luôn được thực thi tại chỗ
• Write: thực thi tại chỗ, sau đó phát tán sang các bản sao khác
Sao lặp và tính thống
10
Tính nhất quán
• Khi một bản sao được cập nhật, tất cả các bản sao khác phải
được cập nhật theo.
• Tùy theo thứ tự và cách thức cập nhật → không nhất quán
• Hai loại không nhất quán:
– Staleness - Ì trệ :
• bản này được cập nhật chậm chễ so với bản kia
– Thứ tự thực thi các thao thác
• Thứ tự khác nhau ở các bản sao khác nhau
Sao lặp và tính thống
11
Tính nhất quán
Dữ liệu không phân tán:
– Thứ tự thực hiện các thao tác của mỗi client được giữ
– Tính gắn kết của dữ liệu được tôn trọng
Các thao tác đọc và ghi xảy ra đồng thời có thể dẫn đến xung đột
Các thao tác xung đột
– Đọc-ghi
– Ghi-ghi
Tính nhất quán:
– Thứ tự thực thi của các thao tác xung đột có ảnh hưởng đến tính nhất quán
– Thứ tự bộ phận (partial order): thứ tự các thao tác của MỘT client
– Thứ tự đầy đủ (total order): thứ tự chung cho tất cả các thao tác xung đột
Sao lặp và tính thống
12
Tính nhất quán
Ví dụ về các thao tác xung đột và thứ tự thực thi:
Client A: x = 1; x = 0;
Client B: print (x); print (x);
Các kết quả có thể thu được tại B: --, 11, 10, 00
Thế còn 01?
Sao lặp và tính thống
13
Các mô hình nhất quán
Hai loại mô hình nhất quán:
• Data-centric (lấy dữ liệu làm trung tâm)
– Một mô hình áp dụng cho toàn bộ data-store
– Mọi client đều thấy các thao tác được sắp thứ tự cùng kiểu
• Client-centric (lấy client làm trung tâm)
– Mỗi client có thể yêu cầu một mô hình nhất quán cụ thể
– Các client khác nhau thấy các thao tác được sắp thứ tự khác
nhau.
Sao lặp và tính thống
14
Data-centric consistency models
Strong ordering – sắp thứ tự mạnh
– Với mọi client, thứ tự thực hiện các thao tác ghi là như nhau
• Ví dụ: tất cả các client đều thấy W(x)a W(x)b W(x)c
– Các mô hình Strict, Sequential, Causal, FIFO (PRAM)
Weak ordering – sắp thứ tự yếu
– Sắp thứ tự các nhóm thao tác ghi thay vì sắp theo từng thao tác
ghi
– Các chuỗi ghi tại một replica được gộp thành nhóm
– Chỉ phát tán kết quả của các nhóm thao tác ghi
• Ví dụ {W(x)a W(x)b W(x)c} == {W(x)b W(x)a W(x)c}
– Các mô hình Weak, Release, Entry
Sao lặp và tính thống
15
Strict consistency
Thao tác read đối với một phần tử dữ liệu x trả về giá trị tương ứng với kết quả
của lần write gần đây nhất đối với x
Thứ tự theo thời gian tuyệt đối của tất cả các lần truy nhập đến dữ liệu dùng
chung
Cái gì là gần đây nhất trong một hệ phân tán?
• Đòi hỏi thời gian chung toàn cục
• Đòi hỏi liên lạc tức thời atomic operation
• Bình thường đối với một máy đơn xử lý
• Bất khả thi đối với một data-store phân tán
Sao lặp và tính thống
16
Sequential consistency
Tất cả các thao tác được thực hiện theo một chuỗi nào đó
•
•
•
•
Có nhiều hơn một cách sắp thứ tự đúng
Tất cả các client đều thấy cùng một thứ tự
Trật tự thực thi chương trình tại mỗi client được đảm bảo
Không sắp thứ tự theo thời gian toàn cục
Sao lặp và tính thống
17
Client-centric consistency models
Đảm bảo về thứ tự thao tác cho một client
– Client di chuyển và truy nhập data-store tại các replica khác
nhau (có sửa dữ liệu)
– Các client không dùng chung dữ liệu
– Các client khác nhau có thể thấy các kiểu sắp thứ tự khác nhau
cho các thao tác
Nói cách khác:
– Kết quả của một thao tác tùy theo client thực hiện nó
– Kết quả còn phụ thuộc vào lịch sử của các thao tác mà client
đó thực hiện
Sao lặp và tính thống
18
Client-centric consistency models
Mô hình data-store cho client-centric consistency
• Các phần tử dữ liệu có chủ
• Không có xung đột write-write
Sao lặp và tính thống
19
Monotonic reads
Nếu một client đã thấy một giá trị của x tại thời điểm t, từ đó nó sẽ
không bao giờ nhìn thấy một phiên bản cổ hơn của x
Kí hiệu:
•xi[t]: phiên bản của x tại replica i tại thời điểm t
•WS(xi[t]): tập hợp các thao tác ghi tại replica i mà kết quả dẫn đến xi[t]
•WS(xi[t1]; xj[t2]): WS(xj[t2]) chứa các hoạt động giống như WS(xi[t1])
•R(xi[t]): thao tác đọc x cho kết quả là xi[t]
Sao lặp và tính thống
20
Monotonic writes
Một thao tác ghi lên phần tử dữ liệu x được hoàn thành trước tất
cả các thao tác ghi tiếp theo đối với x bởi cùng một client.
Tất cả các thao tác ghi của cùng một client được sắp thành chuỗi.
Sao lặp và tính thống
21
Read your writes
Thao tác đọc x thấy hiệu ứng của thao tác ghi x trước đó do cùng
một client thực hiện.
Sao lặp và tính thống
22
Write follows reads
Một thao tác ghi đối với x được thực hiện trên một bản sao của x
với giá trị đã được cập nhật theo lần đọc gần nhất của cùng
client.
Sao lặp và tính thống
23
Các giao thức nhất quán
Giao thức nhất quán: cài đặt một mô hình nhất quán
• Primary-based protocols – các giao thức ghi tại bản chính của dữ
liệu
– Remote-write protocols –ghi từ xa
– Local-write protocols – ghi tại chỗ
• Replicated-Write protocols – các giao thức ghi tại bản sao
– Active replication – chủ động sao chép
– Quorum-Based protocols – bỏ phiếu
Sao lặp và tính thống
24
Remote-Write Protocols
• Tất cả các lệnh ghi được thực hiện tại duy nhất 1 server
• Các cập nhật bị block cho đến khi đã được thực hiện tại
tất cả các bản sao
Sao lặp và tính thống
25