Thuật toán TO cơ bản

Một phần của tài liệu tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán (Trang 58 - 59)

6. Cấu trúc luận văn

3.2.3.1.Thuật toán TO cơ bản

Trong TO cơ bản, bộ TM phân phối các nhãn thời gian cho giao dịch và gửi các thao tác tƣơng ứng đến vị trí liên quan. Điều này là dễ hiểu vì nó chỉ làm theo quy tắc của TO. Đến đây, bộ lập lịch TO kiểm tra nhãn thời gian của các thao tác. Nếu đây là thao tác có nhãn thời gian cũ nhất trong số các thao tác có sự đụng độ với nhau thì nó đƣợc phép thực thi, nếu ngƣợc lại thì giao dịch sẽ bị khởi động lại với một nhãn thời gian mới. Từ đó dẫn đến việc các giao dịch sẽ không bao giờ ở trạng thái chờ khi chúng truy cập vào các mục dữ liệu và vì vậy các điểm chết cũng không có khả năng phát sinh. Tuy nhiên điều đó vẫn có thể xảy ra trong trƣờng hợp các giao dịch bị khởi động lại nhiều lần. Ngoài ra, một vấn đề cần đƣợc quan tâm là quá trình đồng bộ hóa giữa bộ lập lịch và bộ xử lý dữ liệu.

Bộ lập lịch cần lƣu ý xử lý việc nó điều phối một cách chính xác các thao tác trên cùng một mục dữ liệu mà nó chuyển đến một DP khác, nếu không tác dụng trên cơ sở dữ liệu sẽ bị sai. Có thể tránh đƣợc sự cố này bằng cách duy trì một hàng đợi và đợi DP báo nhận khi thao tác trƣớc đó là trên cùng một mục dữ liệu.

Thuật toán TO cơ bản:

Case “thao tác” of

read: if TS(T) < WTS(x) then “từ chối (hay lập lịch lại) thao tác read”;

else

begin

“thực hiện” thao tác read(x);

• RTS(x) := max {RTS(x), TS(T)}; end.

write: if TS(T) < max{RTS(x), WTS(x)} then “từ chối thao tác” write

else

begin

• “thực hiện” thao tác write(x); • WTS(x) := TS(T);

end. End case

Hạn chế của BTO:

BTO cố gắng thực thi các thao tác ngay khi có thể đƣợc, vì vậy thuật toán này thay vì phải chờ, nó sẽ khởi động lại các thao tác.

Một phần của tài liệu tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán (Trang 58 - 59)