Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
1,04 MB
Nội dung
Hồ Bảo Quốc Khoa công nghệ thông tin Đại học Khoa học tự nhiên Khái niệm giao tác (transaction) Một giao tác = nhóm các thao tác lên CSDL T : begin transation ○ A1 ○ A2 ○ … ○ An ○ T : End transaction Tính chất của giao tác Nguyên tố (Atomicity) Nhất quán (Cohesion) Độc lập (Isolation) Bền vững (Durability) T biến CSDL từ trạng thái nhất quán E sang trạng thái nhất quán E’ giao tác Các thao tác đặc biệt Begin transaction End Transaction (commit, vadidation) Annulation (rollback, abort) Các tình huống của một giao tác Kết thúc bình thường Bị hủy do yếu tố bên ngoài (sự cố, tranh chấp) Tự hủy (abort) Giao tác Góc nhìn ứng dụng Công cụ cho người lập trình Quản lý tính nhất quán của CSDL Bảo đảm các ràng buộc tòan vẹn Góc nhìn hệ thống Giao tác như một tiến trình Đơn vị xử lý Quản lý tranh chấp Quản lý sự cố và khôi phục sau sự cố Điều khiển tranh chấp Tranh chấp Các khái niệm quan trọng ◦ Tập hợp các đối tượng được đọc bởi T : READS(T) ◦ Tạp hợp các đối tượng được ghi bởi T : WRITES(T) Các tranh chấp có thể giữa Ti và Tj : WRITES(Ti) ∩READS(Tj) ≠ ∅ WRITES(Ti) ∩WRITES(Tj) ≠ ∅ Hình thức hóa dựa trên khái niệm « khả tuần tự » T1 T1 T2 T2 Tranh ch p ?ấ Tranh ch p ?ấ Read(A) Read(A) Read(A) Read(A) OK OK Write(A) Write(A) Write(A) Write(A) M t c p nh tấ ậ ậ M t c p nh tấ ậ ậ Write(A) Write(A) Read(A) Read(A) Đ c d li u ch a xác ọ ữ ệ ư Đ c d li u ch a xác ọ ữ ệ ư nh nậ nh nậ Read(A) Read(A) Write(A) Write(A) Đ c không th đ c l iọ ể ọ ạ Đ c không th đ c l iọ ể ọ ạ Hình thức hóa vấn đề Giao tác Ti = chuổi các hành động (READ,WRITE) Thực hiện đồng thời N giao tác : thứ tự thực hiện (lịch) theo thời gian các hành động của các giao tác này Đồ thị phụ thuộc DEP(S)={(T1,A,T2) |A1=WRITE và A2=WRITE A1=WRITE và A2=READ A1=READ và A2=WRITE} Lịch Tuần tự : <T1><T2><T3>….<Tn> Không tuần tự Định nghĩa Lịch tuần tự = nhất quán Liệu có tồn tại các lịch không tuần tự nhất quán Có : nếu đồ thị phụ thuộc không có chu trình Lịch và tính nhất quán T1:READ(C1) T1:READ(C1) T1:READ(C1) T1:READ(C1) T1:READ(C1) T1:READ(C1) T1:C1=C1-50 T1:C1=C1-50 T2:READ(C2) T2:READ(C2) T1:C1=C1-50 T1:C1=C1-50 T1:WRITE(C1) T1:WRITE(C1) T1:C1=C1-50 T1:C1=C1-50 T2:READ(C2) T2:READ(C2) T1:READ(C2) T1:READ(C2) T2:C2=C2-70 T2:C2=C2-70 T1:WRITE(C1) T1:WRITE(C1) T1:C2=C2+50 T1:C2=C2+50 T1:WRITE(C1) T1:WRITE(C1) T2:C2-70 T2:C2-70 T1:WRITE(C2) T1:WRITE(C2) T2:WITE(C2) T2:WITE(C2) T1:READ(C2) T1:READ(C2) T2:READ(C2) T2:READ(C2) T1:READ(C2) T1:READ(C2) T2:WRITE(C2) T2:WRITE(C2) T2:C2=C2-70 T2:C2=C2-70 T2:READ(C3) T2:READ(C3) T1:C2=C2+50 T1:C2=C2+50 T2:WRITE(C2) T2:WRITE(C2) T2:C2=C2+50 T2:C2=C2+50 T2:READ(C3) T2:READ(C3) T2:READ(C3) T2:READ(C3) T2:C3=C3+70 T2:C3=C3+70 T1:WRITE(C2) T1:WRITE(C2) T2:C3=C3+70 T2:C3=C3+70 T1:WRITE(C2) T1:WRITE(C2) T2:C3=C3+70 T2:C3=C3+70 T2:WRITE(C3) T2:WRITE(C3) T2:WRITE(C3) T2:WRITE(C3) T2:WRITE(C3) T2:WRITE(C3) Tuần tự nhất quán Không tuần tự nhất quán Không tuần tự không nhất quán Nghi thức khóa Nguyên tắc : trước khi đọc hoặc viết một đối tượng phải yêu cầu khóa đối tượng đó Lock(A) Unlock(A) Nếu đối tượng tự do OK, ngược lại thì chờ Các kỹ thuật chính để điều khiển truy xuất đồng thời Khóa hai giai đoạn Khóa phân cấp đơn giản Kỹ thuật nhãn thời gian Kỹ thuật nhãn thời gian nhiều phiên bản Điều khiển tranh chấp optimistic Nghi thức khóa hai gia đọan Hai lọai khóa Khóa chia sẽ đọc: shared Lock Khóa để viết exclusif Lock Giao tác thỏa nghi thức khóa hai giai đọan(2PL) Các giao tác khác nhau không thể giữ đồng thời các khóa có tranh chấp (shared lock + exclusif lock hoặc 2 exclusif lock) Một giao tác khi unlock một khóa thì không thể phát ra yêu cầu khóa nửa [...]... cung chờ liên quan đến các vị trí khác => có thể phát hiện nguy cơ khóa chết tòan cục từ đồ thị chờ cục bộ này Trao đổi các nguy cơ khóa chết giữa các nút để phát hiện khóa chết tòan cục Nhãn thời gian Nguyên lý : Mỗi giao tác được gán một nhãn đại diện cho thứ tự phát sinh của nó, các giao tác READ,WRITE trên một đối tượng sẽ được thực hiện theo thứ tự này Đối với một giao tác T có một TS(T) Đối... chưa tồn tại Khóa tòan bộ quan hệ để tránh việc thêm và xóa bộ Khóa chết (Deadlock) T1 (1) Lock(X)ok (2) (3) (4) T2 Lock(Y) ok Lock(Y) chờ Lock(X) chờ T1 chờ T2; T2 chờ T1 => khóa chết Các giải pháp xử lý khóa chết Phát hiện khóa chết Xây dựng đồ thị chờ (waiting graph) ○ Nút = Giao tác ○ Cung : Ti → Tj nếu Tj chờ Ti Phát hiện chu trình trong đồ thị Chọn một giao tác để hủy (abort) Thực hiện... mục khi đă giữ một cảnh báo trên nút cha của nút đó Chỉ giải phóng một Lock hoặc một Warn khi không còn giữ một khóa hoặc một cảnh báo nào trên các nút con của nút đó Tuân theo nghi thức 2PL Định lý : Một lịch lập từ n giao tác tuân thủ nghi thức cảnh báo thì khả tuần tự Các giao tác được phân tán Một giao tác kích họat tại một vị trí sẽ tạo ra các giao tác trên các các vị trí khác như... người điều phối » Các ví trí có các giao tác cục bộ phát sinh được gọi là các « người tham dự » Giao tác tòan cục COMMIT khi và chỉ khi tất cả các giao tác cục bộ COMMIT tại các nút tham gia Mô hình xử lý giao tác phân tán Khóa trên CSDL phân tán Khóa trên bản chính Phương pháp nút trung tâm Phương pháp khóa phân tán Khóa 2PL trên nút tập trung Khóa hai giai đọan phân tán Khóa chết trên CSDL phân...Định lý Nếu trong một lịch tất cả các giao tác đều thỏa nghi thức khóa hai giai đọan thì tương đương với một lịch tuần tự (khả tuần tự) Đồ thị phụ thuộc – điều kiện đủ T1 T2 T1 T2 Lock(A) Lock(A) READ(A)... chấp READ-WRITE Nếu TS(T) > WTS(A) thì READ(A);RTS(A) =max(TS(T),RTS(A)) ngược lại hủy giao tác Tranh chấp WRITE-READ Nếu TS(T) > RTS(A) thì WRITE*; WTS(A)=MAX(TS(T),WTS(A) ngược lại hủy giao tác Nhãn thời gian nhiều phiên bản Nguyên tắc : giữ nhiều phiên bản của mojt đối tượng với các nhãn tương ứng của nó Mỗi đối tượng A tương ứng {} Tất cả các hành động READ đều OK tại . người lập trình Quản lý tính nhất quán của CSDL Bảo đảm các ràng buộc tòan vẹn Góc nhìn hệ thống Giao tác như một tiến trình Đơn vị xử lý Quản lý tranh chấp Quản lý sự cố và khôi. thì chờ Các kỹ thuật chính để điều khiển truy xuất đồng thời Khóa hai giai đoạn Khóa phân cấp đơn giản Kỹ thuật nhãn thời gian Kỹ thuật nhãn thời gian nhiều phiên bản Điều khiển tranh. hóa vấn đề Giao tác Ti = chuổi các hành động (READ,WRITE) Thực hiện đồng thời N giao tác : thứ tự thực hiện (lịch) theo thời gian các hành động của các giao tác này Đồ thị phụ thuộc DEP(S)={(T1,A,T2)