1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO cáo bài tập lớn môn hệ THỐNG PHÂN tán đề tài SAO lặp và TÍNH NHẤT QUÁN

19 707 2

Đ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 19
Dung lượng 653,21 KB

Nội dung

Client A/ Replica1: Wx1 thực hiện thao tác gán giá trị x:= 1 Client B/ Replica2: Rx đọc giá trị của phần tử dữ liệu x, được kết quả trả về là 1 Read: luôn được thực thi tại chỗ Write: th

Trang 1

TRƯỜNG ĐẠI HỌC HẢI

PHÒNG KHOA CÔNG NGHỆ THÔNG

TIN

Hệ phân tán

BÁO CÁO BÀI TẬP LỚN MÔN HỆ THỐNG PHÂN TÁN

Đề tài : SAO LẶP VÀ TÍNH NHẤT

QUÁN

Sinh viên thực hiện :

Vũ Đức Hải Nguyễn Hữu Long

Mục Lục

1 Sao lặp

Trang 2

2 Tính nhất quán

• Mô hình

• Giao thức

3 Phát tán cập nhật

4 Sắp đặt các replica

1 Sao lặp và các kiểu sao lặp

dữ liệu

Để cho các bản sao được thống nhất, ta thường phải đảm bảo rằng tất cả các thao tác có xung đột đều được thực hiện ở mọi nơi theo cũng một thứ tự

Sao lặp là tạo các bản sao dịch vụ trên nhiều máy

Bao gồm:

– Độ 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

1.1 Sao lặp dữ liệu :

Trang 3

Sao lặp server dữ liệu:

Caching tại trình duyệt Web:

Trang 4

1.2Sao lắp điều khiển

Trang 5

1.3 Sao lặp cả dữ liệu và điều khiển:

1.4 Distributed data store:

Các thao tác cho data store:

Read Ri(x)b data store

Write Wi(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)

– Ví dụ: hai client truy nhập hai replica khác nhau của một data store:

Trang 6

Client A/ Replica1: W(x)1 thực hiện thao tác gán giá trị x:= 1

Client B/ Replica2: R(x) đọc giá trị của phần tử dữ liệu x, được kết quả trả về là 1

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

Một kho dữ liệu là một tập hợp các thiết bị lưu trữ được bố trí một cách phân tán trên các máy khác nhau Mỗi tiến trình truy nhập dữ liệu trong kho tại một bản sao của kho đặt tại cùng một máy tính hoặc một máy gần đó Các thao tác ghi được phát tán tới các bản sao khác

Một mô hình nhất quán là một hợp đồng giữa một kho dữ liệu phân tán (distributed data store) và các tiến trình, mà trong đó kho dữ liệu quy định chính xác kết quả của các thao tác đọc và ghi khi có sự tương tranh xảy ra

• 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

Dữ liệu không phân tán:

Trang 7

– Thứ tự thực hiện các thao tác của mỗi client được giữ nguyên

– 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

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

Các môn hinh nhất quán:

– 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

– Mỗi client có thể yêu cầu một mô hình nhất quán cụ thể

Trang 8

– Các client khác nhau thấy các thao tác được sắp thứ

tự khác nhau

consistency models:

Một kho dữ liệu là một tập hợp các thiết bị lưu trữ được bố trí một cách phân tán trên các máy khác nhau Mỗi tiến trình truy nhập dữ liệu trong kho tại một bản sao của kho đặt tại cùng một máy tính hoặc một máy gần đó Các thao tác ghi được phát tán tới các bản sao khác

Một mô hình nhất quán là một hợp đồng giữa một kho dữ liệu phân tán (distributed data store) và các tiến trình, mà trong đó kho dữ liệu quy định chính xác kết quả của các thao tác đọc và ghi khi có sự tương tranh xảy ra Strong ordering – sắp theo 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

Kết quả của một chuỗi thực thi bất kì đều giống như thể các thao tác của tất cả các tiến trình được thực hiện theo một thứ tự tuần tự nào đó, và các thao tác của mỗi tiến trình đều theo thứ tự được quy định bởi chương trình tương ứng

Trang 9

Trong đó, W i (x)a kí hiệu thao tác ghi giá trị a vào phần tử dữ liệu x do tiến trình P i thực hiện, còn R i (x)b kí hiệu thao tác đọc giá trị phần tử dữ liệu x do tiến trình P i

thực hiện với kết quả trả về là b Giả thiết mỗi phần tử dữ

liệu đều có giá trị khởi đầu là NIL Khi không có nhầm lẫn

về việc tiến trình nào truy nhập dữ liệu, ta bỏ qua chỉ số ở

các ký hiện W và R.

Định nghĩa của mô hình nhất quán chuỗi có nghĩa rằng khi các tiến trình chạy song song trên các máy khác nhau, một chuỗi đan xen bất kì có hiệu lực của các thao tác đọc và ghi đều chấp nhận được, nhưng tất cả các tiến trình đều nhìn thấy chính chuỗi đan xen đó

