ĐIỀU KHIỂN CẠNH TRANH (Concurrency Control)

23 682 1
ĐIỀU KHIỂN CẠNH TRANH  (Concurrency Control)

Đ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

ĐIỀU KHIỂN CẠNH TRANH (Concurrency Control)

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH (Concurrency Control) MỤC ĐÍCH Một tính chất giao dịch tính cô lập Khi vài giao dịch thực cách cạnh tranh CSDL, tính lập không bảo tồn Đối với hệ thống, cần phải điều khiển trao đổi giao dịch cạnh tranh; điều khiển thực thông qua tập hợp đa dạng chế gọi sơ đồ điều khiển cạnh tranh Các sơ đồ điều khiển cạnh tranh xét chương dựa tính khả Trong chương ta xét quản trị giao dịch thực cạnh canh không xét đến cố hỏng hóc YÊU CẦU Hiểu khái niệm Hiểu kỹ thuật điều khiển cạnh tranh: - Các kỹ thuật dựa chốt (lock) - Các kỹ thuật dựa tem thởi gian - Các kỹ thuật hỗp hợp Hiểu nguyên lý kỹ thuật Hiểu kỹ thuật điều khiển deadlock CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 95 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU V.1 GIAO THỨC DỰA TRÊN CHỐT Một phương pháp để đảm bảo tính khả yêu cầu việc truy xuất đến hạng mục liệu tiến hành theo kiểu loại trừ tương hỗ; có nghĩa giao dịch truy xuất hạng mục liệu, khơng giao dịch khác sửa đổi hạng mục Phương pháp chung dùng để thực thi yêu cầu cho phép giao dịch truy xuất hạng mục liệu giữ chốt hạng mục liệu V.1.1 CHỐT (Lock) Có nhiều phương thức chốt hạng mục liệu Ta hạn chế việc nghiên cứu hai phương thức: Shared Nếu giao dịch Ti nhận chốt phương thức shared (ký hiệu S) hạng mục Q, Ti đọc, không viết Q Exclusive Nếu giao dịch Ti nhận chốt phương thức Exclusive (ký hiệu X), Ti đọc lẫn viết Q Ta yêu cầu giao dịch đòi hỏi chốt phương thức thích hợp hạng mục liệu Q, phụ thuộc vào kiểu hoạt động mà thực Q Giả sử giao dịch Ti đồi hỏi chốt phương thức A hạng mục Q mà giao dich Tj (Tj ≠ Ti) giữ chốt phương thức B Nếu giao dịch Ti cấp chốt Q ngay, bất chấp diện chốt phương thức B, ta nói phương thức A tương thích với phương thức B Một hàm biểu diễn ma trận Quan hệ tương thích hai phương thức chốt cho ma trận comp sau: S X S True False X False False Comp(A, B)= true có nghĩa phương thức A B tương thích figure V- Các chốt phương thức shared giữ đồng thời hạng mục liệu Một chốt exclusive đến sau phải chờ đến tận tất chốt phương thức shared đến trước tháo Một giao dịch yêu cầu chốt shared hạng mục liệu Q cách thực thị lock-S(Q), yêu cầu chốt exclusive thông qua thị lock-X(Q) Một hạng mục liệu Q tháo chốt thơng qua thị unlock(Q) Để truy xuất hạng mục liệu, giao dịch Ti phải chốt hạng mục Nếu hạng mục bị chốt giao dịch khác phương thức khơng tương thích, điều khiển cạnh tranh không cấp chốt tận tất chốt khơng tương thích bị giữ giao dịch khác tháo Như Ti phải chờ đến tận tất chốt không tương thích bị giữ giao dịch khác giải phóng Giao dịch Ti tháo chốt hạng mục liệu mà chốt trước Một giao dịch cần thiết phải giữ chốt hạng mục liệu chừng mà cịn truy xuất hạng mục Hơn nữa, giao dịch việc tháo chốt sau truy xuất cuối đến hạng mục liệu không luôn điều mong muốn tính khả khơng đảm bảo Để minh hoạ cho tình này, ta xét ví dụ sau: A B hai tài khoản CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 96 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU truy xuất giao dịch T1 T2 Giao dịch T1 chuyển 50$ từ tài khoản B sang tài khoản A đươch xác định sau: T1 : Lock-X(B); Read(B); B:=B-50; Write(B); Unlock(B); Lock-X(A); Read(A); A:=A+50; Write(A); Unlock(A); figure V- Giao dịch T2 hiển thị tổng số lượng tiền tài khoản A B (A + B) xác định sau; T2 : Lock-S(A); Read(A); Unlock(A); Lock-S(B); Read(B); Unlock(B); Display(A+B); figure V- Giả sử giá trị tài khoản A B tương ứng 100$ 200$ Nếu hai giao dịch thực tuần tự, theo thứ tự T1, T2 theo thứ tự T2 , T1 , dó T2 hiển thị giá trị 300$ Tuy nhiên giao dịch thực cạnh tranh, giả sử theo lịch trình schedule-1, trường hợp giao dịch T2 hiển thị giá trị 250$ - kết không Lý sai lầm giao dịch T1 tháo chốt hạng mục B sớm T2 tham khảo trạng thái không quán !!! Lịch trình schedule bày tỏ hành động thực giao dịch thời điểm chốt cấp quản trị điều khiển cạnh tranh Giao dịch đưa yêu cầu chốt thực hành động kế đến tận chốt cấp quản trị điều khiển cạnh tranh; đó, chốt phải cấp khoảng thời gian hoạt động yêu cầu chốt hành động sau giao dịch Sau ta giả thiết chốt cấp cho giao dịch trước hành động kế ta bỏ qua cột quản trị điều khiển cạnh tranh bảng CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 97 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU T1 Lock-X(B) T2 Bộ quản trị điều khiển cạnh tranh Grant-X(B,T1) Read(B) B:=B-50 Write(B) Unlock(B) Lock-S(A) Grant-S(A,T2) Read(A) Unlock(A) Lock-S(B) Grant-S(B,T2) Read(B) Unlock(B) Display(A+B) Lock-X(A) Grant-X(A,T1) Read(A) A:=A+50 Write(A) Unlock(A) Schedule-1 figure V- Bây giả sử tháo chốt bị làm trễ đến cuối giao dịch Giao dịch T3 tương ứng với T1 với tháo chốt bị làm trễ định nghĩa sau: T3 : Lock-X(B); Read(B); B:=B-50; Write(B); Lock-X(A); Read(A); A:=A+50; Write(A); Unlock(B); Unlock(A); figure V- CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 98 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Giao dịch T4 tương ứng với T2 với tháo chốt bị làm trễ xác định sau: T4 : Lock-S(A); Read(A); Lock-S(B); Read(B); Display(A+B); Unlock(A); Unlock(B); figure V- Các lịch trình T3 T4 không T4 hiển thị trạng thái không quán Tuy nhiên, sử dụng chốt dẫn đến tình khơng mong đợi Ta xét lịch trình phận schedule-2 T3 T4 sau: T3 T4 Lock-X(B) Read(B) B:=B-50 Write(B) Lock-S(A) Read(A) Lock-S(B) Lock-X(A) Schedule-2 figure V- Do T3 giữ chốt phương thức Exclusive B, nên yêu cầu chốt phương thức shared T4 B phải chờ đến T3 tháo chốt Cũng vậy, T3 yêu cầu chốt Exclusive A T4 giữ chốt shared phải chờ Ta gặp phải tình T3 chờ đợi T4 đồng thời T4 chờ đợi T3 chờ đợi vòng tròn khơng giao dịch tiến triển Tình gọi deadlock (khố chết) Khi tình khố chết xảy hệ thống buộc phải cuộn lại giao dịch Mỗi giao dịch bị cuộn lại, hạng mục liệu bị chốt giao dịch phải tháo chốt trở nên sẵn có cho giao dịch khác, giao dịch tiếp tục thực Nếu ta khơng sử dụng chốt tháo chốt hạng mục liệu sau đọc viết hạng mục, ta rơi vào trạng thái không quán Mặt khác, ta không tháo chốt hạng mục liệu trước yêu cầu chốt hạng mục khác, dealock xảy Có phương pháp tránh dealock số tình huống, nhiên nói chung dealock khó tránh sử dụng chốt ta muốn tránh trạng thái không quán Dealock ưa thích trạng thái khơng qn chúng điều khiển cách cuộn lại giao dịch CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 99 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU trạng thái khơng qn dẫn đến vấn đề thực tế mà hệ CSDL điều khiển Ta yêu cầu giao dịch hệ thống tuân theo tập quy tắc , gọi giao thức chốt (locking protocol), định giao dịch chốt tháo chốt hạng mục dự liệu Giao thức chốt hạn chế số lịch trình Tập lịch trình tập thực tập tất lịch trình khả Xét { T0 , T1 , , Tn } tập giao dịch tham gia vào lịch trình S Ta nói Ti trước Tj S, viết Ti → Tj , tồn hạng mục liệu Q cho Ti giữ chốt phương thức A Q , Tj giữ chốt phương thức B Q muộn comp(A,B) = false Nếu Ti → Tj , Ti xuất trước Tj lịch trình Ta nói lịch trình S hợp lệ giao thức chốt S lịch trình tuân thủ quy tắc giao thức chốt Ta nói giao thức chốt đảm bảo tính khả xung đột tất lịch trình hợp lệ, quan hệ → kết hợp phi chu trình V.1.2 CẤP CHỐT Khi giao dịch yêu cầu chốt hạng mục liệu phương thức khơng có giao dịch khác giữ chốt hạng mục phương thức xung đột, chốt cấp Tuy nhiên, phải thận trọng để tránh kịch sau: giả sử T2 giữ chốt phương thức shared hạng mục liệu, giao dịch khác T1 yêu cầu chốt phương thức exclusive hạng mục này, rõ ràng T1 phải chờ T2 tháo chốt Trong giao dịch khác T3 yêu cầu chốt phương thức shared, yêu cầu chốt tương thích với phương thức chốt giữ T1 nên cấp cho T3 Tại thời điểm T2 tháo chốt, T1 phải chờ tháo chốt T3, lại có giao dịch T4 yêu cầu chốt phương thức shared lại cấp tính tương thích vậy, T1 khơng cấp chốt mà u cầu hạng mục liệu Ta gọi tượng bị chết đói (starved) Để tránh chết đói giao dịch, việc cấp chốt tiến hành sau: Khi giao dịch Ti yêu cầu chốt hạng mục liệu Q phương thức M, chốt cấp điều kiện sau thoả mãn: Khơng có giao dịch khác giữ chốt Q phương thức xung đột với M Khơng có giao dịch chờ cấp chốt M đưa yêu cầu chốt trước Ti V.1.3 GIAO THỨC CHỐT HAI KỲ (Two-phase locking protocol) Giao thức chốt hai kỳ giao thức đảm bảo tính khả Giao thức yêu cầu giao dịch phát yêu cầu chốt tháo chốt thành hai kỳ: Kỳ xin chốt (Growing phase) Một giao dịch nhận chốt, có tháo chốt Kỳ tháo chốt (Shrinking phase) Một giao dịch tháo chốt nhận chốt Khởi đầu, giao dịch kỳ xin chốt Giao dịch tậu nhiều chốt cần thiết Mỗi giao dịch tháo chốt, vào kỳ tháo chốt khơng thể phát yêu cầu chốt Các giao dich T3 T4 hai kỳ Các giao dịch T1 T2 khơng hai kỳ Người ta chứng minh giao thức chốt hai kỳ đảm bảo tính khả xung đột, không đảm bảo tránh dealock việc cuộn lại hàng loạt Cuộn lại hàng loạt tránh sửa đổi chốt hai kỳ gọi giao thức chốt hai kỳ nghiêm ngặt Chốt hai kỳ nghiêm CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 100 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ngặt đòi hỏi thêm tất chốt phương thức exclusive phải giữ đến tận giao dịch bàn giao Yêu cầu đảm bảo liệu viết giao dịch chưa bàn giao bị chốt phương thức exclusive đến tận giao dịch bàn giao, điều ngăn ngừa giao dịch khác đọc liệu Một biến thể khác chốt hai kỳ giao thức chốt hai kỳ nghiêm khắc Nó địi hỏi tất chốt giữ đến tận giao dịch bàn giao Hầu hết hệ CSDL thực chốt hai kỳ nghiêm ngặt nghiêm khắc Một tinh chế giao thức chốt hai kỳ sở dựa việc cho phép chuyển đổi chốt: nâng cấp chốt shared sang exclusive hạ cấp chốt exclusive thành chốt shared Chuyển đổi chốt cho phép cách tuỳ tiện, nâng cấp phép diễn kỳ xin chốt, hạ cấp diễn kỳ tháo chốt Một giao dịch thử nâng cấp chốt hạng mục liệu Q phải chờ Giao thức chốt hai kỳ với chuyển đổi chốt cho phép sinh lịch trình khả xung đột Nếu chốt exclusive giữ đến tận bàn giao, lịch trình cascadeless Ta xét ví dụ: Các giao dịch T8 T9 nêu ví dụ trình bày hoạt động ý nghĩa Read Write T8 : Read(A1); Read(A2); Read(An); Write(A1) T9 : Read(A1); Read(A2); Display(A1 + A2) figure V- Nếu ta sử dụng giao thức chốt hai kỳ, T8 phải chốt A1 phương thức exclusive Bởi vậy, thực cạnh tranh hai giao dịch rút trở thành thực Ta thấy T8 cần chốt exclusive A1 cuối thực nó, write(A1) Như vậy, T8 khởi động chốt A1 phương thức shared, đổi chốt sang phương thức exclusive sau Như ta nhận tính cạnh tranh cao hơn, T8 T9 truy xuất đến A1 A2 đồng thời Ta biểu thị chuyển đổi từ phương thức shared sang phương thức exclusive upgrade từ phương thức exclusive sang phương thức shared downgrade Upgrade phép xảy kỳ xin chốt downgrade phép xảy kỳ tháo chốt Lịch trình chưa hoàn tất cho ta minh hoạ giao thức chốt hai kỳ với chuyển đổi chốt Chú ý giao dịch thử cập nhật chốt hạng mục liệu Q buộc phải chờ Việc chờ bắt buộc xảy Q bị chốt giao dịch khác phương thức shared Giao thức chốt hai kỳ với chuyển đổi chốt sinh lịch trình khả xung đột, giao dịch hoá điểm chốt chúng Hơn nữa, chốt exclusive giữ đến tận kết thúc giao dịch, lịch trình cascadeless CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 101 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU T8 T9 Lock-S(A1) Lock-S(A2) Lock-S(A2) Lock-S(A2) Lock-S(A3) … Unlock(A1) Unlock(A2) UpGrade(A1) figure V- Ta mô tả sơ đồ đơn giản dược sử dụng rộng rãi để sinh tự động thị chốt tháo chốt thích hợp cho giao dịch: Mỗi giao dich T xuất thị Read(Q), hệ thống xuất thị Lock-S(Q) trước thị Read(Q) Mỗi giao dịch T xuất hoạt động Write(Q), hệ thống kiểm tra xem T giữ chốt shared Q hay chưa, đã, xuất thị Upgrade(Q) trước thị Write(Q), chưa, xuất thị Lock-X(Q) trước Write(Q) Tất chốt giao dịch nhận tháo chốt sau giao dịch bàn giao hay bỏ dở V.1.4 GIAO THỨC DỰA TRÊN ĐỒ THỊ (Graph-Based Protocol) Ta biết, trường hợp thiếu vắng thông tin liên quan đến cách thức hạng mục liệu truy xuất, giao thức chốt hai kỳ cần đủ để đảm bảo tính khả Nếu ta muốn phát triển giao thức không hai kỳ, ta cần thông tin bổ xung cách thức giao dịch truy xuất CSDL Có nhiều mơ hình khác lượng thơng tin cung cấp Mơ hình đơn giản đòi hỏi ta phải biết trước thứ tự hạng mục liệu truy xuất Với thơng tin vậy, xây dựng giao thức chốt không hai kỳ đảm bảo tính khả xung đột Để có hiểu biết trước vậy, ta áp đặt thứ tự phận, ký hiệu →, tập tất hạng mục liệu D ={ d1 , d2 , , dn } Nếu di → dj , giao dịch truy xuất di dj phải truy xuất di trước truy xuất dj Thứ tự phận cho phép xem D đồ thị định hướng phi chu trình, gọi đồ thị CSDL (DataBase Graph) Trong phần này, để đơn giản, ta hạn chế xét đồ thị ta đưa giao thức đơn giản, gọi giao thức (tree protocol), giao thức hạn chế dùng chốt exclusive Trong giao thức cây, cho phép thị chốt Lock-X, giao dịch T chốt hạng mục liệu nhiều lần phải tuân theo quy tắc sau: Chốt T hạng mục liệu Sau đó, hạng mục liệu Q bị chốt T cha Q bị chốt T Các hạng mục liệu tháo chốt lúc CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 102 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Một hạng mục liệu bị chốt tháo chốt T, bị T chốt lại lần Các lịch trình hợp lệ giao thức khả xung đột Ví dụ: Cây CSDL là: A B C F D G E H I J figure V- 10 Chỉ thị chốt tháo chốt giao dịch trình bày: T10 : Lock-X(B); Lock-X(E); Lock-X(D); Unlock(B); Unlock(E); Lock-X(G); Unlock(D); Unlock(G) T11 : Lock-X(D); Lock-X(H); Unlock(D); Unlock(H) T12 : Lock-X(B); Lock-X(E); Unlock(B); Unlock(E) T13 : Lock-X(D); Lock-X(H); Unlock(D); Unlock(H) figure V- 11 Một lịch trình tuân theo giao thức chứa tất bốn giao dịch cho hình bên Ta nhận thấy, lịch trình tuân thủ giao thức không khả xung đột mà cịn đảm bảo khơng có dealock Giao thức có mặt thuận lợi so với giao thức hai kỳ tháo chốt xảy sớm Việc tháo chốt sớm dẫn đến rút ngắn thời gian chờ đợi tăng tính cạnh tranh Hơn nữa, giao thức khơng dealock, nên khơng có cuộn lại Tuy nhiên giao thức có điểm bất lợi là, vài trường hợp, giao dịch phải chốt hạng mục liệu mà khơng truy xuất Chẳng hạn, giao dịch cần truy xuất hạng mục liệu A J đồ thị CSDL trên, phải chốt không A J mà phải chốt hạng mục B, D, H Việc chốt bổ xung gây việc tăng tổng phí chốt, tăng thời gian chờ đợi giảm tính cạnh tranh Hơn nữa, khơng biết trước hạng mục liệu cần thiết phải chốt, giao dịch phải chốt gốc mà điều làm giảm mạnh tính cạnh tranh Đối với tập giao dịch, có lịch trình khả xung đột khơng thể nhận từ việc tuân theo giao thức Có lịch trình sinh tn theo giao thức chốt hai kỳ sinh tuân theo giao thức ngược lại CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 103 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU T10 T11 T12 T13 Lock-X(B) Lock-X(D) Lock-X(H) Unlock(D) Lock-X(E) Lock-X(D) Unlock(B) Unlock(E) Lock-X(B) Lock-X(E) Unlock(H) Lock-X(G) Unlock(D) Lock-X(D) Lock-X(H) Unlock(D) Unlock(H) Unlock(E) Unlock(B) Unlock(G) Lịch trình khả giao thức figure V- 12 V.1.5 ĐA HẠT (Multiple Granularity) Trong sơ đồ điều khiển cạnh tranh mô tả trước đây, ta sử dụng hạng mục liệu đơn vị đồng hố thực Tuy nhiên, có hồn cảnh việc nhóm vài hạng mục liệu xử lý chúng đơn vị đồng hoá mang lại nhiều lợi ích Nừu giao dich Ti phải truy xuất toàn CSDL giao thức chốt sử dụng, Ti phải chốt hạng mục liệu CSDL Như việc thực chốt tiêu tốn thời gian đáng kể Sẽ hiệu Ti cần yêu cầu chốt để chốt toàn CSDL Mặt khác, Ti cần truy xuất vài hạng mục liệu, khơng cần thiết phải chốt tồn CSDL giảm tính cạnh tranh Như vậy, mà ta cần chế cho phép hệ thống xác định nhiều mức hạt Một chế cho phép hạng mục liệu có kích cỡ khác xác định phân cấp hạt liệu, hạt nhỏ ẩn náu bên hạt lớn Sự phân cấp biểu diễn đồ thị Một nút không đa hạt biểu diễn liệu kết hợp với cháu Như ví dụ minh hoạ, ta xét sau: CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 104 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU DB Fa Ra1 Ra2 Ran A1 A2 Fb Fc Fd Rc2 Rcm Rd1 … Rb1 Rbk Rc1 Rdq Phân cấp hạt figure V- 13 Nó gồm bốn mức nút Mức cao toàn CSDL Thấp nút kiểu vùng: CSDL bao gồm vùng Mỗi vùng lại có nút kiểu file nó, vùng chứa file không file nằm nhiều vùng Cuối cùng, file có nút kiểu mẩu tin, không mẩu tin diện file Mỗi nút chốt cá nhân Như làm giao thức chốt hai kỳ, ta sử dụng phương thức chốt shared exclusive Khi giao dịch chốt nút, phương thức shared exclusive, giao dịch chốt tất nút cháu nút phương thức Ví dụ Ti chốt tường minh file Fb phương thức exclusive, chốt ẩn tất mẩu tin Fb phương thức exclusive Giả sử giao dịch Tj muốn chốt mẩu tin Rb6 file Fb giao địch Ti chốt tường minh file Fb, mẩu tin Rb6 bị chốt ẩn Song làm để hệ thống biết Tj chốt Rb6 hay khơng: Tj phải duyệt từ gốc đến mẩu tin Rb6 , có nút tren đường dẫn bị chốt phương thức khơng tương thích, Tj phải chờ Bây giờ, Tk muốn chốt tồn CSDL, phải chốt nút gốc Tuy nhiên, Ti giữ chốt Fb, phận cây, nên Tk không thành công Vậy làm để hệ chốt nút gốc: Một khả tìm kiếm tồn cây, giải pháp phá huỷ hồn tồn sơ đồ mục đích sơ đồ chốt đa hạt Một giải pháp hiệu đưa vào lớp phương thức chốt, gọi phương thức chốt tăng cường (intension lock mode) Nếu nút bị chốt phương thức tăng cường, chốt tường minh tiến hành mức thấp (hạt hơn) Chốt tăng cường được đặt tất tổ tiên nút trước nút chốt tường minh Như giao dịch khơng cần thiết phải tìm kiếm tồn để xác định chốt nút thành công hay không Một giao dịch muốn chốt nút, chẳng hạn Q, phải duyệt đường dẫn từ gốc đến Q, duyệt cây, giao dịch chốt nút đường phương thức tăng cường Có phương thức tăng cường kết hợp với phương thức shared với phương thức exclusive Nếu nút bị chốt phương thức tăng cường shared (IS), chốt tường minh tiến hành mức thấp cây, chốt phương thức shared Tương tự, nút bị chốt phương thức tăng cường exclusive (IX), chốt tường minh tiến hành mức thấp với chốt exclusive shared Nếu nút bị chốt phương thức shared phương thức tăng cường exclusive (SIX), có gốc nút bị chốt tường minh phương thức shared chốt tường minh tiến hành mức thấp với chốt exclusive Hàm tính tương thích phương thức chốt cho ma trận: CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 105 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU IS IX S SIX X IS True True True True False IX True True False False False S True False True False False SIX True False False False False X False False False False False figure V- 14 Giao thức chốt đa hạt đảm bảo tính khả Mỗi giao địch T chốt nút Q theo quy tắc sau: Hàm tương thích chốt phải kiểm chứng Gốc phải chốt đầu tiên, chốt phương thức Một nút Q chốt T phương thức S IS cha Q bị chốt T phương thức IX phương thức IS Một nút Q chốt T phương thức X, SIX IX cha Q bị chốt phương thức IX phương thức SIX T chốt nút trước chưa tháo chốt nút T tháo chốt nút Q không Q bị chốt T Ta thấy giao thức đa hạt yêu cầu chốt tậu theo thứ tự Top-Down, tháo theo thứ tự Bottom-Up Ví dụ: Xét phân cấp hạt giao dịch sau: ○ Giả sử giao dịch T18 đọc mẩu tin Ra2 file Fa Khi T18 cần phải chốt DB, vùng A1 Lock-IS(DB); Lock-IS(A1); Fa phương thức IS Ra2 phương thức S: Lock-IS(Fa); lock-S(Ra2) ○ Giả sử giao dịch T19 sửa đổi mẩu tin Ra9 file Fa , T19 cần phải chốt CSDL, vùng A1 file Fa phương thức IX Ra9 phương thức X: Lock-IX(DB); Lock-IX(A1); lock-IX(Fa); lock-X(Ra9) ○ Giả sử giao dịch T20 đọc tất mẩu tin file Fa , T20 cần phải chốt CSDL, vùng A1 phương thức IS chốt Fa phương thức S: Lock-IS(DB); LockIS(A1); Lock-S(Fa) ○ Giả sử giao dịch T21 đọc toàn CSDL, làm điều sau chốt CSDL phương thức S: Lock-S(DB) Chú ý T18, T20 T21 truy xuất đồng thời CSDL, giao dịch T19 thực cạnh tranh với T18 không với T20 T21 V.2 GIAO THỨC DỰA TRÊN TEM THỜI GIAN (Timestampbased protocol) V.2.1 TEM THỜI GIAN (Timestamp) Ta kết hợp với giao dịch Ti hệ thống tem thời gian cố định nhất, biểu thị TS(Ti) Tem thời gian gán hệ CSDL trước giao dịch Ti bắt đầu thực CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 106 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Nếu giao dịch Ti gán tem thời gian TS(Ti) giao dịch Tj vào hệ thống, TS(Ti) < TS(Tj) Có hai phương pháp đơn giản để thực sơ đồ này: Sử dụng giá trị đồng hồ hệ thống tem thời gian: Một tem thời gian giao dịch giá trị đồng hồ giao dịch vào hệ thống Sử dụng đếm logic: đếm tăng lên tem thời gian gán, tem thời gian giao dịch với giá trị đếm giao dich vào hệ thống Tem thời gian giao dịch xác định thứ tự khả Như vậy, TS(Ti) < TS(Tj), hệ thống phải đảm bảo lịch trình sinh tương đương với lịch trình Ti xuất trước Tj Để thực sơ đồ này, ta kết hợp với hạng mục liệu Q hai giá trị tem thời gian: • W-timestamp(Q) biểu thị tem thời gian lớn giao dịch thực Write(Q) thành cơng • R-timestamp(Q) biểu thị tem thời gian lớn giao dịch thực Read(Q) thành công Các tem thời gian cập nhật Write Read thực V.2.2 GIAO THỨC THỨ TỰ TEM THỜI GIAN (Timestamp-Ordering Protocol) Giao thức thứ tự tem thời gian đảm bảo Write Read xung đột thực theo thứ tự tem thời gian Giao thức hoạt động sau: Giả sử giao dịch Ti phát Read(Q) a Nếu TS(Ti) < W-Timestamp(Q), Ti cần đọc giá trị Q viết Do đó, hoạt động Read bị vứt bỏ Ti bị cuộn lại b Nếu TS(Ti) ≥ W-Timestamp(Q), hoạt động Read thực R-Timestamp đặt giá trị lớn hai giá trị R-Timestamp TS(Ti) Giả sử giao dịch Ti phát Write(Q) a Nếu TS(Ti) < R-Timestamp(Q), Giá trị Q mà Ti sinh giả thiết để dùng cho giao dịch sau (theo trình tự thời gian), khơng cần đến nũa Do vậy, hoạt động Write bị vứt bỏ Ti bị cuộn lại b Nếu TS(Ti) < W-Timestamp(Q), Ti thử viết giá trị hạn Q, Từ đó, hoạt động Write bị vứt bỏ Ti bị cuộn lại c Ngoài ra, hoạt động Write thực W-Timestamp(Q) đặt TS(Ti) Một giao dịch Ti bị cuộn lại sơ đồ điều khiển cạnh tranh kết hoạt động Read Write phát ra, gán với tem thời gian tái khởi động lại (được xem giao dịch tham gia vào hệ thống) CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 107 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Ta xét giao dịch T14 T15 xác định đây: T14 : Read(B); Read(A); Display(A+B); T15 : Read(B); B:=B-50; Write(B); Read(A); A:=A+50; Write(A); Display(A+B) figure V- 15 Ta giả thiết giao dịch gán cho tem thời gian trước thị Như vậy, lịch trình schedule-3 có TS(T14) < TS(T15), lịch trình hợp lệ giao thức tem thời gian: T14 T15 Read(B) Read(B) B:=B-50 Write(B) Read(A) Read(A) Display(A+B) A:=A+50 Write(A) Display(A+B) Schedule-3 figure V- 16 Giao thức thứ tự tem thời gian đảm bảo tính khả xung đột khơng dealock V.2.3 QUY TẮC VIẾT THOMAS (Thomas' Write rule) Một biến thể giao thức tem thời gian cho phép tính cạnh tranh cao giao thức thứ tự tem thời gian Trước hết ta xét lịch trình schedule-4 sau: CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 108 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU T16 T17 Read(Q) Write(Q) Write(Q) Schedule-4 figure V- 17 Nếu áp dụng giao thức thứ tự tem thời gian, ta có TS(T16) < TS(T17) Hoạt dộng Read(Q) T16 Write(Q) T17 thành công, T16 toan thực hoạt động Write(Q) nó, TS(T16) < TS(T17) = W-timestamp(Q), nên Write(Q) T16 bị vứt bỏ giao dịch T16 bị cuộn lại Sự cuộn lại không cần thiết Nhận xét cho ta sửa đổi phiên giao thức thứ tự tem thời gian: Các quy tắc giao thức Read không thay đổi, quy tắc Write thay đổi chút sau: Giả sử giao dịch Ti phát Write(Q) Nếu TS(Ti) < R-timestamp(Q), Giá trị Q mà Ti sinh giả thiết để dùng cho giao dịch sau (theo trình tự thời gian), không cần đến Do vậy, hoạt động Write bị vứt bỏ Ti bị cuộn lại Nếu TS(Ti) < W-timestamp(Q), Ti thử viết giá trị lỗi thời Q Do vậy, hoạt động Write bị bỏ lơ (khơng thực hiện, Ti khơng bị cuộn lại) Ngồi ra, hoạt động Write thực W-timestamp(Q) đặt TS(Ti) Sự sửa đổi giao thức thứ tự tem thời gian gọi quy tắc viết Thomas Quy tắc viết Thomas cho khả sinh lịch trình khả mà giao thức thức trước khơng thể V.2.4 GIAO THỨC DỰA TRÊN TÍNH HỢP LỆ Trong trường hợp đa số giao dịch hệ thống giao dịch đọc (read-only), tỷ suất xung đột giao dịch thấp Như nhiều giao dịch chúng thực thiếu giám sát sơ đồ điều khiển cạnh tranh giữ cho hệ thống trạng thái quán Hơn nữa, sơ đồ điều khiển cạnh tranh đưa vào tổng phí đáng kể (cho thực mã lệnh, thời gian chờ giao dịch ) Việc tìm sơ đổ với tổng phí nhỏ mục tiêu Nhưng khó khăn ta phải biết trước giao dịch bị dính líu vào xung đột Để có hiểu bét đó, ta cần sơ đồ để giám sát hệ thống Ta giả thiết giao dịch Ti , thời gian sống nó, thực hai ba kỳ khác nhau, phụ thuộc vào giao dịch đọc giao dịch cập nhật Các kỳ này, theo thứ tự, sau: Kỳ đọc Trong kỳ này, giá trị hạng mục liệu khác đọc vào biến cục Ti Tất hoạt động Write thực biến cục tạm, không cập nhật CSDL hành Kỳ hợp lệ Giao dịch Ti thực phép kiểm thử hợp lệ để xác định xem chép đến CSDL biến cục tạm chứa kết hoạt Write mà khơng vi phạm tính khả xung đột hay không CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 109 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Kỳ viết Nếu Ti thành công kỳ hợp lệ, cập nhật hành áp dụng vào CSDL, không Ti bị cuộn lại Mỗi giao dịch phải trải qua ba kỳ theo thứ tự trên, nhiên, ba kỳ giao dịch thực cạnh tranh đan xen Các kỳ đọc kỳ viết tự rõ ràng Chỉ có kỳ hợp lệ cần thảo luận thêm Để thực kiểm thử hợp lệ, ta cần biết kỳ khác giao dịch Ti xảy Do vậy, ta kết hợp ba tem thời gian với giao dịch Ti : Start(Ti) Thời gian Ti bắt đầu thực Validation(Ti) Thời gian Ti kết thúc kỳ đọc khởi động kỳ hợp lệ Finish(Ti) Thời gian Ti kết thúc kỳ viết Ta xác định thứ tự khả kỹ thuật thứ tự tem thời gian sử dụng giá trị tem thời gian Validation(Ti) Như vậy, giá trị TS(Ti) = Validation(Ti) TS(Tj) < TS(Tk) lịch trình sinh phải tương đương với lịch trình giao dịch Ti xuất hiẹn trước giao dịch Tk Lý dota chọn Validation(Ti) tem thời gian Ti , mà khơng chọn Start(Ti), ta hy vọng thời gian trả lời nhanh Phép kiểm thử hợp lệ Tj đòi hỏi rằng, giao dịch Ti với TS(Ti) < TS(Tj), điều kiện sau phải thoả mãn: Finish(Ti) < Start(Tj) Do Ti hoàn tất thực trước Tj bắt đầu, thứ tự khả trì Tập hạng mục liệu viết Ti không giao với tập hạng mục liệu đọc Tj Ti hồn tất kỳ viết trước Tj bắt đầu kỳ hợp lệ (Start(Tj) < Finish(Ti) < Validation(Tj)) Điều kiện đảm bảo viết Ti Tj không chồng chéo Do viết Ti không ảnh hưởng tới đọc Tj Tj ảnh hưởng tới đọc Ti , thứ tự khả trì Lịch trình schedule-5 cho ta minh hoạ giao thức dựa tính hợp lệ: T14 T15 Read(B) Read(B) B:=B-50 Read(A) A:=A+50 Read(A) Xác nhận tính hợp lệ Display(A+B) Xác nhận tính hợp lệ Write(B) Write(A) figure V- 18 CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 110 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Sơ đồ hợp lệ tự động canh chừng việc cuộn lại hàng loạt, Write xảy sau giao dịch phát Write bàn giao V.3 CÁC SƠ ĐỒ ĐA PHIÊN BẢN (Multiversion Schemes) Các sơ đồ điều khiển cạnh tranh thảo luận trước đảm bảo tính khả làm trễ hoạt động bỏ dở giao dịc phát hoạt động Chẳng hạn, hoạt động Read bị làm trễ giá trị thích hợp cịn chưa viết bị vứt bỏ giá trị mà muốn đọc bị viết đè Các khó khăn che cũ hạng mục liệu giữ hệ thống Trong hệ CSDL đa phiên bản, hoạt động Write(Q) tạo Q Khi hoạt động Read(Q) phát ra, hệ thống chọn lựa phiên Q để đọc Sơ đồ điều khiển cạnh tranh phải đảm bảo việc chọn lựa tiến hành cho tính khả đảm bảo Do lý hiệu năng, giao dịch phải có khả xác định dễ dàng mau chóng phiên dhạng mục liệu đọc V.3.1 THỨ TỰ TEM THỜI GIAN ĐA PHIÊN BẢN Kỹ thuật chung dùng sơ đồ đa phiên tem thời gian Ta kết hợp với giao dịch tem thời gian tĩnh nhất, ký hiệu TS(Ti) Tem thời gian gán trước khi giao dịch bắt đầu thực Mỗi hạng mục liệu Q kết hợp với dãy phiên Qk chứa ba trường liệu: • Content giá trị phiên Qi • W-timestamp(Qk) tem thời gian giao dịch tạo phiên Qk • R-timestamp(Qk) tem thời gian lớn giao dịch đọc thành công phiên Qk Một giao dịch, gọi Ti , tạo phiên Qk hạng mục liệu Q cách phát hoạt động Write(Q) Trường Content phiên chứa giá trị viết Ti Wtimestamp R-timestamp khởi động TS(Ti) Giá trị R-timestamp cập nhật giao dịch Tj đọc nội dung Qk R-timestamp(Qk) < TS(Tj) Sơ đồ tem thời gian đa phiên đảm bảo tính khả Sơ đồ hoạt động sau: giả sử Tj phát hoạt động Read(Q) Write(Q) Qk ký hiệu phiên Q, tem thời gian viết tem thời gian viết lớn nhỏ TS(Tj) Nếu giao dịch Tj phát Read(Q), giá trị trả lại nội dung phiên Qk Nếu Tj phát Write(Q) TS(Tj) < R-timestamp(Qk) giao dịch Tj bị cuộn lại Nếu không, TS(Tj) = W-timestamp(Qk) nội dung Qk bị viết đè, khác phiên Q tạo Các phiên khơng cịn dùng đến bị xoá dựa quy tắc sau: Giả sử có hai phiên Qi Qj hạng mục liệu hai phiên có Wtimestamp nhỏ tem thời gian giao dịch già hệ thống, phiên già hai phiên Qi Qj khơng cịn dùng bị xố Sơ đồ thứ tự tem thời gian đa phiên có tính chất u cầu Read khơng thất bại chờ đợi Trong hệ thống mà hoạt động Read xảy nhiều Write lợi đáng kể Tuy nhiên có vài điều bất lợi sơ đồ là: thứ đọc CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 111 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU hạng mục liệu đòi hỏi cập nhật trường R-timestamp, thứ hai xung đột giao dịch giải cuộn lại V.3.2 CHỐT HAI KỲ ĐA PHIÊN BẢN Giao thức chốt hai kỳ đa phiên cố gắng tổ hợp ưu điểm điều khiển cạnh tranh với ưu điểm chốt hai kỳ Giao thức phân biệt giao dịch đọc giao dịch cập nhật Các giao dịch cập nhật thực chốt hai kỳ nghiêm khắc (các chốt giữ đến tận kết thúc giao dịch) Mỗi hạng mục liệu có tem thời gian Tem thời gian trường hợp không tem thời gian dựa đồng hồ thực mà đếm, gọi TScounter Các giao dịch đọc gán tem thời gian giá trị hành TS-counter trước chúng bắt đầu thực hiện: chúng tuân theo giao thức thứ tự tem thời gian đa phiên để thực đọc Như vậy, giao dịch đọc Ti phát Read(Q), giá trị trả lại nội dung phiên mà tem thời gian tem thời gian lớn nhỏ TS(Ti) Khi giao dịch cập nhật đọc hạng mục, tậu chốt shared hạng mục, đọc phiên hạng mục (đối với nó) Khi giao dịch cập nhật muốn viết hạng mục, tậu chốt exclusive hạng mục này, tạo phiên cho hạng mục Write thực phiên tem thời gian phiên khởi động +∞ Khi giao dịch cập nhật Ti hoàn tất hoạt động nó, thực xử lý bàn giao sau: Đầu tiên, Ti đặt tem thời gian phiên tạo TS-counter+1; sau Ti tăng TS-counter lên Chỉ giao dịch cập nhật phép thực xử lý bàn giao thời điểm Các phiên bị xoá kiểu cách với thứ tự tem thời gian đa phiên V.4 QUẢN TRỊ DEADLOCK Một hệ thống trạnh thái deadlock tồn tập hợp giao dịch cho giao dịch tập hợp chờ giao dịch khác tạp hợp Chính xác hơn, tồn tập giao dịch { T0 , T2 , , Tn } cho T0 chờ hạng mục liệu giữ T1 , T1 chờ hạng mục liệu bị chiếm T2 , , Tn-1 chờ hạng mục liệu giữ Tn Tn chờ hạng mục T0 chiếm Không giao dịch tiến triển tình Một cách chữa trị viện dẫn hành động tẩy rửa, chẳng hạn cuộn lại vài giao dịch tham gia vào deadlock Có hai phương pháp giải vấn đề deadlock: Ngăn ngừa deadlock, phát deadlock khôi phục Giao thức ngăn ngừa deadlock đảm bảo hệ thống không vào trạng thái deadlock Sơ đồ phát deadlock khôi phục (deadlock-detection and deadlock-recovery scheme) cho phép hệ thống vào trạng thái deadlock sau cố gắng khơi phục Cả hai phương pháp dẫn đến việc cuộn lại giao dịch Phòng ngừa deadlock thường sử dụng xác suất hệ thống vào deadlock cao, phát khôi phục hiệu trường hợp cịn lại V.4.1 PHỊNG NGỪA DEADLOCK (Deadlock prevention) Có hai cách tiếp cận phịng ngừa deadlock: Một đảm bảo khơng có chờ đợi vịng trịn xảy cách thứ tự yêu cầu chốt đòi hỏi tất chốt tậu Một CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 112 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU cách tiếp cận khác gần với khắc phục deadlock thực cuộn lại thay chờ đợi chốt Chờ đợi tiểm ẩn deadlock Sơ đồ đơn giản cách tiếp cận thứ đòi hỏi giao dịch chốt tất hạng mục liệu trước bắt đầu thực Hơn nữa, tất chốt bước không hạng mục chốt Giao thức có hai bất lợi chính: khó dự đốn, trước giao dịch bắt đầu, hạng mục liệu cần chốt, hai hiệu suất sử dụng hạng mục liệu thấp nhiều hạng mục bị chốt không sử dụng thời gian dài Sơ đồ phòng ngừa deadlock khác áp đặt thứ tự phận tất hạng mục liệu yêu cầu giao dịch chốt hạng mục liệu theo thứ tự xác định thứ tự phận Cách tiếp cận thứ hai để phòng ngừa deadlock sử dụng ưu tiên cuộn lại trình Với ưu tiên, giao dịch T2 yêu cầu chốt bị giữ giao dịch T1 , chốt cấp cho T1 bị lấy lại cấp chgo T2 , T1 bị cuộn lại Để điều khiển ưu tiên, ta gán tem thời gian cho giao dịch Hệ thống sử dụng tem thời gian để định giao dịch phải chờ hay cuộn lại Việc chốt sử dụng để điều khiển cạnh tranh Nếu giao dịch bị cuộn lại, giữ tem thời gian cũ tái khởi động Hai sơ đồ phòng ngừa deadlock sử dụng tem thời gian khác đề nghị: Sơ đồ Wait-Die dựa kỹ thuật không ưu tiên Khi giao dịch Ti yêu cầu hạng mục liệu bị chiếm Tj , Ti phép chờ có tem thời gian nhỏ Tj không Ti bị cuộn lại (die) Sơ đồ Wound-Wait dựa kỹ thuật ưu tiên Khi giao dịch Ti yêu cầu hạng mục liệu bị giữ Tj , Ti phép chờ có tem thời gian lớn Tj , không Tj bị cuộn lại (Wounded) Một điều quan trọng phải đảm bảo rằng, giao dịch bị cuộn lại, khơng bị chết đói (starvation) có nghĩa khơng bị cuộn lại lần phép tiến triển Cả hai sơ đồ Wound-Wait Wait-Die tránh chết đói: thời điểm, có giao dịch với tem thời gian nhỏ Giao dịch bị yêu cầu cuộn lại hai sơ đồ Do tem thời gian tăng giao dịch không gán tem thời gian chúng bị cuộn lại, giao dịch bị cuộn lại có tem thời gian nhỏ (vào thời gian sau) khơng bị cuộn lại lần Tuy nhiên, có khác lớn cách thức hoạt động hai sơ đồ: • Trong sơ đồ Wait-Die, giao dịch già phải chờ giao dịch trẻ giải phóng hạng mục liệu Như vậy, giao dịch già có xu hướng bị chờ nhiều Ngược lại, sơ đồ Wound-Wait, giao dịch già chờ giao dịch trẻ • Trong sơ đồ Wait-Die, giao dịch Ti chết bị cuộn lại địi hỏi hạng mục liệu bị giữ giao dịch Tj , Ti phải tái phát dãy yêu cầu khởi động lại Nếu hạng mục liệu bị chiếm Tj , Ti bị chết lần Như vậy, Ti bị chết vài lần trước tậu hạng mục liệu cần thiết Trong sơ đồ Wound-Wait, Giao dịch Ti bị thương bị cuộn lại Tj yêu cầu hạng mục liệu chiếm giữ Khi Ti khởi động lại, yêu cầu hạng mục liệu, bây giờ, bị Tj giữ, Ti chờ Như vậy, có cuộn lại sơ đồ Wound-Wait Một vấn đề trội hai sơ đồ có cuộn lại khơng cần thiết xảy CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 113 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU V.4.2 SƠ ĐỒ DỰA TRÊN TIMEOUT Một cách tiếp cận khác để quản lý deadlock dựa lock timeout Trong cách tiếp cận này, giao dịch yêu cầu chốt phải chờ nhiều khoảng thời gian xác định Nếu chốt không cấp khoảng thời gian này, giao dịch gọi mãn kỳ (time out), giao dịch tự cuộn lại khởi động lại Nếu có deadlock, một vài giao dịch dính líu đến deadlock time out cuộn lại, để giao dịch khác tiến triển Sơ đồ nằm trung gian phịng ngừa deadlock phát khơi phục deadlock Sơ đồ timeout dễ thực thi hoạt động tốt giao dịch ngắn chờ đợi lâu deadlock Tuy nhiên, khó định khoảng thời gian timeout Sơ đồ đưa đến chết đói V.4.3 PHÁT HIỆN DEADLOCK VÀ KHƠI PHỤC Nếu hệ thống khơng dùng giao thức phịng ngừa deadlock, sơ đồ phát khôi phục phải sử dụng Một giải thuật kiểm tra trạng thái hệ thống gọi theo chu kỳ để xác định xem deadlock có xẩy hay khơng Nếu có, hệ thống phải khơi phục lại từ deadlock, muốn hệ thống phải: • Duy trì thông tin cấp phát hành hạng mục liệu cho giao dịch yêu cầu hạng mục liệu chưa chưa giải • Cung cấp thuật tốn sử dụng thông tin để xác định hệ thống vào trạng thái deadlock chưa • Phục hồi từ deadlock phát deadlock xảy V.4.3.1 PHÁT HIỆN DEADLOCK Deadlock mơ tả xác đồ thị định hướng gọi đồ thị chờ (wait for graph) Đồ thị gồm cặp G = < V, E >, V tập đỉnh E tập cung Tập đỉnh gồm tất giao dịch hệ thống Mỗi phần tử E cặp Ti → Tj , Ti chờ Tj giải phóng hạng mục liệu cần Khi giao dịch Ti yêu cầu hạng mục liệu bị giữ giao dịch Tj cung Ti → Tj xen vào đồ thị Cạnh bị xố giao dịch Tj khơng cịn giữ hạng mục liệu mà Ti cần Deadlock tồn hệ thống đồ thị chờ chứa chu trình Mỗi giao dịch tham gia vào chu trình gọi bị deadlock Để phát deadlock, hệ thống phải trì đồ thị chờ gọi theo chu kỳ thủ tục tìm kiếm chu trình Ta xét ví dụ sau: T26 T28 T25 T27 Đồ thị chờ (phi chu trình) figure V- 19 CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 114 ... động kế ta bỏ qua cột quản trị điều khiển cạnh tranh bảng CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 97 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU T1 Lock-X(B) T2 Bộ quản trị điều khiển cạnh tranh Grant-X(B,T1) Read(B)... thực giao dịch thời điểm chốt cấp quản trị điều khiển cạnh tranh Giao dịch đưa yêu cầu chốt thực hành động kế đến tận chốt cấp quản trị điều khiển cạnh tranh; đó, chốt phải cấp khoảng thời gian... khơng qn chúng điều khiển cách cuộn lại giao dịch CHƯƠNG V ĐIỀU KHIỂN CẠNH TRANH Trang 99 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU trạng thái khơng qn dẫn đến vấn đề thực tế mà hệ CSDL điều khiển Ta yêu cầu

Ngày đăng: 14/09/2012, 11:41

Hình ảnh liên quan

Một lịch trình tuân theo giao thức cây chứa tất cả bốn giao dịch trên được cho trong hình bên dưới - ĐIỀU KHIỂN CẠNH TRANH  (Concurrency Control)

t.

lịch trình tuân theo giao thức cây chứa tất cả bốn giao dịch trên được cho trong hình bên dưới Xem tại trang 9 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan