Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
16,69 MB
Nội dung
Tổng quan giao tác phân tán Cơ sở liệu phân tán - nhóm Thành viên nhóm Nguyễn Thị Thanh Nguyễn Văn Hiếu Bùi Minh Công Phạm Minh Đức B18DCCN606 B18DCCN221 B18DCCN056 B18DCCN179 Nguyễn Tuấn Dũng Đỗ Thanh Long Trịnh Đình Nghĩa Thạch Ngọc Minh B18DCCN100 B18DCCN342 B18DCCN452 B18DCCN410 Phùng Ngọc Tuấn Anh Nguyễn Thị Ngọc Huyền B18DCCN035 B18DCCN276 1.TỔNG QUAN Trong chương trước, thảo luận cách xử lý tối ưu hóa truy vấn Tuy nhiên, tình xảy ta chưa xét đến VD: truy vấn cập nhật liệu Hệ thống phải ngừng hoạt động cố thực truy vấn ·TRONG CHƯƠNG TRƯỚC, CHÚNG TA ĐÃ THẢO LUẬN VỀ CÁCH XỬ LÝ VÀ TỐI ƯU HÓA CÁC TRUY VẤN TUY NHIÊN, CÁC TÌNH HUỐNG XẢY RA THÌ TA CHƯA XÉT ĐẾN => Do , cần có tính tốn đánh tin cậy thực thi quán Vì thế, khái niệm giao tác (transaction) sử dụng CSDL đơn vị cho kiện PHÂN BIỆT CÁC ĐỊNH NGHĨA 2.1 PHÂN BIỆT GIỮA NHẤT QUÁN CƠ SỞ DỮ LIỆU (DATABASE CONSISTENCY) VÀ NHẤT QUÁN GIAO TÁC ( TRANSACTION CONSISTENCY) - Nhất quán sở liệu: Là trạng thái sở liệu tuân theo tất ràng buộc toàn vẹn (nhất quán) định nghĩa CSDL tạm thời ko quán thực giao tác, phải trở trạng thái quán sau kết thúc quan hệ giao tác C - Nhất quán giao tác: hành động giao tác đồng thời Khi xét đến CSDL có nhân nảy sinh tính chất phức tạp: CSDL quán có yêu cầu người dùng đồng thời truy xuất đến CSDL CSDL nhân trạng thái quán lẫn (mutually consistent state) all mục liệu có giá trị giống ( one copy equivalence) 2.2 Độ tin cậy hay khả tin ( reliability) quản lý giao tác (transaction management) - Độ tin cậy khả tự thích ứng (resiliency) hệ thống loại cố khả tự khôi phục từ cố Hệ thống khả tín là: hệ thống tự thích ứng với cố hệ thống tiếp tục cung cấp dịch vụ có cố Hệ quản trị CSDL khả hồi phục: chuyển sang trạng thái quán sau gặp cố ·Quản lý giao tác (transaction management) giải tốn trì đc CSDL tình trạng qn có nhiều truy xuất đồng thời có cố GIAO TÁC VD2: Chúng ta xét hệ thống quản lý vé máy bay sử dụng định nghĩa quan hệ sau FLIGHT(FNO,DATE,SRC,DEST,STSOLD,CAP) CUST(CNAME, ADDR, BAL) FC(FNO,DATE,CNAME,SPECIAL) Định nghĩa: FLIGHT: mã số chuyến bay, ngày tháng, src, dest, số ghế bán chuyến đó, số lượng khách chở chuyến CUST: tên khách hang, địa chỉ, số dư SPECIAL: yêu cầu đặc biệt khách Ta đơn giản hóa ứng dụng trên, giao tác thực cài đặt sau.: Begin_transaction Reservation begin input (flight_no, date, customer_name) EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD + WHERE FNO = flight_no AND DATE = date; EXEC SQL INSERT INTO FC(FNO,DATE,CNAME,SPECIAL) VALUES (flight_no, date, customer_name, null); Output (“reservation completed”) end 3.1 Kết thúc giao tác ·Một giao thức phải kết thúc xảy cố ·Giao tác hoàn tất tác vụ gọi giao tác có ủy thác (commit) Giao tác khơng hồn tất tác vụ giao tác bị hủy bỏ (abort) ·Ngồi ra, hệ quản trị CSDL hủy bỏ giao tác, chẳng hạn bị khóa chết ( deadlock) ·Q trình rollback q trình giác tác bị hủy bỏ, trình thực ngừng hành động thực phải “undo”, đưa CSDL trc thực giao tác ·Vai trò ủy thác quan trọng mặt o Lệnh ủy thác báo cho hệ quản trị CSDL biết tác dụng giao dịch cần đc phản ánh vào CSDL, làm cho giaot ác truy xuất mục liệu thấy chúng o Điểm mà giao tác ủy thác điểm “không đường về” Kết giao tác ủy thác lưu cố định vào sở liệu hồi phục lại VD3: Ở ứng dụng dặt chỗ máy bay, điều ta chưa xét khơng cịn chỗ trống chuyến bay Giao tác cần viết lại sau Begin_transaction Reservation begin input(flight_no, date, customer_name) EXEC SQL SELLECT STSOLD, CAP INTO temp1, temp2 FROM FLIGHT WHERE FNO = flight_no AND DATE = date; If temp1 = temp2 then begin Output (“no free seat”) Abort end else begin EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD + WHERE FNO = flight_no AND DATE = date; EXEC SQL INSERT INTO FC(FNO,DATE,CNAME,SPECIAL) VALUES (flight_no, date, customer_name, null); Commit; Output (“reservation completed”) end end-if end ··Qua VD3, ta thấy khơng cịn chỗ trống giao tác bị hủy bỏ Việc xếp thứ tự kết để trình bày cho người dung tùy theo lệnh abort commit 3.2 Đặc trưng hóa giao tác Các giao tác đọc ghi số liệu tập đọc ghi giao tác không thiết phải tách biệt Tập đọc tập ghi giao tác tạo tập sở BS (base set) nghĩa BS = RS (read set) WS (write set) VD5: Xétgiao tác đặt chỗ, định nghĩa tập nêu trên: o RS [Reservation] = {FLITH.STSOLD, FLIGHT.CAP} o WS [Reservation] = {FLIGHT.SOLD, FC.FNO, FC.DATE, FC.CNAME, FC.SPECIAL} o BS [Reservation] = {FLIGHT.STSOLD, FLIGHT.CAP, FC.FNO, FC.DATE, FC.CNAME, FC.SPECIAL} Các CSDL động phải giải quết toán ảnh ảo (phantom), ví dụ sau: o Giao tác T1, tìm bảng FC tên khách hang yêu cầu bữa ăn Nó nhận tập CNAME gồm tên khách hàng o Khi T1 thực hiện, T2 chèn vào FC có yêu cầu bữa ăn ủy thác o Nếu sau T1 đưa câu truy vấn tìm kiếm cũ, nhận tập CNAME khác với tập ban đầu mà nhận => Các “ảnh ảo” xuất CSDL 3.3 Hình thức hóa khái niệm giao tác Chúng ta biểu thị phép toán Oj giao tác Tik hi hoạt tác CSDL x Oij(x),Oij thuộc {read, write} Các phép toán giả thiết nguyên tử (mỗi phép tốn thực thi đơn vị khơng thể chia nhỏ) Chúng ta kí hiệu OSi tập tất phep tốn Ti Chúng ta định nghĩa Ti thứ tự phận P phép tốn tình kết thúc VD6 : Có tình huống kết thúc ứng dụng đặt chỗ tùy vào tình trạng cịn có chỗ trống hay khơng Sẽ có mâu thuẫn đn giao tác tồn tình kết thúc Tuy nhiên giao tác thực thi chương trình Rõ ràng hai tình kết thúc xảy đồng nghĩa với việc giao tác hủy bỏ giao tác ủy thác Ta đặc tả giao tác đầu sau: Và giao tác sau đặc tả sau: = {R(STSOLD), R(CAP), W(STSOLD), W(FNO), W(DATE), W(CNAME), W(SPECIAL), C} < = {(O1,O3), (O2,O3), (O1,O4), (O1, O5), (O1, O6), (O1, O7), (O2, O4), (O2, O5), (O2, O6), (O2, O7), (O1, C), (O2, C), (O3, C) (O4, C), (O5, C), (O6, C), (O7, C)} Trong O1 = R(STSOLD), O2 = R(CAP), O3 = W(STSOLD), O4 = W(FNO), O5= W(DATE), O6 = W(CNAME), O7 = W(SPECIAL) ·Thông thường bỏ khỏi định nghĩa giao tác sử dụng tên thứ tự phận để đến miền lẫn tên thứ tự phận Chúng cho phép ta đặc tả thứ tự phép toán giao tác nhờ phương thức khác đơn giản dùng thứ tự tương đối định nghĩa giao tác VD: Chúng ta định nghĩa giao tác ví dụ sau: T = {R(x), R(y), W(x), C} thay đặc tả dài dịng trước Thanks for listening ... completed”) end 3.1 Kết thúc giao tác ·Một giao thức phải kết thúc xảy cố ? ?Giao tác hoàn tất tác vụ gọi giao tác có ủy thác (commit) Giao tác khơng hoàn tất tác vụ giao tác bị hủy bỏ (abort) ·Ngồi... đn giao tác tồn tình kết thúc Tuy nhiên giao tác thực thi chương trình Rõ ràng hai tình kết thúc xảy đồng nghĩa với việc giao tác hủy bỏ giao tác ủy thác Ta đặc tả giao tác đầu sau: Và giao tác. .. trống giao tác bị hủy bỏ Việc xếp thứ tự kết để trình bày cho người dung tùy theo lệnh abort commit 3.2 Đặc trưng hóa giao tác Các giao tác đọc ghi số liệu tập đọc ghi giao tác không thiết phải tách