Theo định nghĩa này, thời gian không có vai trò quan trọng Xét 4 tiến trình thao tác với cùng một phần tử dữ

liệu x Trong hình (a), đầu tiên tiến trình P1 thực hiện thao

tác W(x)a Sau đó (theo thời gian tuyệt đối), tiến trình P2

thực hiện thao tác ghi b vào x Tuy nhiên, cả hai tiến trình

P3 và P4 đều đọc được giá trị b trước, sau đó mới đọc giá trị

a Nói cách khác, thao tác ghi của P2 trông như là đã được

thực hiện trước thao tác ghi của P1

Ngược lại, hình (b) vi phạm mô hình nhất quán chuỗi

vì không phải tất cả các tiến trình đều nhìn thấy cùng một chuỗi đan xen của các thao tác ghi Cụ thể, đối với tiến

trình P3 thì phần tử dữ liệu được gán giá trị b trước rồi sau

đó mới nhận giá trị a, còn tiến trình P4 thì sẽ kết luận là giá

trị cuối cùng là b

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

Trang 10

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

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 Các mô hình nhất quán mô tả trong mục trước nhằm cung cấp một view nhất quán trên toàn hệ thống đối với một kho dữ liệu Giả thuyết quan trọng là các tiến trình song song có thể cùng cập nhật kho dữ liệu, và cần đảm bảo tính nhất quán

trong tình trạng tương tranh đó Ví dụ, trong trường hợp tính nhất quán của object-based entry, kho dữ liệu đảm bảo rằng khi một đối tượng được gọi, tiến trình gọi được cung cấp một bản sao của đối tượng đó với tất cả các thay đổi đã từng được thực hiện trước đó (bởi tiến trình đó cũng như các tiến trình khác)

Trong mục này, ta xem xét một lớp đặc biệt của các kho dữ liệu phân tán - các kho dữ liệu không có các cập nhật đồng thời hoặc nếu có thì chúng có thể được phân giải dễ dàng, hầu hết

Trang 11

các thao tác là đọc dữ liệu Các kho dữ liệu này cung cấp một

mô hình nhất quán rất yếu - eventual consistency

Mục tiêu của các mô hình nhất quán hướng client là làm thế nào để tránh phải nhất quán trên toàn hệ thống bằng cách chú trọng vào nhu cầu của các client cụ thể thay vì vào việc server cần gìn giữ cái gì

Mô hình nhất quán hướng client đảm bảo với mỗi client tính nhất quán của các truy nhập dữ liệu cho chính client đó thực hiện Nó không đảm bảo tính nhất quán của các truy nhập

tương tranh do các client khác nhau thực hiện

Các mô hình hướng client là dành cho các user di động Ví dụ: xét một cơ sở dữ liệu phân tán mà bạn có thể truy nhập qua máy tính xách tay Giả sử máy tính xách tay của bạn đóng vai trò của một hệ thống front-end đối với CSDL Tại địa điểm A, bạn truy nhập CSDL để thực hiện các thao tác đọc và cập nhật Tại địa điểm B, bạn tiếp tục công việc, nhưng nếu bạn không truy nhập chính server mà bạn đã dùng khi ở địa điểm A thì bạn

có thể phát hiện sự không nhất quán như:

• các cập nhật mà bạn đã thực hiện tại A chưa được chuyển tiếp tới B

• bạn có thể đọc các mục mới hơn những gì đã đọc tại A

• các cập nhật của bạn tại B có thể sẽ xung đột với những cập nhật đã làm tại A

Trong trường hợp này, điều duy nhất mà bạn thực sự cần

là những mục mà bạn đã đọc hay cập nhật tại A cũng xuất hiện tại B ở tình trạng giống hệt như bạn đã thấy khi rời A Khi đó, CSDL sẽ có vẻ nhất quán đối với bạn

Các mô hình nhất quán hướng client được mô tả bằng hệ

thống kí hiệu sau: X i [t] kí hiệu phiên bản của phần tử dữ liệu x tại bản sao dữ liệu địa phương L i vào thời điểm t Phiên bản X i [t]

là kết quả của chuỗi các thao tác ghi tại L i xảy ra kể từ khi khởi

tạo Ta kí hiệu chuỗi thao tác đó là WS(x i [t]) Nếu biết các thao tác trong chuỗi WS(x i [t1]) đã được thực hiện tại bản sao địa

phương L j cho tới một thời điểm t2 sau đó (nghĩa là là một phần

của WS(x j [t2])), ta viết WS(x i [t1] : x j [t2]) Nếu thứ tự về thời gian

là rõ ràng, có thể bỏ qua chỉ số thời gian

Trang 12

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

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.

Một kho dữ liệu được xem là cung cấp mô hình đọc-đơn điệu nếu thỏa mãn điều kiện sau:

