Các kỹ thuật đồng bộ hóa dựa trên khóa hai pha

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 43 - 44)

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

3.2.1.Các kỹ thuật đồng bộ hóa dựa trên khóa hai pha

Khóa hai pha (2PL-Two Phases Locking) đƣợc sử dụng để đồng bộ hóa việc đọc và ghi bằng cách phát hiện và ngăn chặn một cách dứt khoát các xung đột giữa các thao tác hiện hành. Trƣớc khi đọc mục dữ liệu x, một giao dịch phải sở hữu một khóa đọc (readlock) trên x. Trƣớc khi ghi lên x, nó phải sở hữu một khóa ghi (writelock) trên x. Quyền sở hữu các khóa bị chi phối bởi hai quy tắc:

(1): Các giao dịch khác nhau không thể đồng thời sở hữu các khóa xung đột. (2): Khi một giao dịch từ chối quyền sở hữu một khóa, nó không bao giờ có đƣợc khóa nào khác.

Định nghĩa khóa xung đột (conflicting lock) phụ thuộc vào loại đồng bộ hóa đang thực hiện: đối với đồng bộ hóa rw, hai khóa xung đột nhau nếu: (a) cả hai khoá đều thuộc về một mục dữ liệu và (b) khi một khóa là khóa đọc và khóa kia là khóa ghi; đối với đồng bộ hóa ww, hai khóa xung đột nhau khi: (a) cả hai khoá đều thuộc về một mục dữ liệu và (b) cả hai đều là khóa ghi.

Quy tắc thứ hai về quyền sở hữu khóa xuất phát từ nguyên nhân mọi giao dịch đều có khóa theo kiểu hai pha. Trong suốt quá trình phát triển pha, giao dịch thu đƣợc các khóa mà không cần phải giải phóng bất kỳ một khóa nào. Bằng cách giải phóng khóa, giao dịch chuyển sang pha co lại (shrinking phase). Trong suốt pha này, giao dịch giải phóng các khóa và quy tắc 2 ngăn chặn việc thu thận thêm khóa mới. Khi một giao dịch kết thúc (hoặc bị hỏng), mọi khóa còn lại tự động đƣợc giải phóng.

Trong các DDBMS các giao dịch đƣợc yêu cầu sở hữu mọi khóa trƣớc khi thực hiện và một số hệ thống cũng yêu cầu các giao dịch giữ lại mọi khóa cho đến khi kết thúc [3].

Khóa hai pha là một kỹ thuật đồng bộ chính xác, nghĩa là 2PL thu đƣợc một

quan hệ không vòng tròn rw( ww) khi dùng sự đồng bộ rw (ww). Thứ tự chuỗi

tuần tự thu đƣợc từ 2PL đƣợc xác định bởi trật tự các giao dịch sở hữu khóa. Khi một giao dịch sở hữu mọi khóa mà nó từng sở hữu, gọi là thời điểm khóa của giao

dịch. Cho E là một thực thi sử dụng 2PL để đồng bộ hóa rw (ww). Quan hệ rw

(ww) sinh ra bởi E đƣợc đồng nhất với quan hệ sinh ra bởi một chuỗi thực thi E‟

mà trong đó mọi giao dịch đều thực hiện thời điểm khóa của nó. Do đó, các điểm khóa của E xác định thứ tự tuần tự của E.

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 43 - 44)