Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1III Sao lặp và tính nhất quán
Trang 2– 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)
Trang 3Sao lặp dữ liệu
Trang 4Sao lặp điều khiển
Trang 5Sao lặp cả dữ liệu và điều khiển
Trang 7Distributed data store
Kho dữ liệu lưu trữ các phần tử dữ liệu
Nhìn từ phía
client
Trang 8Distributed 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
Trang 9Distributed 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:
– Sự hợp tác giữa các bản sao (replica)
Trang 10Distributed 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
• 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
Thời điểm thực thi thao tác
thời gian
Trang 11Tí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
Trang 12Tí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
Trang 13Tí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 ?
Trang 14Cá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.
Trang 15Data-centric consistency models
Strong ordering – sắp thứ tự mạnh
• Ví dụ: tất cả các client đều thấy W(x)a W(x)b W(x)c
Weak ordering – sắp thứ tự yếu
ghi
• Ví dụ {W(x)a W(x)b W(x)c} == {W(x)b W(x)a W(x)c}
Trang 16Strict 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
Trang 17Sequential consistency
Tất cả các thao tác được thực hiện theo một chuỗi nào đó
Trang 18Client-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
Trang 19Client-centric consistency models
Mô hình data-store cho client-centric consistency
Trang 20Monotonic 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])
Trang 21Monotonic 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.
Trang 22Read 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.
Trang 23Write 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.
Trang 24Cá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
Trang 25Remote-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
Trang 26Local-Write Protocols
Primary được chuyển chuyển đến replica mà client tại đó muốn thực hiện cập nhật.
Trang 283 Thông báo rằng bản dữ liệu của các replica khác đã cũ
Trang 29Push & pull
Pull (client-based):
•Các cập nhật được lan truyền chỉ khi
được yêu cầu
•Thích hợp: Ghi nhiều đọc ít
•Có thể có polling delay (replica phải
kiểm tra xem đâu là phiên bản mới nhất
trước khi thực hiện thao tác đọc)
Push (server-based):
•Các cập nhật được lan truyền ngay
•Thích hợp: Ghi ít đọc nhiều; yêu cầu
cao về mức độ tươi mới của dữ liệu đọc
•Nơi ghi phải biết về tất cả các replica
→ tính mở rộng được
Trang 30Hệ thống replica
Trang 31Hệ thống replica
Replica cố định:
– Tập các replica khởi đầu
– Do chủ của data-store tạo và bảo trì
– Cho phép ghi
Replica server (server-initiated replica)
– Tăng hiệu năng
– Không do chủ data-store bảo trì