Nếu một tiến trình đọc giá trị của một phần tử dữ liệu x, thao tác đọc bất kì sau đó do tiến trình đó thực hiện đối với x sẽ luôn

luôn trả về giá trị trùng với giá trị đó hoặc một giá trị mới hơn

Nói cách khác, mô hình đọc đơn điệu đảm bảo rằng

nếu một tiến trình đã nhìn thấy một giá trị của x tại một thời điểm t thì sau đó nó sẽ không bao giờ nhìn thấy một phiên bản cũ hơn của x.

Tất cả các thao tác ghi của cùng một client được sắp thành chuỗi

Trang 13

Ghi đơn điệu - monotonic writes

Một thao tác ghi do một thao tác thực hiện đối với x được hoàn thành trước thao tác ghi bất kì tiếp theo đối với x của chính tiến trình đó.

Nói cách khác, một thao tác ghi trên một bản sao của phần tử dữ liệu x chỉ được

thực hiện khi bản sao đó đã được cập nhật với tất cả các thao tác ghi mà client đó đã thực hiện trước đó (có thể các thao tác đó đã xảy ra tại các bản sao khác) Nếu cần, thao tác ghi mới phải đợi đến khi các thao tác ghi cũ hơn kết thúc.

Hiệu ứng của một thao tác ghi của một tiến trình đối với phần tử dữ liệu x sẽ luôn được nhìn thấy bởi thao tác đọc tiếp theo của chính tiến trình đó đối với x

Mô hình Read Your Writes có quan hệ gần gũi với mô hình đọc đơn điệu Một kho dữ liệu được xem là cung cấp tính nhất quán Read your write nếu các điều kiện sau được thỏa mãn:

Hiệu ứng của một thao tác ghi của một tiến trình đối

với phần tử dữ liệu x sẽ luôn được nhìn thấy bởi thao tác đọc tiếp theo của chính tiến trình đó đối với x.

Minh họa một kho dữ liệu cung cấp tính nhất quán

read-your-writes Trong đó, tiến trình P thực hiện thao tác ghi W(x1) rồi sau đó là thao tác đọc tại một bản sao địa phương khác read-your-writes đảm bảo rằng hiệu ứng của thao tác ghi được nhìn thấy bởi thao tác đọc sau đó Nó

thể hiện ở WS(x1 : x2), nghĩa là W(x1) là một phần của

WS(x2) Còn hình bên cạnh, W(x1) không có trong WS(x2),

nghĩa là hiệu ứng của thao tác ghi trước của tiến trình P chưa được chuyển tới L2

Trang 14

Writes follow Reads

Cuối cùng là mô hình

Một thao tác ghi của một tiến trình P đối với phần tử

dữ liệu x tiếp theo một thao tác đọc x của chính tiến trình

đó được đảm bảo là sẽ được thực hiện trên chính giá trị đã

đọc được hoặc một giá mới hơn của x.

Mô hình này đảm bảo người dùng của một dịch vụ newgroup chỉ nhìn thấy bài trả lời cho một bài viết sau khi nhìn thấy chính bài viết đầu

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

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 15

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

Trang 16

Các cập nhật (ghi) được gửi cho toàn bộ các replica

Cần multicast thứ tự đầy đủ

Hoặc sequencer/coordinator gắn số thứ tự trong chuỗi

 Dữ liệu

– Tốn băng thông,

– có lợi khi dữ liệu được cập nhật nhỏ và ít khi cập nhật

b Thao tác cập nhật

– Các replica tự thực hiện thao tác

– tốn ít băng thông

c Thông báo rằng bản dữ liệu của các replica khác đã cũ

– Có lợi khi dữ liệu lớn và được thường xuyên cập nhật

 Pull & push

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):

Trang 17

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

4 Sắp đặt các 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ì

– Đặt gần các nhóm client

– Thiết kế bằng tay hoặc tự động dựa theo các thông

số về lượng dữ liệu, người sử dụng, tỷ lệ đọc/ghi

Replica client (client-initiated replica)

– Cache ở client

– Có tính chất tạm thời

– Chủ data-store không biết về các replica này

Đặt gần client

Trang 18

permanent replicas : bản sao thường xuyên

Server -initiated replicas : server bắt đầu bản sao

Client - initiated replicas :Client bắt đầu sao

Server -initiated replication : server bắt đầu mô phỏng client -initiated replication : client bắt đầu mô phỏng

 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ì

– Đặt gần các nhóm client

– Thiết kế bằng tay hoặc tự động dựa theo các thông

số về lượng dữ liệu, người sử dụng, tỷ lệ đọc/ghi

 Replica client (client-initiated replica)

– Cache ở client

– Có tính chất tạm thời

– Chủ data-store không biết về các replica này

– Đặt gần client

Ngày đăng: 13/05/2016, 21:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w