1. Trang chủ
  2. » Công Nghệ Thông Tin

Nhân bản và nhất quán trong hệ thống phân tán

71 2,8K 15

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 1,19 MB

Nội dung

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 1

CHƯƠNG 7:

Nhân bản và Nhất Quán

(Replication and Consistency)

Trang 2

Câ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 3

Thà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 4

1.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 5

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?

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 6

2.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 7

2.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 8

2.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 9

3.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 10

3 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 11

4 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 12

5 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 13

5.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 14

6.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 15

6.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 16

7.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 17

7.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 18

Cá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 19

Consistency Models

Trang 20

hướng client)

Trang 21

Data 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 22

Strict 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 23

Strict 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 24

Sequential 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 26

Mô 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 27

Ngoà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 28

Các hoạt động không có quan hệ nhân quả được gọi là đồng hành(concurrent).

Trang 30

Causually 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 31

Causually 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 32

FIFO 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 33

FIFO 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 34

Tổ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 35

Weak Consistency

Trang 36

Weak 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 37

Weak 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 38

Release 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 41

Entry 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 42

Client-Centric Consistency

Trang 43

 Read Your Write

 Write Follow Read

Trang 45

Eventual Consistency

Trang 46

Monotonic 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 47

Monotonic 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 48

Read 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 49

Writes 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 50

Nhữ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 51

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)

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 52

2 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 53

3 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 54

System 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 55

then 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 57

Giao 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

Ngày đăng: 25/09/2015, 13:14

TỪ KHÓA LIÊN QUAN

w