– Tính phức tạp của điều khiển tương tranh tăng lên: Cập nhật dữ liệu tương tranh với các nhân bản khác nhau có thể dẫn đến không nhất quán trừ phi thực hiện cơ chế vận hành tương tra
Trang 1CHƯƠNG VI:
NHÂN BẢN DỮ LIỆU
1
Trang 2CHƯƠNG VI.
NHÂN BẢN DỮ LIỆU
6.1 Tính nhất quán của cơ sở dữ liệu nhân bản
6.2 Các chiến lược quản trị cập nhật
6.3 Các giao thức nhân bản
Trang 36.1 Tính nhất quán của cơ sở dữ liệu nhân bản
6.1.1 Những vấn đề chung
6.1.2 Phân loại
Trang 4• Đạt được các lợi ích bao gồm việc cải thiện hiệu năng khi tài nguyên tập trung quá tải, tăng cường độ tin cậy và tính sẵn sàng và hỗ trợ tính toán di động hoặc phân phối dữ liệu.
Trang 5NHÂN BẢN (tiếp)
Trang 6Các kịch bản nhân bản
– Cơ sở dữ liệu không nhân bản
• Lưu mỗi phân mảnh cơ sở dữ liệu ở một site đơn
• Không có phân mảnh cơ sở dữ liệu trùng nhau
– Cơ sở dữ liệu nhân bản bộ phận
• Lưu nhiều bản sao của một vài phân mảnh ở nhiều site
• Hầu hết các hệ quản trị cơ sở dữ liệu phân tán sử dụng
– Cơ sở dữ liệu nhân bản đầy đủ
• Lưu nhiều bản sao của mỗi phân mảnh cơ sở dữ liệu ở nhiều site
• Tổng phí lớn
Trang 7Nhân bản dữ liệu
• Một quan hệ hay một phân mảnh quan hệ là
nhân bản nếu nó được lưu dư thừa trên 2 hay nhiều site khác.
• Nhân bản đầy đủ của một quan hệ là trường hợp ở đó quan hệ được lưu ở mọi site.
• CSDL dư thừa đầy đủ trong đó mọi site chứa một bản sao của toàn bộ csdl
Trang 8Ưu và nhược điểm
• Ưu điểm của nhân bản
–Tính dành sẵn: Thất bại của site chứa
quan hệ r vẫn được dành sẵn do tồn tại bản sao của r.
–Song song: Các truy vấn của r có thể
được xử lý bởi một vài nút một cách song song.
–Giảm nhỏ việc truyền dữ liệu: Quan
hệ r được dành sẵn cục bộ ở mỗi site chứa nhân bản của r.
Trang 9Ưu và nhược điểm (tiếp)
• Nhược điểm của nhân bản
– Tăng giá việc cập nhật: mỗi nhân bản của
quan hệ r đều phải được cập nhật.
– Tính phức tạp của điều khiển tương
tranh tăng lên: Cập nhật dữ liệu tương
tranh với các nhân bản khác nhau có thể dẫn đến không nhất quán trừ phi thực hiện cơ
chế vận hành tương tranh đặc biệt.
• Một giải pháp: chọn một bản sao như bản sao sơ cấp và áp dụng các thao tác điều khiển tương
tranh trên bản sao sơ cấp
Trang 10Tại sao nhân bản dữ liệu ?
• Khoan dung lỗi
– Hot backup
– Tránh sự cố mang tính thảm họa
• Hiệu năng
– Cơ chế song song
– Sự tin cậy trên mạng giảm nhỏ
Trang 11Nhân bản dữ liệu: nhân bản gì?
• Tiêu chuẩn đúng đắn : Nhân bản không nhìn thấy
– Các kết quả không phân biệt được với cơ sở
dữ liệu một bản
– Tính nối tiếp một bản (1SR)
• Tính luân phiên
– Ranh giới không nhất quán
– Việc chọn bản thực/bản sao của người dùng
Trang 12Nhân bản dữ liệu: nhân bản như thế nào?
• Mục tiêu: đảm bảo tính nối tiếp hóa một bản
• Giải pháp viết tất cả(Write-all): Mọi bản sao là đồng nhất
– Việc viết thực hiện trên mọi site
– Việc đọc từ site bất kỳ
– Điều khiển tương tranh bản sao đơn
– Đảm bảo 1SR
• Điều khiển tương tranh bản sao đơn cho vận hành nối tiếp
• Tính tương đương vận hành nối tiếp ở đó mọi việc viết xảy
ra trên một giao dịch
Trang 13Các chức năng nhân bản
• Chức năng cơ bản là sao chép dữ liệu từ một cơ sở
dữ liệu đến một cơ sở dữ liệu khác(dùng nhân bản đồng bộ hoặc không đồng bộ)
– Thực hiện cơ chế biểu quyết
– Thực hiện cơ chế khởi tạo
– Dễ quản trị
Trang 14CÁC THÀNH PHẦN CƠ BẢN CỦA NHÂN BẢN
• Đối tượng nhân bản là đối tượng CSDL như quan
hệ, khung nhìn, thủ tục, các hàm có trong nhiều
server trong DDBS
• Trong môi trường nhân bản, bất kỳ cập nhật nào
làm trên 1 site được áp dụng cho mọi các bản sao trên các site khác
• Các đối tượng nhân bản được quản trị dùng các
nhóm nhân bản
• Một nhóm nhân bản là tập các đối tượng nhân bản
có quan hệ logic với nhau
• Một nhóm nhân bản có thể tồn tại trên nhiều site
nhân bản
Trang 15CÁC THÀNH PHẦN CƠ BẢN
CỦA NHÂN BẢN (tiếp)
• Môi trường nhân bản hỗ trợ hai kiểu site nhân bản: các site master và slave
• Một nhóm nhân bản có thể được liên kết với nhiều site master và slave.
• Một site có thể vừa là site master cho nhóm nhân bản này lại là slave cho nhóm nhân bản khác Tuy nhiên một site không thể vừa là site master/slave cho cùng một nhóm nhân bản
Trang 16CÁC THÀNH PHẦN CƠ BẢN
CỦA NHÂN BẢN (tiếp)
• Một site master điều khiển một nhóm nhân bản và các đối tượng trong nhóm đó
• Điều này đạt được nhờ một bản sao đầy đủ mọi đối tượng trong nhóm nhân bản và bởi việc lan truyền bất kỳ sự thay đổi nào đến bất kỳ site slave của nhóm nhân bản
• Một site slave có thể chứa toàn bộ hay một tập con các đối tượng từ một nhóm nhân bản Tuy nhiên các site slave chỉ chứa một snapshot của nhóm nhân bản
• Thông thường, một snapshot được làm tươi định kỳ để đồng
bộ với site master của nó
• Với một môi trường nhân bản nhiêu site master, mọi site đó truyền thông trực tiếp với nhau để lan truyền liên tiếp các sự thay đổi dữ liệu trong nhóm nhân bản
Trang 17Tổng quan
• Nhất quán cua csdl nhân bản
– Vấn đề: nhất quán tương hỗ và trong suốt nhân bản (Nhất quán tương hỗ và nhất quán nhân bản)
– Nhất quán tương hỗ đòi hỏi một số tiêu
chuẩn/Nhất quán tương hỗ và giao dịch đòi hỏi
khác nhau
• Kết quả có thể giống nhau hay khác nhaunhân bản 1 bản sao là đảm bảo nhất quán nhân bản
Trang 18Nối tiếp hóa phân tán
• Một dữ liệu nhân bản đầy đủ (RD) lịch biểu H qua T = {T 0, …,
T n} là thứ tự riêng phần với quan hệ thứ tự <, ở đây
– H = h(∪n
i=0 T i ) lịch biểu các chức năng h – Với mỗi T i và tất cả các thao tác p i , q i trong T i , nếu p i <i q i,
thì mọi thao tác trong h(p i) được quan hệ bởi dấu < đối với
mọi quan hệ trong h(q i)
– Với mọi r j [x A ], có ít nhất một w i [x A ] < r j [x A]
– Nếu w i [x] ∈ H và r j [x] ∈ H, thì w i [x] < r j [x] hay r j [x] < w i [x] – Nếu w i [x] < i r i [x] và h(r i [x]) = r i [x A ] thì w i [x A] ∈ h(w i [x])
• Định lý: Nếu quan hệ đọc-từ/đến xem như lịch biểu dữ liệu , thì RD là nối tiếp 1 bản
Trang 196.1 Tính nhất quán của cơ sở dữ liệu nhân bản
6.1.1 Những vấn đề chung
6.1.2 Phân loại
Trang 20– Kỹ thuật nhân bản tập trung: có bản master và các slave
– Kỹ thuật nhân bản phân tán: cập nhật ở site gốc khởi sinh cập nhật,
sau đó lan truyền cập nhật đến các site khác.
• Chiến lược: Eager replication và Lazy replication
– Lazy replication(nóng vội): lan truyền không đồng bộ các cập nhật nhân bản
đến các nút khác sau khi nhân bản các dẫn giải giao dịch
– Eager replication(trễ nải): Mọi nhân bản được giữ đồng bộ bằng cách cập
nhật mọi nhân bản trong giao dịch đơn.
Trang 22Quyền sở hữu dữ liệu
• Quyền sở hữu liên quan đến việc site nào có đặc quyền cập nhật dữ liệu.
Trang 23Quyền sở hữu Master/Slave
• Dữ liệu được nhân bản là sở hữu bởi một site
(master) và có thể được cập nhật chỉ bởi site đó.
• Sử dụng metaphor ‘publish-and-subscribe’; site
master tạo dữ liệu dành sẵn.
• Các site khác ‘thuê’ từ dữ liệu master sở hữu , nhận các bản sao chỉ đọc
• Về khả năng, mỗi site có thể là site master cho tập các dữ liệu không chồng lấn, nhưng việc đụng độ cập nhật không được xuất hiện
Trang 24Quyền sở hữu Master/Slave – Dữ liệu phân bổ
Trang 25Quyền sở hữu Master/Slave – Dữ liệu hợp nhất
Trang 26Quyền sở hữu Workflow
• Tránh các đụng độ cập nhật trong khi cung cấp mô hình sở hữu động hơn
• Cho phép quyền cập nhật các dữ liệu nhân bản để chuyển từ site này đến site khác
• Tuy nhiên tại một thời điểm bất kỳ chỉ có một site có thể cập nhật đến tập dữ liệu riêng
• Điển hình là hệ thống xử lý thứ tự, đi theo chuỗi các bước như thứ tự lối vào, đệ trình tín dụng, báo giá, chuyển hàng…
Trang 27Quyền sở hữu Workflow
Trang 28Quyền sở hữu Update-Anywhere
• Tạo môi trường ngang hàng ở đó nhiều site có quyền tương đương để câp nhật dữ liệu nhân bản
• Cho phép các site thực hiện chức năng tự trị ngay khi các site khác chưa sẵn sàng
• Các sở hữu có thể dẫn đến kịch bản đụng độ và phải sử dụng phương pháp phát hiện và phân giải đụng độ
Trang 29Quyền sở hữu Update-Anywhere
Trang 30CHƯƠNG VI.
NHÂN BẢN DỮ LIỆU
6.1 Tính nhất quán của cơ sở dữ liệu nhân bản
6.2 Các chiến lược quản trị cập nhật
6.3 Các giao thức nhân bản
30
Trang 31Các chiến lược quản trị nhân bản
• Nhân bản nóng vội: có thể đồng bộ hay trì hoãn
– Ưu điểm:
• Không mất nhất quán giao dịch
• dữ liệu chăc chắn được cập nhật
• Cập nhật tự động
– Nhược điểm là sự cố sẽ dẫn tới sự khác biệt giữa các site
• Nhân bản trễ nải: được dùng khi yêu cầu nhất quán
nhân bản không cao Việc cập nhật sẽ làm sau(làm tươi lại ở các site không quan trọng sau)
– ưu điểm: không yêu cầu thời gian đáp ứng cao
– Nhược điểm: đòi hỏi nhất quán dữ liệu như thế nào
Trang 32Các kỹ thuật nhân bản
– Kỹ thuật nhân bản tập trung: có bản master và
các slave
• Ưu điểm: có ít nhất 1 bản tin cậy
• Nhược điểm: tải tại master cao+ đó là điểm yếu
– Kỹ thuật nhân bản phân tán: cập nhật ở site gốc
khởi sinh cập nhật, sau đó lan truyền cập nhật
đến các site khác.
• Ưu điểm: thực hiện được ở nhiều vị trí
• Nhược điểm: tính phức tạp tăng lên, cần có thỏa thuận
Trang 34Tập trung nóng vội:
Master đơn, trong suốt nhân bản hạn chế
1/ Ghi được chuyển đến Master
2/Lan truyền đến các slave
3/ Thông báo chuyển giao
4/Đọc có thể ở site bất kỳ
Trang 35Tập trung nóng vội:
Master đơn, trong suốt nhân bản đầy đủ(TM)
Trang 36Tập trung nóng vội:
Trang 37Tập trung nóng vội:
Bản sao sơ cấp, trong suốt nhân bản đầy đủ
1/ Các thao tác (R hay W) cho từng hạng mục dữ liệu được dẫn đường đén hạng mục dữ liệu của master và 1 thao tác ghi được áp dụng ở master
2/ Write được lan truyền đến các nhân bản khác
3/ Cập nhật được chuyển giao
Trang 38Phân tán nóng vội
– Phân tán nóng vội:
• Thực hiện ở một site/lan truyền đến các site khac (nếu không có hạng mục dữ liệu thì lan truyền đi và cộng tác làm việc)
• Chỉ xong sau khi đã chuyển giao phải đảm bảo thứ tự thực hiện và tương tranh( do bộ quản trị
tương tranh đảm nhận)
Trang 39Phân tán nóng vội:
Master đơn, trong suốt nhân bản đầy đủ
1/ 2 thao tác Write được áp dụng trên 2 nhân bản cùng một hạng mục dữ liệu
2/ Thao tác Write lan truyền độc lập đến các nhân bản khác
3/ Cập nhật được chuyển giao (chỉ cho giao dịch 1)
Trang 40Tập trung trễ nải:
– có thể dữ liệu “ôi” do nó không được cập nhật khi chuyển giao ở site master
Trang 41Tập trung trễ nải:
Master đơn, trong suốt nhân bản hạn chế
1/ Việc cập nhật được áp dụng trên nhân bản cục bộ
2/ Giao dịch được chuyển giao trên master
3/ Cập nhật được lan truyền đến các nhân bản khác để làm tươi giao dịch 4/ Giao dịch 2 đoc từ bản sao cục bộ
Trang 421/ Lịch biểu 1SR tổng thể không đảm bảo
2/ giao dịch có thể không nhìn thấy việc cập nhật của nó
1/ Lịch biểu 1SR tổng thể không đảm bảo
M giữ bản sao master của x và y; B giữ bản sao slave Xét 2 giao dịch: T1 ở site B, T2 ở site M:
T1: Read(x) T2: Write(x)
Write(y) Write(y)
Commit Commit
Trang 43Hoạt động của các giao dịch
Trang 44Phân tán trễ nải
1/ 2 cập nhật áp dụng trên 2 nhân bản cục bộ
2/ Chuyển giao giao dịch được cập nhật
3/ Các cập nhật được lan truyền độc lập đến các nhân bản
Trang 45CHƯƠNG VI.
NHÂN BẢN DỮ LIỆU
6.1 Tính nhất quán của cơ sở dữ liệu nhân bản
6.2 Các chiến lược quản trị cập nhật
6.3 Các giao thức nhân bản
45
Trang 46Mô hình và kiến trúc hệ thống
1 Xem xét tập các client CSDL là tập S = {s1,s2,….,sn}
2 CSDL được nhân bản đầy đủ trên mọi site si
3 Client kết nối đến 1 trong các server để vận hành giao dịch
4 Trong trường hợp giao dịch tương tác (giao dịch đệ trình thao tác nhờ nsd), sau khi đệ trình một thao tác, client chờ một trả lời từ server, sau đó mới gửi thao tác kế tiêp Việc gửi giao dịch như một thông điệp đơn được gọi là yêu cầu dịch vụ- gọi thủ tục được lưu trên server csdl
5 Ngay sau khi giao dịch hoàn tất, server si gửi kết quả giao dịch đến
client và kết nối giữa client và si bị đóng.
6 Nếu giao dịch là thao tác được đệ trình, kết quả được chuyển giao hay thoát
7 Nếu si sự cố trong khi vận hành giao dịch, giao dịch sẽ thoat.
8 Trong trường hợp này, chính client cố gắng vận hành, hoặc bằng cách kết nối với server sj csdl khác hoặc đến chính server si sau đó( sau khi si phục hồi)
Trang 47CÁC YÊU CẦU
• Tiêu chuẩn đúng đắn:
Nối tiếp hóa 1 bản : Đảm bảo rằng bất kỳ vận hành xen kẽ
nào của các giao dịch tương đương với vận hành nối tiếp các giao dịch này trên một bản sao đơn của csdl
• Quảng bá tin cậy
Đảm bảo rằng thông điệp được gửi bằng một server csdl đúng, hay trao đổi bằng một server csdl đúng được trao đổi đến mọi server csdl đúng
• Quảng bá tin cậy đồng nhất
Đảm bảo rằng 1 thông điệp được trao đổi bởi server bất kỳ ( có thể đúng hay sai sau khi trao đổi thông điệp) cuối cùng được trao đổi đến mọi server csdl đúng
47
Trang 48Mô hình cho nhân bản dữ liệu
• Bộ quản trị giao dịch và dữ liệu ở mỗi site
– Quản trị dữ liệu : Điều khiển tương tranh cục bộ
để đảm bảo tính nối tiếp cục bộ.
– Quản trị giao dịch: Các hoạt động phân tán
• Trả về đọc/ghi thành đọc/ghi nhiều site
• Thực hiện giao thức chuyển giao
• Thư mục để nhận các site cho mỗi bản sao.
Trang 49• Ghi được giữ trễ
– Ghi không cục bộ được giữ trễ cho tới khi chuyển giao – tối thiểu hóa lưu lượng
Trang 50Kết thúc giao dịch
Bầu cử : 2 khả năng
– Dựa trên 2PC
– Dựa trên một thông điệp xác nhận được server ủy nhiêm hay
bản sao sơ cấp gửi để thông báo giao dịch được chuyển giao hay phải thoát
Thông điệp xác nhận chỉ cần dùng khi server được ủy nhiệm (hay
bản sao sơ cấp) giao dịch có thể quyết định đơn phương với kết quả của giao dịch
Không bầu cử
– Đòi hỏi nhiều yêu cầu xác định hơn các kỹ thuật bầu cử
– Mỗi server phải đảm bảo sự nối tiếp như nhau một cách độc
lập ; được thực hiện dùng chính sách thứ tự tổng thể
Trang 51Thất bại ghi tất cả
Trang 52Các giải pháp
• Kiểm tra tính sẵn sàng khi chuyển giao
– Kiểm tra liệu có thao tác ghi nào thất bại lúc này hay không.– Kiểm tra mọi site đọc hay ghi có sẵn sàng hay không
– Buộc nối tiếp với các thất bại site
Không làm việc với thất bại truyền thông!
Trang 53Các thất bại truyền thông
• Bản sao dành sẵn thất bại trong phân chia mạng
– Mỗi site hoàn tất nhờ kiểm tra hợp lệ
• Ghi mọi khối
• Ghi n-k, đọc k+1
– Phát sinh cách tiếp cận “ghi tất cả”
– Điều khiển để tối thiểu hóa thất bại : min(n-k, k+1)
– Cân nhắc hiệu năng đọc và ghi
– ảnh hưởng phân chia dựa trên kích thước phân chia:
• <k+1: phần nhỏ hoạt động như thể mọi site thất bại, phần lớn thì
tiếp tục.
• Nếu khác đi, toàn bộ hệ thống trở nên chỉ đọc
Trang 54Các cách tiếp cận khác:
Không buộc phải nối tiếp hóa!
• Bản sao sơ cấp (Master)
– Các thao tác ghi phải cập nhật bản sao sơ cấp
– Các thao tác đọc có thể nhất quán hoặc không nhất quán
• Giới hạn không nhất quán
– Thời gian giới hạn việc cập nhật các bản sao
– Ràng buộc giá trị: Ghi tất cả nếu sự khác nhau quá lớn
• Dồn tính nhất quán lên ứng dụng
– Phức tạp thêm
– Hiệu năng tốt hơn
Trang 55– Tổng phí truyền thông lớn: n nhân bản; m thông điệp; tốc độ k giao dịch/sm*n*k (nếu multicast m*k)=> giải pháp truyền thông nhóm cùng xử lý giao dịch không truyền thống Có 2 khả năng:
dùng 2PC không chuyển giao và trì hoãn lan
truyền (không thực hiện đồng bộ)
– Sự cố với nhân bản trễ nải/ Sự cố với nhân bản nóng vội
Trang 56KẾT LUẬN
• Những thách thức
Đưa ra nhân bản không
ảnh hưởng đến hiệu năng
quá nhiều
• Kỹ thuật được dùng
hiện tại
– Nhân bản trễ nải
• Ưu điểm: Hiệu quả
• Nhược điểm: Thỏa hiệp tính nhất
quán
– Nhân bản nóng vội
• Ưu điểm: Đảm bảo tính nhất quán
• Nhược điểm: Hầu hết các giao
thức hiện có đều có một giá
Nhân bản trễ nải được dùng phổ biến nhưng không đảm bảo đủ tính nhất quán
Tính nhất quán có thể được nhờ nhân bản nóng vội, nhưng hiên nay vẫn đang gặp khó khăn về thiết kế giao thức