CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

19 85 0
CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

Đ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

Chương Quản lý giao dịch phân tán Chương gồm nội dung liên quan đến việc quản lý giao dịch phân tán sau: 3.1 Các khái niệm giao dịch phân tán 3.1.1 Khái niêm giao dịch CSDL phân tán 3.1.2 Khái niệm đặt khóa 3.1.3 Các lịch biểu giao dịch phân tán 3.2 Quản lý giao dịch phân tán đặt khóa 3.2.1 Mơ hình khóa tổng qt 3.2.2 Một số tình xung đột khóa 3.2.3 Mơ hình khóa có phân biệt đọc / ghi 3.3 Quản lý giao dịch phân tán thời dấu 3.3.1 Các khái niệm 3.3.2 Điều khiển tương tranh thời dấu 3.4 Hợp thức hóa giao dịch phân tán 3.4.1 Mục đích hợp thức hố 3.4.2 Giao thức hợp thức hóa hai giai đoạn Bài tập chương _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 40 3.1 CÁC KHÁI NIỆM CƠ BẢN Mở đầu: Trong CSDL phân tán, có nhiều ứng dụng địi hỏi phải thực nhiều giao dịch lúc Chẳng hạn: hệ thống bán vé hãng hang không, thời điểm nhiều đại lý bán vé cho chuyến bay, danh sách hành khách số ghế bán thay đổi liên tục Nếu có hai giao dịch bán vé/đặt chỗ thực dẫn tới chỗ ngồi bán/đặt chỗ lần, dẫn đến nhiều xung đột, trục trặc cho hệ thống Như đặt vấn đề: cần phải quản lý giao dịch CSDL phân tán (còn gọi giao dịch phân tán | Distributed transactions) Trong chương ta nghiên cứu vấn đề quan trọng việc quản lý giao dịch phân tán:   Điều khiển tương tranh giao dịch phân tán Xử lý hợp thức hóa giao dịch phân tán Trước hết, ta xét số khái niệm quản lý giao dịch phân tán 3.1.1 Khái niệm giao dịch CSDL phân tán Khái niệm giao dịch CSDL  Một giao dịch tạo dãy thao tác đọc ghi CSDL với bước tính tốn cần thiết (có thể hiểu giao dịch thực chương trình, cịn thao tác thực câu lệnh chương trình đó)  Định nghĩa khác Ullman [1988]: Giao dịch thực chương trình có câu vấn tin truy xuất đến CSDL Hoạt động giao dịch CSDL Một giao dịch đọc/ghi đơn vị liệu (mục liệu | item) CSDL thông qua đệm giao dịch (vùng làm việc riêng - private work space) Mỗi giao dịch thực thao tác tính tốn dẫn đến thay đổi giá trị liệu, thay đổi không tác động vào CSDL giá trị ghi vào CSDL nhờ thủ tục hợp thức (commited) kết thúc giao dịch Giao dịch đọc không làm thay đổi CSDL Các giao dịch phân tán Các giao dịch thực CSDL phân tán gọi giao dịch phân tán Một giao dịch phân tán bao gồm nhiều giao dịch thực trạm Tính nguyên tố giao dịch phân tán: hiểu giao dịch thực trọn vẹn, tất giao dịch thực hiện, trái lại, có dù giao dịch trạm chưa thực tồn giao dịch phân tán chưa thực (chưa commited, chưa ghi thay đổi vào CSDL) Như giao dịch phân tán có hai trạng thái kết quả: thực không thực Các thủ tục hợp thức hóa đảm bảo tính ngun tố giao dịch phân tán  Một số thí dụ vể giao dịch phân tán:  Truy vấn tài khoản/chuyển tiền qua dịch vụ Internet banking, rút tiền máy ATM  Mua vé/đặt chỗ máy bay (qua mạng) _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 41 Giao dịch quán CSDL Mọi CSDL tập trung hay phân tán luôn quán (thỏa mãn ràng buộc toàn vẹn) trước sau thực giao dịch Trong giao dịch thực hiện, CSDL tạm thời khơng qn, sau thực xong giao dịch, CSDL cập nhật phải trạng thái quán, hệ thống hủy bỏ giao dịch kết cập nhật giao dịch làm cho CSDL trở nên không quán Chẳng hạn: nhập tuổi cha tuổi con, hay chuyển khoản số tiền lớn số dư làm cho CSDL trở nên khơng quán, trường hợp giao dịch bị hủy 3.1.2 Khái niệm đặt khóa (Locking) Khái niệm mục liệu Để quản lý hoạt động tương tranh (các hoạt động đồng thời) CSDL, người ta chia CSDL thành đơn vị liệu nhỏ nhất, cần truy xuất có điều khiển, gọi mục liệu (items) hay hạt liệu Bản chất kích thước mục liệu người thiết kế hệ thống định Chẳng hạn: mơ hình quan hệ, ta chọn mục liệu lớn quan hệ, hay chọn mục liệu nhỏ hay thành phần Một hệ thống hạt mịn (fine- grained) sử dụng mục liệu nhỏ, cịn hệ thống hạt thơ (coarse grained) sử dụng mục lệu có kích thước lớn Việc chọn kích thước mục liệu quan trọng việc quản lý CSDLPT: chọn hạt thô giảm chi phí quản lý mục liệu, trái lại chọn hạt mịn cho phép nhiều giao dịch thực song song Xác suất để giao dịch có yêu cầu truy xuất mục liệu với hệ thống hạt mịn nhỏ chọn hệ thống hạt thô  Việc lựa chọn kích thước mục liệu phụ thuộc vào thao tác điển hình giao dịch CSDL:  Nếu thao tác điển hình đọc ghi quan hệ qua mục: ta chọn làm mục liệu  Nếu thao tác điển hình kết nối quan hệ, ta chọn quan hệ làm mục liệu (vì phải truy xuất tất quan hệ cho phép kết nối) Khái niệm đặt khóa (locking)  Sự đặt khóa (cịn gọi khóa chốt, hay locking) mục liệu việc hệ thống trao quyền truy xuất mục liệu cho giao dịch, thu hồi lại quyền  Ký hiệu LOCK A mục liệu A trao quyền truy xuất cho giao dịch  Ký hiệu UNLOCK A mục liệu A thu hồi quyền truy xuất giao dịch  Có thể phân chia đặt khóa thành hai loại:  Khóa đọc (Read Lock): RLOCK A: Chỉ cho phép giao dịch đọc mục liệu A, mà khơng phép ghi A  Khóa ghi (Write Lock): WLOCK A: Cho phép giao dịch đọc ghi mục liệu A  Tại thười điểm, có tập mục liệu bị khóa Bộ quản lý khóa lưu trữ khóa hành “bảng khóa”, tập sau: Lock table = {(I , L , T)} _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 42 Trong đó, bảng gồm thành phần I, L, T với ý nghĩa sau: Giao dịch T đặt khóa L (với L khóa RLOCK WLOCK ) mục liệu I Như khóa L không gắn với giao dịch T, mà gắn với mục liệu I 3.1.3 Các lịch biểu giao dịch phân tán Các khái niệm Lịch biểu giao dich phân tán (Schedule)  Lịch biểu cho tập giao dịch thứ tự (các bước) thực thao tác (như đặt khóa, đọc, ghi ) giao dịch CSDL phân tán Kết lịch biểu kết cập nhật vào CSDL sau thực giao dịch theo lịch biểu  Lịch biểu gọi tất bước thao tác giao dịch xảy liền Lịch biểu cho kết mong muốn (kết đúng)  Lịch biểu gọi khả bước giao dịch khác thực xen kẽ nhau, cho kết kết lịch biểu (kết đúng)  Lịch biểu gọi bất khả bước giao dịch khác thực xen kẽ nhau, cho kết khác với kết lịch biểu (kết sai) Thí dụ 3.1: Giả sử có giao dịch T1 T2, thực thao tác theo chương trình P sau:: P: T1: Read A; A := A - 10; Write A; Read B; B := B +10; Write B; T2: Read B; B := B -20; Write B; Read C; C := C +20; Write C; Xét lịch biểu giao dịch T1 T2: (a) T1 T2 READ A (b) T1 T2 READ A A := A-10 T1 A := A-10 A := A-10 READ B READ B B := B-20 B := B+10 WRITE A WRITE A WRITE B B := B-20 WRITE B READ B WRITE B WRITE C Hình 3.1 WRITE B READ C B := B+10 B := B+10 READ C C := C+20 READ B READ B B := B-20 T2 READ A READ B WRITE A (c) READ C C := C+20 WRITE B WRITE B C := C+20 WRITE C WRITE C Các lịch biểu (a), (b) (c) hai giao dịch T1, T2 Các giao dịch T1 T2 hiểu dịch vụ chuyển tiền tài khoản A, B C, cụ thể A chuyển 10 (đơn vị tiền), B chuyển 10 C nhận 20 Với lịch biểu tổng A + B + C khơng đổi trước sau thực giao dịch Chẳng hạn, ban đầu A = B = C =100, sau thực lịch biểu cho giao dịch, kết CSDL là: A= 90, B = 90, C = 120, tổng A + B + C trước sau _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 43 thực giao dịch 300, nguyên tắc cốt lõi dịch vụ chuyển tiền tài khoản hệ thống ngân hàng Trong lịch biểu trên: (a) Là lịch biểu tuần tự, kết là: A:= A – 10 ; B: = B – 10; C := C + 20 ( tổng A + B + C = 300) (b) Là lịch biểu khả , cho kết lịch biểu (a), ( tổng A + B + C = 300) (c) Là lịch biểu bất khả tuần tự: cho kết A:= A – 10 ; B: = B + 10; C := C + 20, khác với kết lịch biểu (a), tổng A + B + C = 320, tăng thêm 20, điều thật nguy hiểm cho ngân hàng!! (do T1 ghi giá trị B := B+10 = 110, ghi đè lên kết B:= B – 20 = 80 mà T2 ghi trước đó, cuối có: A = 90, B = 110, C = 120!) Kết luận: Điều khiển tương tranh giao dịch phân tán tìm lịch biểu khả cho tập giao dịch, nhằm tăng khả xử lý song song cho hệ thống, ngăn chặn việc phát sinh lịch biểu bất khả 3.2 Điều khiển tương tranh đặt khóa Mở đầu: Điều khiển tương tranh đặt khóa việc sử dụng bảng khóa cho mục liệu tập giao dịch để ngăn chặn việc phát sinh lịch biểu bất khả Chúng ta phân biệt mơ hình khóa tổng qt mơ hình khóa phân biệt đọc / ghi (RLOCK/WLOCK) 3.2.1 Mơ hình khóa tổng qt 3.2.1.1 Thí dụ phát sinh lịch biểu bất khả Thí dụ 3.2 Xét giao dịch T1 T2 cần truy xuất mục liệu A (A có giá trị nguyên), cộng thêm vào A Hai giao dịch bước thực chương trình P đây: P: READ A; A := A+1 ; WRITE A Khi giao dịch T1 hay T2 thực hiện, đọc A vào vùng đệm nó, cộng thêm vào giá trị A, ghi kết vào mục liệu A CSDL kết thúc giao dịch Giả sử giá trị ban đầu A 5, hoạt động T1 T2 theo chương trình P mơ tả hình sau: Thứ tự (steps) T1 T2 READ A READ A A:= A+1 A:= A+1 WRITE A WRITE A A CSDL 5 A vùng đệm T1 5 A vùng đệm T2 NULL 6 6 6 NULL 6 Hình 3.2 Hoạt động giao dịch T1 T2 Nếu giao dịch T1 T2 thực theo lịch biểu tuần tự, giao dịch cộng thêm vào A, A phải tăng thêm 2, theo bước lịch biểu kết A _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 44 tăng thêm 1, kết không mong muốn (kết sai) Hãy tưởng tượng A số vé máy bay bán, kết sai thật nguy hiểm! Lịch biểu tự phát sinh giao dịch T1 T2 hoạt động tương tranh giao dịch T1 T2 mục liệu A khơng kiểm sốt, lịch biểu bất khả 3.2.1.2 Điều khiển tương tranh khóa Điều khiển tương tranh khóa việc hóa hoạt động tương tranh việc đặt khóa, mơ tả sau: Mỗi giao dịch trước truy xuất mục liệu A phải làm thủ tục đặt khóa A (LOCK A), sau hồn thành thao tác hủy bỏ việc đặt khóa A (UNLOCK A), mục liệu A giải phóng giao dịch khác lại đặt khóa A Trở lại thí dụ trên, cung cấp khóa (tổng quát) cho A, trước truy xuất A, giao dịch phải khóa A (LOCK A), sau thực xong thao tác, giao dịch mở khóa cho A (UNLOCK A) Trong giao dịch LOCK A, không giao dịch truy xuất A khơng thể phát sinh lịch biểu khơng Thí dụ 3.3 Áp dụng việc đặt khóa cho giao dịch thí dụ 1, chương trình thực cho T1 T2 thí dụ sửa đổi sau: P*: LOCKA ; READ A; A := A+1 ; WRITE A ; UNLOCK A Sơ đồ hoạt động T1 T2 theo chương trình P* mơ tả hình sau: Thứ tự (steps) LOCK A A CSDL A vùng đệm T1 A vùng đệm T2 NULL READ A 5 # A:= A+1 # WRITE A 6 # UNLOCK A 6 # T1 T2 LOCK A NULL READ A # A:= A+1 # WRITE A # 10 UNLOCK A # Hình 3.3 Hoạt động giao dịch T1 T2 có đặt khóa Do có đặt khóa, giao dịch khơng thể tiến triển tự do, mà giao dịch T2 phải chờ giao dịch T1 thực xong UNLOCK A T2 truy cập A Như nhờ việc đặt khóa tổng quát, cấc giao dịch tự động phát sinh lịch biểu tuần tự, sau T1 T2 thực xong lịch biểu này, mục liệu A CSDL có giá trị (kết đúng) _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 45 3.2.2 Một số tình xung đột khóa 3.2.2.1 Tình khóa sống (live lock) Một tình khơng mong muốn xảy việc đặt khóa giao dịch T khơng nhận khóa mà yêu cầu mục liệu Chẳng hạn, với thí dụ 2, giả sử T1 giải phóng mục liệu A (UNLOCK A), khóa trao cho T2, nhiên xảy tình T2 chờ nhận khóa A, giao dịch khác T3 đặt khóa A, sau T3 lại T4 v.v giao dịch T2 khơng nhận khóa A, có hội để nhận Tình gọi “khóa sống” (live-lock) Một chiến lược để tránh “:khóa sống” hệ thống phải ghi nhận tất yêu cầu đặt khóa mục dũ liệu A, A UNLOCK phải trao khóa cho giao dịch số giao dịch có yêu cầu đặt khóa A Đó nguyên tắc “xếp hàng”: đến trước phục vụ trước 3.2.2.2 Tình khóa chết (hay tắc nghẽn | dead- lock) Một tình nghiêm trọng xảy ra: Hai giao dịch có yêu cầu truy xuất số mục liệu, giao dịch phải chờ giao dịch UNLOCK mục liệu cần truy cập để thực tiếp thao tác, không giao dịch tiến triển Thí dụ 3.4 Giả sử có giao dịch T1 T2 đồng thời thực theo chương trình sau: T1: LOCK A ; LOCK B ; UNLOCK A ; UNLOCK B T2: LOCK B ; LOCK A ; UNLOCK B ; UNLOCK A (Chú ý T1 T2 thực tác vụ khác A B) Giả sử T1 T2 thực thời điểm mà A B khơng bị đặt khóa T1 yêu cầu trao khóa A, T2 yêu cầu trao khóa B, sau T1 yêu cầu trao khóa B, phải chờ T2 giải phóng khóa này, T2 yêu cầu LOCK A, phải chờ T1 giải phóng khóa này, giao dịch phải chờ giao dịch giải phóng khóa mục liệu cần truy cập, kết hai giao dịch tiến triển Đã xảy tình trạng tắc nghẽn (hay dead-lock) giao dịch Để khắc phục dead lock, giao dịch phải bị hủy bỏ, khởi động lại sau giao dịch thực xong, tức thực lịch biểu cho giao dịch 3.2.2.3 Tình tắc nghẽn tồn cục Tình trạng tắc nghẽn trở nên trầm trọng xảy với tập giao dịch tập mục liệu  Kí hiệu: Ti  Tj biểu diễn quan hệ chờ đợi : “giao dịch Ti chờ giải phóng khóa đặt Tj” Chẳng hạn, tình thí dụ biểu diễn tập quan hệ chờ đợi: { T2  T1 ; T1  T2 } _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 46  Đồ thị chờ đợi toàn cục cho tập giao dịch: đồ thị G có hướng, đỉnh gán nhãn giao dịch, cung xác định sau: từ Ti có cung đến Tj giao dịch Ti chờ giải phóng khóa đặt Tj, tức có quan hệ chờ đợi: Ti  Tj  Nếu đồ thị đợi có chu trình: có tắc nghẽn tồn cục  Khắc phục tắc nghẽn toàn cục: hủy bỏ giao dịch tham gia vào chu trình, khởi động lại giao dịch sau giao dịch chu trình cũ thực Thí dụ 3.5 a) Chẳng hạn, với giao dịch thí dụ 3, ta có đồ thị đợi: T1 T2 Hình 3.4 Đồ thị đợi cho giao dịch đặt khóa tổng quát Đồ thị có chu trình, xảy tắc nghẽn, để khắc phục tắ nghẽn, ta hủy bỏ giao dịch khởi động lại sau giao dịch hoàn thành b) Dưới đồ thị đợi toàn cục cho giao dịch: T1 T4 T5 T2 T3 T6 Hình 3.5 Đồ thị đợi tồn cục cho giao dịch Các giao dịch T1, T2, T3, T4 làm thành chu trình, xảy tắc nghẽn tồn cục Để khắc phục tắc nghẽn, ta hủy bỏ giao dịch số giao dịch T1, T2, T3, T4, khởi động lại sau giao dịch cịn lại chu trình cũ thực 3.2.3 Mơ hình khóa có phân biệt đọc / ghi Ở phần trên, ta giả sử giao dịch khóa mục liệu A (LOCK A) tồn quyền đọc ghi Tuy nhiên, thực tế có giao dịch truy xuất A để đọc giá trị A, không cần ghi A Nếu phân biệt giao dịch đọc (Read only) giao dịch đọc ghi (read/write) việc sử dụng khóa có phân biệt đoc/ghi cho điều khiển hiệu so với mơ hình khóa tổng qt Trong mơ hình khóa có phân biệt đọc/ ghi, có loại khóa: RLOCK (khóa đọc), WLOCK (khóa đọc/ghi) UNLOCK (mở khóa cho mục dũ liệu) Các giao dịch đặt khóa sau :  Khóa đọc (Read Lock: RLOCK): giao dịch T muốn đọc mục liệu A, T đặt khóa RLOCK A, giao dịch T đọc liệu A, giao dịch khác không ghi vào A, phép đọc A _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 47  Khóa ghi (Write Lock: WLOCK): khóa có ý nghĩa khóa tổng quát Khi giao dịch T đặt khóa WLOCK A, khơng giao dịch thực thao tác A, tức giao dịch khác khơng thể đặt khóa A (RLOCK WLOCK) Chỉ A UNLOCK giao dịch T, giao dịch khác phép đặt khóa (truy cập) A  UNLOCK: giao dịch thực xong thao tác A, đặt khóa UNLOCK để giải phóng mục liệu này, cho phép giao dịch khác truy cập Rõ ràng với mơ hình khóa đọc/ghi tăng hiệu xử lý tương tranh (đồng thời) giao dịch giảm tắc nghẽn Ta xem xét thí dụ sau : Thí dụ 3.6 Trong thí dụ 3, giả sử giao dịch T1 T2 đọc ghi liệu A, giao dịch đọc liệu B Áp dụng mơ hình khóa đọc/ ghi cho giao dịch này, ta có chương trình cho giao dịch: T1: WLOCK A ; RLOCK B ; UNLOCK A ; UNLOCK B T2: RLOCK B ; WLOCK A ; UNLOCK B ; UNLOCK A Đồ thị đợi toàn cục là: T1 T2 Hình 3.6 Đồ thị đợi cho giao dịch đặt khóa đọc/ ghi Đồ thị khơng có chu trình, khơng có tình trạng khóa chết, khơng xảy tắc nghẽn, T1 tiến triển bình thường, T2 thực RLOCK B, chờ T1 thực UNLOCK A, sau hai giao dịch tiến triển kết thúc Lịch biểu thực giao dịch khả 3.3 ĐIỀU KHIỂN TƯƠNG TRANH BẰNG THỜI DẤU Mở đầu: Một cách tiếp cận khác cho việc điều khiển tương tranh đặt cho giao dịch ‘nhãn thời gian’ (thời dấu: Time-Stamps) Tùy theo thời dấu giao dịch mà hệ thống cho phép giao dịch thực hay hủy bỏ Cũng với mơ hình điều khiển đặt khóa, ta có hai mơ hình điều khiển thời dấu: mơ hình tổng qt mơ hình phân biệt đọc/ghi 3.3.1 Các khái niệm 3.3.1.1 Thời dấu giao dịch Khi giao dịch khởi động, gán số hiệu hệ thống gọi thời dấu (hay nhãn thời gian: Time Stamps) Thời dấu giao dịch định việc cho phép giao dịch thực thao tác truy cập liệu (read/write), hay hủy bỏ giao dịch Như vậy, sử dụng thời dấu để điều khiển hoạt động tương tranh giao dịch CSDLPT Việc tạo thời dấu cho giao dịch hệ thống phân tán việc khó khăn Thường có hai cách tiếp cận: _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 48  Cách tiếp cận tập trung: tạo thời dấu từ đệm toàn cục, quản lý trạm Cách đơn giản lại phải truy cập phân tán để khởi đầu việc thực giao dịch  Cách tiếp cận phân tán: trạm đặt thời dấu cách tự trị theo đồng hồ địa phương (bộ đếm cục bộ) số hiệu trạm Một giao dịch khởi động trạm thứ i, thời điểm t theo đồng hồ trạm đó, gán thời dấu Một số bít cuối nhãn thời gian dùng để xác định số hiệu trạm, chẳng hạn, có khơng q 256 trạm, ta cẩn bit đủ để xac định số hiệu trạm 3.3.1.2 Vấn đề đồng hóa đồng hồ Với cách tiếp cận phân tán, cần phải đồng hóa đồng hồ (bộ đếm) trạm Vấn đề giải cách: trạm j nhận thông báo giao dịch từ trạm i với thời dấu trạm gửi , thông báo mang thời dấu ti lớn giá trị đồng hồ trạm nhận tj , trạm nhận điều chỉnh đồng hồ thời dấu nhận cộng thêm 1, (tj := ti +1) chấp nhận thực giao dịch Nếu giá trị đồng hồ trạm j lớn thời dấu trạm gửi, trạm j giữ nguyên giá trị đồng hồ nó, hủy bỏ giao dich từ trạm i thông báo cho trạm i thời gian tj +1 Như vậy, cách gửi thông báo trạm, đồng hồ trạm đồng hóa Vì vậy, phần sau, ta giả sử thời dấu có giá trị tồn cục hệ thống 3.3.1.3 Thời dấu mục liệu Mỗi mục liệu gán thời dấu Có thể phân biệt hai loại thời dấu cho mục liệu: thời dấu tổng quát thời dấu phân biệt đọc ghi Thời dấu tổng quát: Mỗi mục liệu gán thời dấu thời dấu cao giao dịch truy cập nó, khơng phân biệt thao tác giao dịch (đọc hay ghi) Thời dấu phân biệt đọc ghi: Thời dấu mục liệu phân loại theo thao tác giao dịch truy cập gán thời dấu cho - Nếu giao dịch T có thời dấu t, đọc liệu A A có thời dấu đọc RT = t - Nếu giao dịch T có thời dấu t, đọc ghi A ta nói A có thời dấu ghi WT = t 3.3.2 Điều khiển tương tranh thời dấu Có hai mơ hình điều khiển tương tranh thời dấu, tùy thuộc loại thời dấu mục liệu thời dấu tổng quát hay thời dấu có phân biệt đọc/ghi 3.3.2.1 Mơ hình thời dấu tổng quát Giả sử giao dịch T có thời dấu t1, truy cập mục liệu A có thời dấu t 2, quy tắc điều khiển tương tranh sau:  Nếu t > t2 : giao dịch T thực (đọc ghi) A  Nếu t1 < t2 : giao dịch T bị hủy bỏ, khơi phục với thời dấu lớn t2 _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 49 Thí dụ 3.7 Xét giao dịch T1 T2 truy cập mục liệu A để thực thao tác theo lịch biểu đây, thời dấu của giao dịch mục liệu cho bảng sau: Các giao dịch Thời dấu ban đầu Bước (1) (2) (3) (4) T1 160 READ A T2 150 READ A A := A+1 WRITE A Mục liệu A 160 T2 bị hủy 160 160 Hình 3.7 Lịch biểu giao dịch mơ hình thời dấu tổng qt Trong thí dụ trên, T2 bị hủy có thời dấu nhỏ thời dấu mục dũ liệu A, T2 khởi động lại với thòi dấu lớn 160 Mơ hình điều thời dấu có phân biệt đoc/ ghi cho điều khiển “mịn” hiệu 3.3.2.2 Mơ hình thời dấu phân biệt đọc/ghi Với mơ hình này, mục liệu A gán hai giá trị thời dấu đọc (RT) thời dấu ghi (WT) Khởi đầu, mục liệu gán thời dấu đọc ghi bảng không, để đảm bảo giao dịch truy cập thực thao tác bất kỳ, sau gán giá trị thời dấu đọc RT và/ thời dấu ghi WT với giá trị thời dấu cao giao dịch gần đọc hay ghi lên Quy tắc điều khiển tương tranh mơ hình thời dấu đọc/ghi phát biểu sau: Giả sử giao dịch T có thời dấu t muốn thực thao tác X (X = Read Write) mục liệu A có thời dấu đọc RT = tR thời dấu ghi WT = tW, đó: Giao dịch T thực X = Read t > tW t < tR Giao dịch T thực X = Write t > tR , t > tW Giao dịch T bị hủy bỏ X = Read t < tW , X = Write t < tR Giao dịch T được tiến triển khơng thực X = Write tR < t < tW (T không làm thay đổi mục liệu) Khi giao dịch bị hủy bỏ, khởi động lại với thời dấu lớn thời dấu mục liệu nhờ thông báo từ trạm chứa mục liệu tới trạm yêu cầu giao dịch Thí dụ 3.8 Xét lại thí dụ trên, với mơ hình thời dấu đọc/ghi Giả sử mục dữ liệu A có thời dấu ban đầu RT = WR = 0, giao dịch T1 T2 có thời dấu 160 150, thực thao tác theo lịch biều sau: Các giao dịch Thời dấu ban đầu Bước (1) (2) (3) (4) T1 160 READ A T2 150 READ A A := A+1 WRITE A Mục liệu A RT = WT = RT = 160 RT = 160 WT = 160 WT = 160 Hình 3.8 Lịch biểu giao dịch mơ hình thời dấu đọc/ ghi _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 50 Trong thí dụ này, không giao dịch bị hủy bỏ, điều khiển tương tranh thời dấu có phân biệt đọc ghi hiệu mơ hình thời dấu tổng quát Thí dụ 3.9 Xét giao dịch lịch biểu Giao dịch T1 có thời dấu 200, T2 có thời dấu 150, T3 có thời dấu 175 thực truy xuất mục liệu A, B C có cácthời dấu ban đầu RT = WR = 0, Các giao dịch T1 T2 T3 Thời dấu ban đầu t1 = 200 t2 = 150 t3 = 175 Bước (1) READ B (2) A B RT=WT=0 RT=WT=0 RT=WT=0 RT = 200 READ A (3) RT = 150 READ C (4) WRITE B (5) WRITE A (6) C RT = 175 WT = 200 WT = 200 T2 không ghi C WRITE C (7) WRITE A T3 ghi A Hình 3.9 Lịch biểu giao dịch mơ hình thời dấu đọc/ ghi Trong thí dụ này:  giao dịch T1 thực  Giao dịch T2 bị hủy bỏ thao tác (6): WRITE C không ghi C (do : t2 < RT(C), vi phạm quy tắc thời dấu )  Giao dịch T3 không bị hủy bỏ khơng ghi lên A : RT(A) < t3 < WT(A) Kết luận: Điều khiển tương tranh thời dấu cho phép giao dịch tiến triển tự do, chừng khơng vi phạm thứ tự giao dịch thời dấu Những xung đột dẫn đến thực thi bất khả phát điểu khiển đơn giản việc hủy bỏ giao dịch vi phạm, khởi động lại với thời dấu lớn Nhược điểm cách tiếp cận số giao dịch hủy bỏ tái khởi động lớn có mức tương tranh cao, điều làm tăng cho phí quản lý giao dịch phân tán 3.4 HỢP THỨC HĨA CÁC GIAO DỊCH PHÂN TÁN 3.4.1 Mục đích hợp thức hố Một giao dịch phân tán (tồn cục) thực tập hợp giao dịch (các giao dịch thành phần, giao dịch cục bộ) trạm Mục đích hợp thức hóa đảm bảo tính ngun tố giao dịch tồn cục: giao dịch thực mức toàn cục (khi tất giao dịch cục hợp thức), có nghĩa tích hợp thực cập nhật vào CSDL, giao dịch bị huỷ bỏ (khi có giao dịch cục chưa hợp thức), _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 51 Một cách tiếp cận trực tiếp ngây thơ để hợp thức giao dịch phân tán, xem giao dịch thành phần giao dịch cục trạm hợp thức hóa độc lập với giao dịch cục khác Tuy nhiên theo cách số giao dịch cục có thể hợp thức hóa giao dịch khác lại bị hủy bỏ Như cách tiếp cận vi phạm điều kiện tính nguyên tố giao dịch phân tán, khơng có đồng giao dịch cục tham gia vào giao dịch toàn cục Người ta đưa giải pháp sử dụng giao thức hợp thức hóa hai giai đoạn hay giao thức hợp thức hóa hai phase, thực trạm tham gia vào giao dịch toàn cục điều khiển trạm phân công làm trạm điều phối 3.4.2 Giao thức hợp thức hóa hai giai đoạn Giao thức hợp thức hóa hai gia đoạn (hay hợp thức hóa hai pha: two-phases commit protocol) gồm hai giai đoạn sau: Phase Giai đoạn chuẩn bị: trạm điều phối yêu cầu trạm tham gia chuẩn bị cho hợp thức hóa Phase Giai đoạn hợp thức : Trạm điều phối lệnh cho tất trạm tham gia hợp thức hoá cập nhật vào CSDL, tất trạm hoàn thành phase huỷ bỏ tất giao dịch sau thời gian trễ Mỗi trạm thực giao dịch gọi trạm tham gia Trạm điều phối trạm tham gia, đóng hai vai trị Giao thức hợp thức hố phase đảm bảo tất trạm tham gia hợp thức hố huỷ bỏ tất Vì đảm bảo tính ngun tố giao dịch tồn cục Quyết định tồn cục hợp tác hố giao dịch T huỷ bỏ trạm điều phối đưa sau giai đoạn Mô tả trình hợp thức hóa hai giai đoạn: Trong thực giao thức, trạng thái khác trạm điều phối trạm tham gia ghi vào nhật ký để có cố, thủ tục phục hồi tiếp tục phase cần thiết giao thức  Đầu tiên, trạm điều phối khởi phát giai đoạn “chuẩn bị” việc gửi thông báo “chuẩn bị” cho trạm tham gia Nhận thông báo này, trạm tham gia thực thao tác đảm bảo cho hợp thức hay hủy bỏ giao dịch xảy cố Nếu trạm tham gia có khả hợp thức, gửi lại thong báo “Sẵn sàng” cho trạm điều phối, trường hợp ngược lại gửi thông báo “:không sẵn sàng”  Sau khỏng thời gian quy định, trạm điều phối nhận thông báo sẵn sàng từ tất trạm tham gia, thơng báo “quyết định hợp thức hóa” cho tất tram Trường hợp trái lại có trạm gửi thơng báo khơng sẵn sàng, thời hạn quy định (time-out) mà không gửi thơng báo, trạm điều phối định toàn cục tới tất trạm “Hủy bỏ hợp thức hóa” Nhận định tồn cục, trạm tham gia đồng loạt hợp thức hóa hay hủy bỏ hợp thức hóa, thơng báo cho trạm điều phối kết thúc công việc _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 52 Sơ đồ hợp thức hố phase: Hình 3.10 Phase giao thức hợp thức hóa phase Hình 3.11 Phase giao thức hợp thức hóa phase 3.4.3 Một số kịch hợp thức hóa Ta trình bày số tình xảy q trình hợp thức hóa hệ thống phân tán gồm trạm điều phối, trạm tham gia S1, S2 Kịch 1: Giao dịch bình thường  hợp thức hóa Hình 3.12 Hợp thức hóa bình thường _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 53 Kịch 2: Hỏng hóc S2 trước sẵn sàng  huỷ giao dịch Hình 3.13 Giao dịch bị hủy bỏ Kịch 3: Hỏng hóc S2 sau sẵn sàng khơi phục Hợp thức hố sau S2 hoạt động Hình 3.14 Hỏng hóc khơi phục, hợp thức hóa _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 54 Kịch 4: Hỏng hóc trạm điều phối nhận tín hiệu sẵn sàng Q trình hợp thức hóa sau điều phối hoạt động Hình 3.14 Hỏng hóc trạm điều phối khơi phục, hợp thức hóa Kết luận: Giao thức hợp thức hố phase đảm bảo tính nguyên tố giao dịch toàn cục chống lại số kiểu hỏng hóc, trừ hỏng hóc “thảm họa” Đây mơ hình hợp thức đơn giản Với hệ thống phức tạp yêu cầu có độ an tồn cao ta có giao thức hợp thức hoá phase [5] _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 55 BÀI TẬP CHƯƠNG Trình bày khái niệm giao dịch, giao dịch phân tán, tính nguyên tố giao dịch phân tán Thế mục liệu Trình bày khái niệm lịch biểu tuần tự, khả bất khả tuần tự? Trình bày quy tắc điều khiển tương tranh việc đặt khố (locking): mơ hình khóa tổng qt mơ hình phân biệt khố đọc, khố ghi Thế tình trạng khố chết (dead lock) tập giao dịch phân tán, cách khắc phục? Trình bày quy tắc điều khiển tương tranh thời dấu, truờng hợp tổng quát trường hợp phân biệt thao tác đọc / ghi giao dịch phân tán Trình bày giao thức hợp thức hoá phase cho giao dịch phân tán Giao thức hợp thức hóa phase cho giao dịch phân tán nhằm mục đích gì? Có hai giao dịch T1 , T2 truy xuất mục liệu A theo lịch biểu Các thời dấu giao dịch thời dấu đọc/ghi ban đầu mục liệu cho bảng Các giao dịch cộng thêm giá trị vào mục liệu thực thao tác WRITE Thời dấu Thứ tự : (1) (2) (3) (4) (5) (6) T1 150 READ A T2 160 A=5 RT = WT = READ A A := A+1 A := A+2 WRITE A WRITE A a/ Hãy xác định thời dấu mà mục liệu A gán sau bước (ghi vào cột cuối cùng, sau bước) b/ Giả sử giá trị ban đầu A = 5, sau bước (6) giá trị A bao nhiêu? c/ Trong giao dịch trên, có giao dịch bị hủy bỏ không?, sao? d/ Viết lịch biểu cho giao dịch, tính giá trị lưu trữ mục liệu kết thúc lịch biểu Lịch biểu cho ban đầu có phải lịch biểu khả khơng? Cũng hỏi tập 6, với giả thiết thời dấu ban đầu giao dịch T1 180, cịn thời dấu T2 160 Có ba giao dịch T1 , T2 , T3 truy xuất mục liệu A, B C theo lịch biểu Các thời dấu giao dịch thời dấu đọc/ghi ban đầu mục liệu cho bảng Giả sử mục liệu có giá trị ban đầu 5, giao dịch cộng thêm vào mục liệu thực thao tác WRITE Thời dấu Thứ tự : (1) (2) (3) (4) (5) (6) (7) T1 40 T2 30 READ A T3 50 A=5 RT=WT=0 B=5 RT=WT=0 C=5 RT=WT=0 WRITE A READ C WRITE C WRITE A READ B WRITEB _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 56 a/ Trong lịch biểu trên, thao tác không thực đựoc giao dịch bị huỷ bỏ? Tại sao? b/ Viết lịch biểu cho giao dịch, tính giá trị lưu trữ mục liệu kết thúc lịch biểu c/ Viết lịch biểu khả cho giao dịch, tính giá trị lưu trữ mục liệu kết thúc lịch biểu Cũng hỏi tập 8, với giả thiết ba giao dịch T1 , T2 T3 gán thời dấu 200, 250 300 10 Có ba giao dịch T1 , T2 , T3 truy xuất mục liệu A, B C theo lịch biểu Các thời dấu giao dịch thời dấu đọc/ghi ban đầu mục liệu cho bảng Giả sử mục liệu có giá trị ban đầu 10, giao dịch cộng thêm vào mục liệu thực thao tác WRITE Thời dấu Thứ tự: (1) (2) (3) (4) (5) (6) (7) T1 70 T2 50 T3 60 READ A A = 10 RT = WT= B =10 RT = WT= C = 10 RT = WT= WRITE A READ C WRITE C WRITE A READ B WRITE B a/ Trong lịch biểu trên, thao tác không thực đựoc giao dịch bị huỷ bỏ? Tại sao? b/ Viết lịch biểu cho giao dịch, tính giá trị lưu trữ mục liệu kết thúc lịch biểu c/ Viết lịch biểu khả cho giao dịch, tính giá trị lưu trữ mục liệu kết thúc lịch biểu 11 Bài tập trắc nghiệm: Trong câu hỏi đây, chọn pương án trả lời (tơ đầy hình tròn ứng với phương án chọn): 11.1 Quản lý giao dịch phân tán khóa phân biệt đọc/ghi (RLOCK / WLOCK) nhằm mục đích:  (A) Xắp xếp giao dịch theo lịch biểu khả  (B) Làm tăng khả xử lý song song cho CSDL phân tán  (C) Tất câu trả lời A B  (D) Tất câu trả lời A B sai 11.2 Quản lý giao dịch phân tán thời dấu tổng quát (không phân biệt đọc/ghi) nhằm mục đích:  (A) Xắp xếp giao dịch theo lịch biểu  (B) Làm tăng khả xử lý song song cho hệ thống phân tán  (C) Tất câu trả lời A B  (D) Tất câu trả lời A B sai 11.3 Một giao dịch T có thời dấu t1 truy cập mục liệu A có thời dấu t2, đó:  (A) T khơng thể đọc A, t2 thời dấu ghi, t2 > t1  (B) T đọc A, t2 thời dấu đọc, t2 > t1  (C) Tất câu trả lời A B sai  (D) Tất câu trả lời A B _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 57 11.4 Một giao dịch T có thời dấu t1 truy cập mục liệu A có thời dấu t2, đó:  (A) T khơng thể ghi A, t2 thời dấu ghi, t2 > t1  (B) T ghi A, t2 thời dấu đọc, t2 < t1  (C) Tất câu trả lời A B sai  (D) Tất câu trả lời A B 11.5 Có giao dịch T1, T2, T3 có thời dấu 10, 30, 20 Các giao dịch xuất mục liệu A để thực tập thao tác: {READ A; A:= A+1; WRITE A} Giả sử mục liệu A có thời dấu đọc/ghi ban đầu RT= WT= Khi đó:  (A) Giao dịch T1 bị huỷ bỏ  (B) Giao dịch T2 bị huỷ bỏ  (C) Giao dịch T3 bị huỷ bỏ  (D) Khơng có giao dịch bị huỷ bỏ 11.6 Có giao dịch T 1, T2, T3 truy xuất mục liệu A để thực thao tác: {LOCK A; READ A; A:= A+1; WRITE A; UNLOCK A} Giả sử mục liệu A có giá trị 3, sau giao dịch kết thúc, A có giá trị là:  (A) A =  (B) A =  (C) A =  (D) Tất câu trả lời sai 11.7 Có giao dịch T1, T2, T3 có thời dấu 10, 20, 30 Các giao dịch truy xuất mục liệu A để thực tập thao tác: {READ A; A:= A+1; WRITE A} Giả sử mục liệu A có thời dấu đọc/ghi ban đầu RT= WT = 40, có giá trị ban đầu Khi kết thúc giao dịch, A có giá trị:  (A) A =  (B) A =  (C) A =  (D) Tất câu trả lời sai 11.8 Có giao dịch T1, T2, T3 có thời dấu 20, 40, 30 Các giao dịch truy xuất mục liệu A để thực tập thao tác: {READ A; A:= A+1; WRITE A} Giả sử mục liệu A có thời dấu đọc/ghi ban đầu RT = WT = 40, có giá trị ban đầu Khi kết thúc giao dịch, A có giá trị:  (A) A =  (B) A =  (C) A =  (D) Cả phương án sai 11.9 Giao thức hợp thức hoá hai pha cập nhật giao dịch phân tán nhằm mục đích:  (A) Đảm bảo cho tất giao dịch cục hợp thức hóa hủy bỏ  (B) Đảm bảo tính nguyên tố cho giao dịch phân tán  (C) Tất câu trả lời A B sai  (D) Tất câu trả lời A B 11.10 Giao thức hợp thức hoá hai pha cập nhật giao dịch phân tán nhằm mục đích gì:  (A) Đảm bảo cho giao dịch phân tán luôn hợp thức thành công  (B) Đảm bảo tính nguyên tố cho giao dịch phân tán  (C) Tất câu trả lời A B sai  (D) Tất câu trả lời A B _ Bài giảng “Cơ sở liệu 2” | nvdinh@vnua.edu.vn 58

