Thuật toán điều khiển tương tranh bằng nhãn thời gian (thời dấu)

Một phần của tài liệu bài giảng cơ sở dữ liệu phân tán chuẩn (Trang 116 - 120)

- Không có khố.

4.4 Thuật toán điều khiển tương tranh bằng nhãn thời gian (thời dấu)

nhãn thời gian (thời dấu)

Để đảm bảo tính khả tuần tự của các lịch biểu, ngồi các mơ hình sử dụng khố như đã trình bày ở trên. Ta cịn sử dụng nhãn thời gian (timestamp). ý tưởng chính là gán cho mỗi giao dịch một nhãn thời gian, đó chính là điểm bắt đầu của giao dịch.

T2 T1

Thiết lập nhãn thời gian

Nếu tất cả các giao dịch đều được bộ lập lịch gán nhãn thời gian thì bộ lập lịch sẽ

duy trì bộ đếm số lượng các giao dịch đã được lập lịch. Khi có một giao dịch mới yêu cầu được lập lịch, bộ lập lịch sẽ tăng bộ đếm số lượng này lên một đơn vị và gán trị số đó cho giao dịch có u cầu. Như vậy, khơng thể xảy ra trường hợp hai giao dịch có cùng nhãn thời gian, và thứ tự tương đối giữa các nhãn thời gian của các giao dịch cũng chính là thứ tự mà các giao dịch được thực hiện.

Một cách gán nhãn thời gian khác cho các giao dịch là dùng giá trị của đồng hồ hệ thống tại thời điểm bắt đầu giao dịch.

Trong trường hợp tồn tại nhiều bộ xếp lịch do hệ thống CSDL chạy trên một máy đa bộ xử lý hoặc trong hệ CSDL phân tán, thì ta phải gán thêm một hậu tố duy nhất cho mỗi nhãn thời gian. Hậu tố này chính là định danh của bộ xử lý tương ứng. Khi đó, việc đồng bộ hố các bộ đếm hoặc đồng hồ được dùng ở mỗi bộ xử lý là một yêu cầu quan trọng để đảm bảo tính khả tuần tự của các lịch biểu.

Đảm bảo tính khả tuần tự bằng nhãn thời gian

Qui tắc duy trì thứ tự tuần tự của nhãn thời gian như sau. Giả sử ta có một giao dịch có nhãn thời gian t đang muốn thực hiện một thao tác X trên một mục có thời điểm đọc tr và thời điểm ghi tw thì:

a/ Cho thực hiện thao tác này nếu: X = Read và t ≥ tw hoặc X = Write và t ≥ tr và t≥ tw

Trong trường hợp trước, đặt thời điểm đọc là t nếu t > trvà trong trường hợp sau, đặt thời điểm ghi là t nếu t > tw.

b/ Khơng thực hiện gì nếu X = Write và tr ≤ t < tw. c/ Huỷ bỏ giao dịch này nếu: X = Read và t < tw hoặc

X = Write và t < tr

Ví dụ : Trong đó RLock được xem là Read, WLock được xem là Write, các bước

Unlock không tồn tại. Các giao dịch T1, T2 , T3, T4 có các nhãn thời gian lần lượt là 100, 200, 300, 400.

ở bước (1) , T2 (có nhãn thời gian là t = 200) đọc A (có WT = 0), tức t ≥ tw. Thao tác này là được phép, và vì t > tr (bằng 0) nên RT của A được đặt lại là 200.

Tương tự ở bước (2) , T3 (có nhãn thời gian là t = 300) đọc A (có WT = 0), tức t ≥ tw. Thao tác này là được phép, và vì t > tr (bằng 200) nên RT của A được đặt lại là 300.

ở bước (3) , T2 (có nhãn thời gian là t = 200) ghi B (có RT = 0 và WT = 0), tức t ≥ Tr và t ≥ tw. Thao tác này là được phép, vì t > tW (bằng 0) nên WT của B được đặt lại là 200.

ở bước (4) , T3 (có nhãn thời gian là t = 300) ghi A (có RT = 300 và WT=0), tức t

≥ Tr và t ≥ tw. Thao tác này là được phép, vì t > tW (bằng 0) nên WT của A được đặt

lại là 300.

ở bước (5) , T1 (có nhãn thời gian là t = 100) đọc B (có WT = 200), tức t < tw. Vì vậy thao tác này bị huỷ bỏ.

TT T1 T2 T3 T4 A B C 100 200 300 400 RT=0 WT=0 RT=0 WT=0 RT=0 WT=0 (1) Read A RT=200 (2) Read A RT=300 (3) Write B WT=200 (4) Write A WT=300

(5) Read B T1 bị huỷ bỏ

Trong q trình thực hiện giao dịch CSDL có thể tạm thời khơng nhất qn nhưng CSDL phải nhất quán khi giao dịch kết thúc. Tính tin cậy dựa vào hai khả năng sau:

+ Khả năng phục hồi nhanh của hệ thống khi nhiều kiểu lỗi xảy ra (Khi các lỗi xảy ra hệ thống có thể chịu đựng được và có thể tiếp tục cung cấp các dịch vụ ).

+ Khôi phục: đạt được trạng thái nhất quán. Trở về trạng thái nhất quán trước đó hoặc tiếp tới trạng thái nhất quán mới sau khi xảy ra lỗi. Nhất quán về giao tác liên quan tới sự thực hiện các truy nhập trùng nhau.

Việc quản lý giao tác tiếp xúc với các vấn đề luôn giữ CSDL trong trạng thái nhất quán khi xảy ra các truy nhập trùng nhau và các lỗi.

Một phần của tài liệu bài giảng cơ sở dữ liệu phân tán chuẩn (Trang 116 - 120)