1. Trang chủ
  2. » Công Nghệ Thông Tin

QUẢN LÝ CÁC GIAO DỊCH PHÂN TÁN

17 469 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 190,19 KB

Nội dung

Chương QUẢN LÝ CÁC 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 quát 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 hoá 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 22 3.1 CÁC KHÁI NIỆM CƠ BẢN Mở đầu: Trong CSDLPT, 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, gây trục trặc cho hệ thống Như đặt vấn đề: cần phải quản lý giao dịch CSDLPT, 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 CSDLPT  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 toán cần thiết Đị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) CSDL thông qua vùng làm việc riêng giao dịch (private work space) Mỗi giao dịch thực thao tác tính toá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  Các giao dịch thực CSDLPT 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 Chẳng hạn: - Rút tiền máy ATM - Truy vấn tài khoản/chuyển tiền qua dịch vụ Internet banking - Mua vé/đặt chỗ máy bay (qua mạng) giao dịch phân tán  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 toàn giao dịch chưa thực (chưa commited, chưa ghi thay đổi vào CSDL) Tức giao dịch 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 nguyên tố giao dịch phân tán  Giao dịch quán CSDL: Mọi CSDL 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 quán, sau thực xong giao dịch, CSDL Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 23 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 (Thí dụ: nhập tuổi cha tuổi con, hay chuyển khoản tiền lớn số dư : 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 (finegrained) sử dụng mục liệu nhỏ, 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 Sự đặ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 24 Trong đó, gồm thành phần với ý nghĩa sau: Giao dịch T đặt khóa L (L  {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  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 CSDLPT 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 tương đương với kết lịch biểu  Một lịch biểu không tuần tự, cho kết khác với kết lịch biểu tuần tự, (kết không mong muốn) gọi lịch biểu bất khả Thí dụ 3.1: Xét giao dịch T1 T2, thực thao tác theo chương trình P đây: 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 cho giao dịch T1 T2: (a) T1 T2 READ A (b) T1 T2 READ A A := A-10 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 B READ C B := B+10 B := B+10 READ C C := C+20 READ B READ B B := B-20 READ C C := C+20 WRITE B WRITE B WRITE C T2 READ A READ B WRITE A (c) T1 C := C+20 WRITE C WRITE C Hình 3.1 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, 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 Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 25 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 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 Có thể thấy rằng, 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 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, ghi đè lên kết B mà T2 ghi trước đó) 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 QUẢN LÝ CÁC GIAO DỊCH PHÂN TÁN BẰNG ĐẶ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 quát mô hình khóa phân biệt đọc / ghi (RLOCK/WLOCK) 3.2.1 Mô hình khóa tổng quát 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 làm việc nó, cộng thêm vào A vùng làm việc 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: A CSDL 5 T1 READ A 5 A := A+1 6 WRITE A T2 READ A A := A+1 WRITE A A vùng làm việc T1 6 6 A vùng làm việc T2 5 6 Hình 3.2 Hoạt động giao dịch T1 T2 Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 26 Như vậy, giao dịch cộng thêm vào A, kết A tăng thêm mà A phải tăng thêm 2, giao dịch T1 T2 thực theo lịch biểu tuần tư (hãy tưởng tượng A số vé máy bay bán, kết sai thật nguy hiểm!) Vấn đề nảy sinh hoạt động tương tranh giao dịch T1 T2 tự phát sinh mục liệu A Đ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 hoà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 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: A CSDL 5 6 T1 READ A A:=A+1 WRITE A UNLOCK LOCK A 6 7 LOCK A READ A A:=A+1 WRITE A UNLOCK A T2 A A vùng 5 6 làm việc T1 A vùng 7 làm việc T2 Hình 3.3 Hoạt động giao dịch T1 T2 có đặt khóa Sau T1 T2 thực hiện, mục liệu A có giá trị CSDL (kết đúng) 3.2.2 Một số tình xung đột khóa Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 27 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 toà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 28  Đồ 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 toà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 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 toà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 toà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 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 thay đổi mục liệu Tuy nhiên, thực tế có giao dịch truy xuất A để đọc giá trị A, không thay đổi giá trị 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 quát Trong mô hình khóa có phân biệt đọc/ ghi, 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 thực RLOCK A, giao dịch T đọc liệu A, hệ thống ngăn không cho giao dịch khác ghi vào A, cho phép gia dịch khác đọc A Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 29  Khóa ghi (Write Lock: WLOCK): khóa có ý nghĩa khóa tổng quát Khi giao dịch T đặt WLOCK A, không giao dịch thực thao tác A, tức giao dịch khác đặt khóa (RLOCK WLOCK) A Chỉ A UNLOCK giao dịch T, giao dịch khác phép đặt khóa (truy cập) A 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ó cácchươ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ị chu trình, 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 QUẢN LÝ CÁC GIAO DỊCH PHÂN TÁN 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 quát 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 30  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 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ị toà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 t2, 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 31 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 T1 T2 Mục liệu A Thời dấu ban đầu 160 150 Bước (1) READ A (2) 160 READ A T2 bị hủy (3) A := A+1 160 (4) WRITE A 160 Hình 3.7 Lịch biểu giao dịch mô hình thời dấu tổng quát 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: Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 32 Các giao dịch T1 T2 Mục liệu A Thời dấu ban đầu 160 150 RT = WT = Bước (1) READ A RT = 160 (2) READ A RT = 160 (3) A := A+1 WT = 160 (4) WRITE A WT = 160 Hình 3.8 Lịch biểu giao dịch mô hình thời dấu đọc/ ghi 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 A Thời dấu ban đầu t1 = 200 t2 = 150 t3 = 175 RT=WT=0 RT=WT=0 RT=WT=0 Bước (1) READ B (2) B RT = 200 READ A (3) RT = 150 READ C (4) WRITE B (5) WRITE A (6) C RT = 175 WT = 200 WT = 200 WRITE C (7) WT = 150 WRITE 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ỏ vi phạm quy tắc thời dấu: t2 < RT(C)  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 Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 33 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 hoá Một giao dịch phân tán (toà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 nguyên tố giao dịch toà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), 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, đồ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 hoá phase đảm bảo tất trạm tham gia hợp thức hoá huỷ bỏ tất Vì đảm bảo tính nguyên tố giao dịch toàn cục Quyết định toàn cục hợp tác hoá 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 Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 34 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” Nếu 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 (time-out) quy định 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 toà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 Sơ đồ hợp thức hoá 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 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 Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 35 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 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ỏ Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 36 Kịch 3: Hỏng hóc S2 sau sẵn sàng khôi phục Hợp thức hoá sau S2 hoạt động Hình 3.14 Hỏng hóc khôi phục, hợp thức hóa Kịch 4: Hỏng hóc trạm điều phối nhận tín hiệu sẵn sàng Quá 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 hoá 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 toà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 37 BÀI TẬP CHƯƠNG Trình bày quy tắc điều khiển tương tranh việc đặt khoá (locking): mô hình khóa tổng quát mô hình phân biệt khoá đọc, khoá ghi Thế tình trạng khoá chết (dead lock) tập giao dịch phân tán, cách khắc phục? Thế 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 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 Bài giảng “Cơ sở liệu 2” - nvdinh@vnua.edu.vn 38

Ngày đăng: 04/11/2016, 11:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w