<< Chapter < Page | Chapter >> Page > |
Phương pháp để cuộn lại (rollback) một giao dịch Ti, sử dụng sổ ghi, trong môi trường cạnh tranh như sau:
Việc dò ngược sổ ghi lộ ¹eó một ý nghĩa rất quan trọng, do một giao dịch có thể đã cập nhật một hạng mục dữ liệu nhiều hơn một lần. Một ví dụ: Xét một cặp log records như sau:
<Ti, A, 10, 20>
<Ti, A, 20, 30>
Cặp mẫu tin này thể hiện hai hành động cập nhật hạng mục dữ liệu A của giao dịch Ti. Nếu dò ngược sổ ghi lộ trình, A sẽ được trả về giá trị đúng là 10. Ngược lại, A sẽ nhận giá trị sai là 20.
Nếu kỹ thuật strict two-phase locking được sử dụng để điều khiển cạnh tranh, thì việc trả về giá trị cũ cho một hạng mục dữ liệu sẽ không xoá đi những tác động của các giao dịch khác lên hạng mục dữ liệu này.
Ở phần V.4.3, người ta đã sử dụng điểm kiểm soát (checkpoint) để làm giảm số lượng các log record mà hệ thống phục hồi phải dò tìm trong sổ ghi trong giai đoạn phục hồi sau lỗi. Nhưng, do đã giả thiết là không có cạnh tranh nên giải pháp V.4.3 chỉ xét đến những giao dịch sau trong quá trình khôi phục lỗi:
Tình huống càng phức tạp khi các giao dịch được thực thi cạnh tranh. Có nghĩa là tại thời điểm đặt điểm kiểm soát, có thể có nhiều giao dịch đang ở trong trạng thái hoạt động.
Trong một hệ thống xử lý các giao dịch cạnh tranh, ta yêu cầu rằng: một mẫu tin ghi dấu kiểm soát (checkpoint log record) phải có dạng như sau:
<checkpoint L>
Trong đó L là danh sách các giao dịch đang hoạt động tại thời điểm đặt điểm kiểm soát.
Một lần nữa, ta qui ước rằng: khi hành động đặt điểm kiểm soát đang diễn ra, các giao dịch không được phép thực hiện bất kỳ thao tác cập nhật dữ liệu nào cả trên các khối đệm lẫn trên sổ ghi lộ trình.
Tuy nhiên, qui ước trên lại gây phiền toái, bởi vì các giao dịch phải ngừng hoạt động khi đặt điểm kiểm soát. Một kỹ thuật nâng cao giải quyết điểm phiền toái này là “Điểm kiểm soát mờ” (fuzzy checkpoint).
Khi hệ thống phục hồi sau lỗi, nó tạo ra hai danh sách: undo-list bao gồm các giao dịch cần phải huỷ bỏ và redo-list bao gồm danh sách các giao dịch cần được làm lại.
Qui trình tạo lập hai danh sách redo-list, undo-list được thực hiện như sau:
Notification Switch
Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?