Tài liệu bài giảng chi tiết môn Hệ thống phân tán của Công nghệ thông tin, mô tả chi tiết các mô hình phân tán được sử dụng trong hệ thống. 1.Thế nào là scale technique? 2.Tạo bản sao của thành phần nào? Các lý do phải tạo bản sao? 3.Trong hệ thống không phân tán có tạo bản sao hay không? nếu có cho ví dụ? 4.Việc tạo và sử dụng bản sao có khó khăn gì? 5. Nhất quán là gì? Tại sao phải nhất quán? 6. Khó khăn của việc nhất quán? Giải pháp là gì? 7. Tại sao phải đưa ra mô hình nhất quán? Cơ sở nào để đưa ra các mô hình nhất quán? 8.Giải thích các mô hình nhất quán tiêu biểu và tính mạnh yếu? 9. Những công việc nào phải thực hiện khi cài đặt một hệ thống bản sao và vai trò của giao thức phân tán? 10. Vai trò của giao thức nhất quán? Cài đặt và hoạt động?
Trang 1CHƯƠNG 7:
Nhân bản và Nhất Quán
(Replication and Consistency)
Trang 2Câu hỏi:
1.Thế nào là scale technique?
2.Tạo bản sao của thành phần nào? Các lý do phải tạo bản sao?
3.Trong hệ thống không phân tán có tạo bản sao hay không? nếu có cho ví dụ?
4.Việc tạo và sử dụng bản sao có khó khăn gì?
5 Nhất quán là gì? Tại sao phải nhất quán?
6 Khó khăn của việc nhất quán? Giải pháp là gì?
7 Tại sao phải đưa ra mô hình nhất quán? Cơ sở nào để đưa ra các mô hình nhất quán?8.Giải thích các mô hình nhất quán tiêu biểu và tính mạnh yếu?
9 Những công việc nào phải thực hiện khi cài đặt một hệ thống bản sao và vai trò của giao thức phân tán?
10 Vai trò của giao thức nhất quán? Cài đặt và hoạt động?
Trang 3Thành viên:
o Lê Văn Ninh
o Nguyễn Hữu Phước
o Nguyễn Lê Thanh
o Phạm Thành
o Lê Đức Thịnh
o Nguyễn Quốc Thành
Trang 41.Thế nào là scale technique?
o Scale technique là các kĩ thuật liên quan đến tính mở rộng
(scalabitiy) của hệ thống, cụ thể là các kĩ thuật sẽ giúp hệ thống được mở rộng
o Việc mở rộng trong hệ thống phân tán có thể hiểu là việc
gia tăng số lượng các thành phần để tăng hiệu suất xử lí.
Trang 52.Tạo bản sao của thành phần nào? Các lý do phải tạo bản sao?
o Trong hệ thống phân tán, ta cần tạo bản sao của dữ liệu
(data) và server
o Có hai lí do để tạo bạn sao:
Tăng độ tin cậy (reliability).
Tăng hiệu suất (performance).
Trang 62.Tạo bản sao tăng độ tin cậy:
Ví dụ 1: Nhân bản một tập tin hệ thống sẽ tăng độ tin cậy của hệ
thống vì khi một bản sao bị hỏng bằng cách đơn giản là chuyển sang dùng một trong những bản sao khác
Ví dụ 2: Nhân bản server sẽ giúp tăng độ tin cậy của hệ thống Khi
một server bị tấn công (DOS, DDOS) hoặc hư hại gì đó, ta có thể
chuyển sang server để dùng, ngoài ra, ta có thể sử dụng các bản sao của server để sửa chữa các server bị hư hại.
Trang 72.Tạo bản sao tăng hiệu suất (1/2)
Ví dụ 1: Bằng cách đặt một bản sao của dữ liệu “gần gũi” với các quá
trình sử dụng chúng, thời gian truy cập dữ liệu của các tiến trình sẽ giảm.
Trang 82.Tạo bản sao tăng hiệu suất (2/2)
Ví dụ 2: Nhân bản server để tăng hiệu suất Nguyên tắc cơ bản để
tăng hiệu suất làm việc là tăng số tiến trình xử lí song song Dựa vào
đó, trong hệ thống phân tán, ta có thể được cải thiện hiểu suất bằng cách tạo ra bản sao của máy và sau đó phân chia công việc cho từng bản sao đó để làm
Chẳng hạn, Google đặt nhiều server tại nhiều quốc gia, giúp việc xử lí trên google search, youtube… nhanh hơn hẳn các dịch vụ của các
công ty khác Đảm bảo trong suốt về vị trí của hệ thống phân tán.
Trang 93.Trong hệ thống không phân tán có tạo bản sao hay không? (1/2)
Ví dụ 1: Trong kiến trúc máy tính ta có bộ nhớ cache Bộ nhớ là một
thành phần lưu trữ các dữ liệu có thể được yêu cầu trong tương lai nhờ đó mà giảm thiểu thời gian truy xuất dữ liệu của các tiến trình Các dữ liệu được lưu trữ trong bộ nhớ cache có thể là kết quả của
một tính toán trước đó, hoặc các bản sao của dữ liệu được lưu trữ ở nơi khác
Trang 103 Trong hệ thống không phân tán có tạo bản sao hay không? (2/2)
Trong mạng máy tính, ta có Web cache (hay còn gọi proxy server) sẽ lưu trữ các trang thường hay truy cập, nhờ đó mà giảm tải cho server
Trang 114 Việc tạo và sử dụng bản sao có khó khăn gì?
o Việc sử dụng bạn sao sẽ đặt ra vấn đề về tính nhất quán của dữ
liệu: phải cập nhật lại tất cả các bản sao khi có một bản sao thay đổi.
Trang 125 Nhất quán là gì ?
Nhất quán là đồng bộ các bản sao sao cho hệ thống luôn
được đồng bộ về dữ liệu:khi một bản sao được cập nhật thì các bản sao của nó ở các máy trong hệ phân tán củng được cập nhật theo.
Trang 135.Tại sao phải nhất quán?
o Việc sử dụng bản sao gây ra các hạn chế đó là tính nhất quán dữ liệu
của hệ thống bị suy giảm
Do sử dụng bản sao nên có thể xảy ra trường hợp có sự thay đổi trên một dữ liệu
mà không cập nhật trên các bản sao của nó
Điều này gây ra sai sót trong hệ thống
Trang 146.Khó khăn của việc nhất quán.
Khó khăn của việc nhất quán: Các bản sao được phân tán
trên diện rộng vấn đề đặt ra là làm sao xác định được bản sao ở đâu đang được cập nhật một cách nhanh chóng nhất Nếu các bản sao ở xa thì rõ ràng là việc cập nhật 1 bản
được update sẽ gây ra tốn đường truyền trong mạng (đồng
bộ toàn bộ các bản sao) mà việc thực hiện nhân bản này
nhằm tăng hiệu năng của hệ thống nên nếu đồng bộ không hợp lý thì sẽ làm giảm hiệu năng của toàn hệ thống.
Trang 156.Giải pháp của việc nhất quán.
Giải pháp: chỉ áp dụng với các hệ phân tán đọc và ít cập nhật
Các bản cập nhật sẽ được cập nhật tuy nhiên tiến trình của
người dùng sẽ truy cập được vào bản cập nhật này sau 1 thời gian nhất định, để đảm bảo không có vấn đề lỗi khi 1 tiến trình đang ghi trong khi 1 tiến trình khác đang đọc.
Trang 167.Tại sao phải đưa ra mô hình nhất quán?
o Trong một hệ thống phân tán kho dữ liệu có thể được đọc hay ghi bởi
bất cứ một tiến trình nào Tuy nhiên dữ liệu ghi vào một bản sao cục bộ phải đảm bảo củng được truyền tới tất cả các bản sao ở xa vì thế nên
các mô hình nhất quán ra đời
o Một mô hình nhất quán có thể được coi như một bản hợp đồng giữa một
kho dữ liệu của hệ phân tán với các tiến trình của nó Nếu các tiến trình đồng ý với các điều khoản của hợp đồng thì kho dữ liệu sẽ hoạt động
đúng như như tiến trình mong muốn.
Trang 177.Cơ sở đưa ra mô hình nhất quán
o Dựa trên đối tượng cần đảm bảo tính thống nhất:
Data cebntric consisitency models.
Client Centric consisitency models.
o Dựa theo tính mạnh yếu của sự nhất quán:
Strong consistency.
Weak Consistency.
Trang 18Các mô hình nhất quán tiêu biểu
o Dựa trên đối tượng cần đảm bảo tính thống nhất:
Data cebntric consisitency models.
Client Centric consisitency models.
o Dựa theo tính mạnh yếu của sự nhất quán:
Strong consistency.
Weak Consistency.
Trang 19Consistency Models
Trang 20hướng client)
Trang 21Data centric consistency models
o Strong consistency models
Strict consistency - mô hình nhất quán chặt chẽ
Linearizability – mô hình nhất quán tuyến tính
Sequential consistency – mô hình nhất quán tuần tự
Causal consistency – mô hình nhất quán nhân quả
FIFO consistency – mô hình nhất quán FIFO
o Weak consistency models
General weak consistency – mô hình nhất quán yếu chung
Release consistency – mô hình nhất quán yếu đi ra
Entry consistency - mô hình nhất quán yếu đi vào
Trang 22Strict Consistency
Mô hình nhất quán chặt chẽ cần thỏa mãn các điều kiện:
Thao tác đọc bất kì trên mục dữ liệu x đều trả về một giá trị tương ứng với kết quả của thao tác ghi gần nhất trên x đó Sử dụng khái niệm thời gian tuyệt đối, thời gian tuyệt đối này là tổng thể cho cả hệ thống để xác định đúng khái niệm “gần nhất”.
P1
R(x)a
W(x)a
đều được khỏi động là NILW(x)a: giá trị a được ghi vào xR(x)a: đọc x trả về giá trị a
Hành vi này là đúng trong strict consistency
R(x)NIL
Hành vi này là sai trong strict consistency
Trang 23Strict Consistency
Strict consistency là những gì chúng ta có trong trường hợp tuần tự thông thường, trong đó chương trình của chúng ta không cản trở bất kì của chương trình nào khác
Khi datastore là strictly consistent, tất cả các hoạt động ghi là có thể nhìn thấy ngay đối với tất cả các
process và trật tự theo thứ tự thời gian toàn cục tuyệt đối được duy trì
Nếu một data item bị thay đổi, tất cả các hoạt động đọc được thực hiện trên dữ liệu đó đều trả về một giá trị mới, bất chấp hoạt động đọc diễn ra sớm như thế nào khi thay đổi, và bất chấp process nào đang đọc cùng vị trí của chúng.
Nếu một hoạt động đọc được thực hiện, nó lấy giá trị hiện hành, bất kể hoạt động ghi kế tiếp diễn ra nhanh như thế nào.
Điều này không thể cài đặt trong distributed system
⇒Ưu điểm
⇒Nhược điểm
Trang 24Sequential Consistency
Mô hình nhất quán tuần tự Sequential Consistency:
là một mô hình yếu hơn strict consistency Một data store được cho là mô hình nhất quán tuần tự khi nó thỏa mãn điều kiện sau: Kết quả của bất kỳ sự thực thi nào đều giống như kết quả thực thi hoạt động đọc và ghi bởi tất cả các process trên dât store theo tuần tự có thứ tự nào đó và các hoạt động của mỗi process xuất hiện trong tuần tự này theo trật tự được chỉ ra bởi chương trình.
Khi các process chạy đồng hành trên các máy tính khác nhau, bất kì hoạt động đọc ghi xen lẫn hợp lệ đều là hành vi có thể chấp nhận.
Tất cả các process đều thấy sự thực thi xen lẫn giống nhau.
Không điều nào đề cập đến thời gian
Một process thấy các hoạt động ghi từ tất cả các process nhưng chỉ thấy hoạt động đọc của mình
Trang 25⇒Ưu điểm
⇒Nhược điểm
R(x)a R(x)b
Đây là Sequential Consistency
Đây không là Sequential Consistency
Trang 26Mô hình nhất quán tuyến tính Linearizability
Một mô hình nhất quán yếu hơn strict consistency nhưng mạnh hơn sequential consistency
Các hoạt động được giả sử nhận một timestamp sử dụng một đồng hồ toàn cục với độ chính xác hữu hạn.
Trang 27Ngoài ta, nếu tsOP(x) < tsOP2(y) thì operation OP1(x) sẽ đứng trước OP2(y) trong tuần
tự này
Một lineariable data store cũng là sequentially consistent
Linearizability lấy thứ tự tùy vào một tập các synchronized clock
Trang 28Các hoạt động không có quan hệ nhân quả được gọi là đồng hành(concurrent).
Trang 30Causually Consistency
W(x)a
W(x)b
R(x)b R(x)a R(x)a R(x)b
P2
P1
P3
P4
Hoạt động ghi W(x)a và W(x)b, có quan hệ nhân quả vì b
có thể là một kết quả tính toán liên quan đến R(x)a
Một data store là causually consistent
Trang 31Causually Consistency
W(x)a
R(x)a W(x)b
R(x)c R(x)b R(x)b R(x)c
P2
P1
P3
P4
Hoạt động ghi W(x)b và W(x)c, có quan hệ nhân quả vì c có thể
là một kết quả tính toán liên quan đến R(x)b
Một data store không phải causally consistentMột data store là causually consistent
W(x)c
R(x)a R(x)a
Trang 32FIFO Consistency
Đây là mô hình yếu nhất trong strong consistency models vì mô hình này bỏ qua giới hạn về trật tự của bất kì thao tác đồng thời nào.
Một data store được gọi là FIFO consistent khi thỏa mãn điều kiện sau:
Các hoạt động ghi được thực hiện bởi tất cả các process khác theo trật tự mà nó tạo ra, nhưng các hoạt động ghi từ các process khác có thể thấy theo trật tự khác bởi các process khác nhau
Trang 33FIFO Consistency
W(x)b R(x)a
Đây là mô hình nhất quán FIFO
⇒Ưu điểm
⇒Nhược điểm
Trang 34Tổng kết về Strong consistency models
Về tính mạnh yếu trong strong consistency models:
Strict consistency > Linearizability >
Sequential consistency > Causal consistency >
> FIFO consistency
Vậy khi mô hình nhất quán càng yếu thì càng dễ xây dựng giải pháp triển khai.
Trang 35Weak Consistency
Trang 36Weak Consistency
o Mô hình lấy dữ liệu làm trung tâm.
o Sử dụng biến synchronize
o Tập trung vào một nhóm.
Trang 37Weak Consistency
Gồm 3 tính chất:
• Việc truy cập vào biến đồng bộ là một nhất quán tuần tự
• Không toán tử nào trên biến đồng bộ được thực hiện cho tới khi việc ghi được hoàn thành
• Không toán tử đọc và ghi nào được thực hiện cho đến khi tất cả toán tử trên biến đồng bộ được hoàn thành
P1: W(x)a W(x)b S
Trang 38Release Consistency
o Mô hình lấy dữ liệu làm trung tâm.
o Sử dụng lệnh Acquire và Release.
o Có thể sử dụng Barrier để thay thế miền găng.
o Thao tác trên dữ liệu protected.
Trang 39• Truy cập vào biến synchronization là nhất quán FIFO.
P1: Acq(L) W(x)a W(x)b Rel(L)
Trang 41Entry Consistency
Gồm 3 tính chất:
• Một thao tác acquire truy cập vào biến đồng bộ không được phép thực hiện cho đến khi tất cả các cập nhật lên mục dữ liệu được thực hiện trong tiến trình
• Trước khi một truy cập trong chế độ dành riêng tới một biến động bộ hóa thực
hiện thì không tiến trình nào được giữ biến đồng bộ hóa
• Sau khi một truy cập trong chế độ dành riêng tới một biến đồng bộ được thực hiện thì bất kì truy cập nào trong chế độ không dành riêng được thực hiện cho đến khi truy cập trước được thực hiện xong
P1:Acq(Lx) W(x)a Acq(Ly) W(y)b Rel(Lx) Rel(Ly)
Trang 42Client-Centric Consistency
Trang 43 Read Your Write
Write Follow Read
Trang 45Eventual Consistency
Trang 46Monotonic Read
Nếu một tiến trình a đọc giá trị của x, lệnh đọc thành công luôn trả về cùng giá trị hoặc giá trị gần nhất
L1: WS(a) R(a) L2: WS(a;b) R(b) L1: WS(a) R(a)
L2: WS(b) R(b)
Trang 47Monotonic Write
Một thao tác ghi lên 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 1 tiến trình
L1: WS(a) L2: WS(a) W(b) L1: WS(a)
L2: W(b)
Trang 48Read your writes
Thao tác ghi trên dữ liệu x sẽ luôn luôn được thấy bởi thao tác ghi ở cùng một tiến trình
L1: WS(a) L2: WS(a;b) R(b) L1: WS(a)
L2: WS(b) R(b)
Trang 49Writes Follow Reads
Một thao tác ghi trên dữ liệu 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 trong cùng 1 tiến trình
L1: WS(a) R(b) L2: WS(a;b) W(b) L1: WS(a) R(a)
L2: WS(b) W(b)
Trang 50Những công việc cần thực hiện khi cài đặt một hệ
thống bản sao.
Khi muốn cài đặt một hệ thống bản sao ta cần xác định:
1 Replica Placement: bố trí các bản sao.
2 Update Propagation: tuyên truyền cập nhật bảo sao.
3 Epidamic Protocols: Giao thức lan truyền.
Trang 51Những công việc cần thực hiện khi cài đặt một hệ
thống bản sao (tt)
1 Replica Placement (bố trí các bản sao):
- Xem xét các object
- Nhận biết các process khác nhau: Một process có khả năng host một bản sao của một object:
Permanent replicas: bản đầu tiên của
sao của DataStore được lưu trữ trên
các máy Client (Caches)
Trang 522 Update Propagation (tuyên truyền cập nhật):
o Các chủ đề thiết kế quan trọng trong lan truyền cập nhật.
Không có giải pháp đơn lẽ nào tốt nhất, tùy thuộc rất lớn vào băng thông khả dụng
và tỉ lệ đọc ghi tại các bản sao.
o Publishing updates: server-initiated approach, cập nhật được lan truyền bất kể đích
có yêu cầu hay không.
o Pulling updates: client-initiated approach, client yêu cầu được cập nhật.
Có thể linh động chuyển giữa pulling và publishing dùng leases: một hợp đồng trong
đó server cam kết đẩy các cập nhật cho client cho đến khi hợp đồng hết hạn.
Những công việc cần thực hiện khi cài đặt một hệ
thống bản sao.(tt)
Trang 533 Epidemic Protocols (Giao thức lan truyền):
Nguyên lý
+ Ý tưởng căn bản: Giả sử không có xung đột ghi(write-write cocfflict)
- Các hoạt động cập nhật được bắt đầu thực hiện tại một hay chỉ vài bản sao.
- Một bản sao chuyển trạng thái cập nhật của nó đến một số giới hạn các láng giềng.
- Sự lan truyền cập nhật là không tức thời.
- Mỗi cập nhật đều đến với mọi bản sao.
+ Mô hình lan truyền nhanh:
- Anti-entropy : mỗi bản sao thường xuyên chọn bản sao khác ngẫu nhiên trao đổi trạng thái cho đến khi đồng nhất trạng thái sau đó.
- Gossing : Một bản sao vừa đc cập nhật đã thông báo cho các bản sao khác về cập nhật của nó.
Những công việc cần thực hiện khi cài đặt một hệ thống bản sao (tt)
Trang 54System Model
+ Xem xét tập các server, mỗi server giữ một số các object.
+ Mỗi Object O có 1 primary server đó là nơi mà cập nhật cho O luôn được khởi
phát
+ Một cập nhật của Object O tại server S luôn được gắn tem thời gian; giá trị của O tại S được kí hiệu là VAL(O,S);
+ T(O,S) ký hiệu timestamp của object O tại S.
Những công việc cần thực hiện khi cài đặt một hệ
thống bản sao (tt)
Trang 55then VAL(O,S) <- VAL(O,S*)
+ Push-Pull: S và S* trao đổi các cấp nhật của chúng bằng cách đẩy và kéo các giá trị.
Những công việc cần thực hiện khi cài đặt một hệ thống bản sao.(tt)
Trang 56- Vấn đề kế: Khi nào xóa một death certificate (nó ko được tồn tại mãi mãi)
Những công việc cần thực hiện khi cài đặt một hệ thống bản sao.
Trang 57Giao thức phân tán là gì ?
Giao thức phân tán là một tập hợp các quy tắc chuẩn cho
việc kết nối các máy tính với nhau thành một hệ thống
phân tán Đảm bảo các máy tính độc lập giao tiếp với
người dùng như một hệ thống nhất và toàn vẹn dữ liệu.
Giao Thức Phân Tán