Ngày đăng: 08/09/2020, 18:16

Hình ảnh liên quan

3.2.1  Mô hình khóa tổng quát. - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

3.2.1.

Mô hình khóa tổng quát Xem tại trang 1 của tài liệu.
  Việc lựa chọn kích thước mục dữ liệu phụ thuộc vào các thao tác điển hình của các giao  dịch trong CSDL:  - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

i.

ệc lựa chọn kích thước mục dữ liệu phụ thuộc vào các thao tác điển hình của các giao dịch trong CSDL: Xem tại trang 3 của tài liệu.
Trong đó, mỗi bộ của bảng gồm 3 thành phần I, L, T với ý nghĩa như sau: Giao dịch T  được đặt một khóa L  (với L là khóa RLOCK hoặc WLOCK ) trên mục dữ liệu I - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

rong.

đó, mỗi bộ của bảng gồm 3 thành phần I, L, T với ý nghĩa như sau: Giao dịch T được đặt một khóa L (với L là khóa RLOCK hoặc WLOCK ) trên mục dữ liệu I Xem tại trang 4 của tài liệu.
Mở đầu:  Điều khiển tương tranh bằng đặt khóa là việc sử dụng một bảng khóa cho các mục dữ  liệu đối với một tập giao dịch để ngăn chặn việc phát sinh các lịch biểu bất khả tuần tự - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

