- Các khái niệm về Lịch biểu trong giao dịch phân tán (Schedule)
P: READ A; A:= A+ 1; WRIT EA
2.6.2.2. Mô hình thời dấu phân biệt đọc/gh
Với mô hình này, mỗi mục dữ liệu A được gán hai giá trị thời dấu đọc (RT) và thời dấu ghi (WT). Khởi đầu, các mục dữ liệu gán thời dấu đọc và ghi đều bằng không, đểđảm bảo rằng mọi giao dịch đầu tiên truy cập nó đều thực hiện được thao tác bất kỳ, sau đó nó sẽđược gán giá trị thời dấu đọc RT và/ hoặc thời dấu ghi WT bằng với giá trị thời dấu cao nhất của giao dịch gần nhất đọc hay ghi lên nó.
Quy tắc điều khiển tương tranh trong mô hình thời dấu đọc/ghi như sau:
Giả sử giao dịch T có thời dấu t muốn thực hiện thao tác X (X = Read hoặc Write) trên mục dữ liệu A có thời dấu đọc là RT = tRvà thời dấu ghi WT = tW, khi đó:
- Giao dịch T được thực hiện nếu X = Read và t > tW.
- Giao dịch T được thực hiện nếu X = Write và t > tR, t > tW
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 49
- Giao dịch T không bị hủy bỏ nếu X = Write và tR < t < tW. (quy tắc này cho phép giao dịch T được tiến triển nhưng thực chất không làm thay đổi mục dữ liệu).
Khi một giao dịch bị hủy bỏ, nó có thể được khởi động lại với thời dấu mới lớn hơn các thời dấu của mục dữ liệu nhờ một thông báo từ trạm chứa mục dữ 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ữ dữ liệu A có các thời dấu ban đầu RT = WR = 0, các giao dịch T1 và T2 có thời dấu lần lượt là 160 và 150, thực hiện các thao tác theo lịch biểu sau:
Các giao dịch T1 T2 Mục dữ liệu A Thời dấu ban đầu 160 150 RT = WT = 0 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 của 2 giao dịch trong mô hình thời dấu đọc/ ghi
Trong thí dụ này, không giao dịch nào bị hủy bỏ, như vậy điều khiển tương tranh bằng thời dấu có phân biệt đọc ghi là hiệu quảhơn mô hình thời dấu cơ bản.
Thí dụ 3.9. Xét các giao dịch trong lịch biểu dưới đây. 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 hiện truy xuất các mục dữ liệu A, B và C có các thời dấu ban đầu RT = WR = 0 Các giao dịch T1 T2 T3 A B C 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 RT = 200 (2) READ A RT = 150 (3) READ C RT = 175 (4) WRITE B WT = 200 (5) WRITE A WT = 200 (6) WRITE C T2 không được ghi C (7) WRITE A TR < t3 < TW
Hình 3.9. Lịch biểu của 3 giao dịch trong mô hình thời dấu đọc/ ghi
Trong thí dụ trên:
- Giao dịch T1 được thực hiện.
- Giao dịch T2 bị hủy bỏ do thao tác (6): WRITE C không được ghi trên C (do vi phạm quy tắc thời dấu: t2 < RT(C))
- Giao dịch T3 không bị hủy bỏ do quy tắc 4: RT(A) < t3 < WT(A), nhưng thực chất T3 không ghi gì lên A.
Kết luận: Điều khiển tương tranh bằng thời dấu cho phép một giao dịch được tiến triển tự do, chừng nào nó không vi phạm thứ tự các giao dịch về thời dấu. Những xung đột dẫn đến các thực thi bất khả tuần tự sẽđược phát hiện và điểu khiển đơn giản bằng việc hủy bỏ các giao dịch
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 50
vi phạm và có thểđược khởi động lại với thời dấu lớn hơn. Nhược điểm của cách tiếp cận này là số các giao dịch hủy bỏ và tái khởi động có thể khá lớn khi có mức tương tranh cao, điều này làm tăng cho phí quản lý các giao dịch phân tán.
2.7. HỢP THỨC HÓA CÁC GIAO DỊCH PHÂN TÁN