Professional Documents
Culture Documents
Optimistic Concurrency
Optimistic Concurrency
Hiểu đơn giản, với 2 hoặc nhiều giao dịch cùng tác động vào 1 mục dữ liệu, các
giao dịch đều được thực hiện tự do trên bản sao của mục dữ liệu đó, giao dịch nào thực
hiện ghi xong đầu tiên sẽ được chấp nhận và được ghi vào cơ sở dữ liệu thực tế. Các giao
dịch còn lại sẽ bị hủy bỏ và khởi động lại.
Thiết kế thuật toán điều khiển đồng thời lạc quan dựa nhãn thời gian, vì hai lý do:
Phần lớn các nghiên cứu về các phương pháp đồng thời lạc quan chỉ tập trung
vào các hệ quản trị cơ sở dữ liệu tập trung, nguyên nhân sẽ trình bày ở phần
nhược điểm.
Thuật toán điều khiển đồng thời lạc quan được mở rộng cho các hệ quản trị cơ
sở dữ liệu phân tán. Thuật toán này khác với thuật toán TO bi quan ở 2 điểm:
tính lạc quan và cách gán nhãn thời gian. Thuật toán lạc quan không có nhãn
thời gian đọc và thời gian ghi, chỉ gán nhãn thời gian cho bước kiểm tra.
Ký hiệu Tij là một giao dịch con của Ti thực hiện tại trạm j. Kiểm tra cục bộ của Tij
được thực hiện theo các quy tắc sau đây:
Quy tắc 1: Với mọi giao dịch Tk sao cho ts(Tk) < ts(Tij) đã hoàn tất bước ghi trước
khi Tij bắt đầu quá trình đọc , thì việc kiểm tra thành công các bước thực hiện giao dịch
theo đúng thứ tự tuần tự. ( Các giao dịch thực hiện tuần tự, không có tương tranh )
Quy tắc 2: Nếu có một giao dịch Tk sao cho ts(Tk) < ts(Tij) và Tk đã hoàn tất quá
trình ghi trong khi Tij đang trong bước đọc, thì kiểm tra thành công nếu WS(Tk) ∩ RS(Tij)
= ∅. (Tập ghi của Tk không có mục dữ liệu nào trùng với tập đọc của Tij, đảm bảo 2 vấn
đề: Tij không bị đọc dữ liệu cũ, Tij không bị ghi đè bởi Tk vì Tk đã hoàn thành trước đó
rồi)
Quy tắc 3: Nếu có một giao dịch Tk sao cho ts(Tk) < ts(Tij) và Tk chưa hoàn tất quá
trình đọc trước khi Tij hoàn tất pha đọc ,thì kiểm tra thành công nếu WS(Tk) ∩ RS(Tij) =
∅ và WS(Tk) ∩ WS(Tij) = ∅. (Tương tự như quy tắc 2, nhưng ở đây vì Tk chưa hoàn
thành quá trình ghi nên kiểm tra thêm việc Tk và Tij có ghi chung trên 1 mục dữ liệu
không)
Ưu điểm:
Các thuật toán điều khiển đồng thời lạc quan cho phép mức độ hoạt động
đồng thời cao. Trong trường hợp các tương tranh giao dịch ít xảy ra, cơ chế
lạc quan thực hiện hiệu quả hơn là cơ chế khóa.
Nhược điểm:
Nhược điểm chủ yếu của các thuật toán lạc quan là chi phí lưu trữ cao. Để
kiểm tra một giao dịch, thuật toán phải lưu các tập đọc và tập ghi của nhiều
giao dịch đã kết thúc.
Khi giao dịch đã được kiểm tra cục bộ để đảm bảo tính nhất quán cục bộ,
thì yêu cầu cần phải được kiểm tra toàn cục để đảm bảo rằng tính nhất quán
toàn cục. Đáng tiếc hiện nay chưa có phương pháp nào để kiểm tra việc
này. (Không triển khai được trên phân tán?)
Trong trường hợp một hoặc nhiều giao dịch xác nhận không thành công,
trong lần thử tiếp theo vẫn có thể không thành công
Trong môi trường phân tán, nhiều giao dịch trong bế tắc có thể đang chạy ở các vị
trí khác nhau nên bế tắc cần được kiểm tra cả ở CSDL cục bộ và trên CSDL toàn cục. Vì
vậy phân tích bế tắc trên CSDL phân tán cần xây dựng cả 2 loại đồ thị chờ LWFG (Local
WFG) và GWFG (Global WFG).
VD: T1 T2 ở vị trí 1, T3 T4 ở ở vị trí 2, trên mỗi vị trí thì xét đồ thị chờ cục bộ
không tồn tại bế tắc. Nhưng xét toàn cục thì lại xuất hiện
Có ba phương pháp xử lý bế tắc: ngăn chặn, tránh, phát hiện và giải tỏa bế tắc.