u.

Điều khiển tương tranh bằng đặt khóa là việc sử dụng một bảng khóa cho các mục dữ liệu đối với một tập giao dịch để ngăn chặn việc phát sinh các lịch biểu bất khả tuần tự Xem tại trang 5 của tài liệu.
Sơ đồ hoạt động của T1 và T2 theo chương trình P* được mô tả trong hình sau:   Thứ tự  - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

Sơ đồ ho.

ạt động của T1 và T2 theo chương trình P* được mô tả trong hình sau: Thứ tự Xem tại trang 6 của tài liệu.
Hình 3.4. Đồ thị đợi cho 2 giao dịch đặt khóa tổng quát  - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

Hình 3.4..

Đồ thị đợi cho 2 giao dịch đặt khóa tổng quát Xem tại trang 8 của tài liệu.
Rõ ràng với mô hình khóa đọc/ghi thì sẽ tăng hiệu quả xử lý tương tranh (đồng thời) giữa các  giao dịch và giảm tắc nghẽn - CƠ SỞ DỮ LIỆU.Chương 3. Quản lý các giao dịch phân tán

r.

àng với mô hình khóa đọc/ghi thì sẽ tăng hiệu quả xử lý tương tranh (đồng thời) giữa các giao dịch và giảm tắc nghẽn 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

  • Đang cập nhật ...

Tài liệu liên quan