<< Chapter < Page Chapter >> Page >

Khi hai danh sách redo-list, undo-list được thiết lập xong, tiến trình phục hồi được tiến hành như sau:

  1. Dò ngược lại sổ ghi và thực hiện thủ tục undo đối với mỗi log record thuộc về giao dịch Ti trong undo-list. Các log record của các giao dịch nằm trong danh sách redo-list sẽ bị bỏ qua trong giai đoạn này. Việc dò ngược sẽ ngưng khi mẫu tin<Ti start>được tìm thấy cho mọi giao dịch Ti thuộc danh sách undo-list.
  2. Định vị mẫu tin<checkpoint L>gần đây nhất trong log.
  3. Dò sổ ghi theo chiều xuôi bắt đầu từ mẫu tin<checkpoint L>gần đây nhất và thực hiện thủ tục redo đối với mỗi log record thuộc về giao dịch Ti nằm trong danh sách redo-list. Trong giai đoạn này, bỏ qua các log record của các giao dịch thuộc danh sách undo-list.

Việc xử lý ngược ở bước 1 là rất quan trọng, nhằm đảm bảo kết quả trả về của cơ sở dữ liệu là đúng.

Sau khi tất cả các giao dịch trong danh sách undo-list bị huỷ bỏ, tất cả các giao dịch trong danh sách redo-list sẽ được làm lại. Sau khi tiến trình phục hồi thành công, xử lý giao dịch được tiếp tục.

Việc thực hiện huỷ bỏ các giao dịch trong undo-list trước khi làm lại các giao dịch trong redo-list có ý nghĩa rất quan trọng. Nếu làm ngược lại, vấn đề sau sẽ phát sinh: Giả sử hạng mục dữ liệu A có giá trị khởi đầu là 10. Giao dịch Ti đổi A thành 20 sau đó Ti bị huỷ bỏ. Sau đó, một giao dịch khác Tj cập nhật A thành 30. Đến đây thì hệ thống bị lỗi ngừng hoạt động. Hiện trạng của sổ ghi tại thời điểm hệ thống bị lỗi như sau:

<Ti, A, 10, 20>

<Tj, A, 10, 30>

<Tj commit>

Nếu thực hiện redo trước, A sẽ được đặt giá trị 30. Sau đó thực hiện undo, A sẽ được đặt giá trị 10, mà giá trị này sai. Giá trị cuối cùng của A phải là 30.

Điểm kiểm soát mờ (fuzzy checkpoint):

Kỹ thuật fuzzy checkpoint cho phép các giao dịch được cập nhật dữ liệu trên các khối đệm khi checkpoint-record đã được viết xong nhưng trước thời điểm các khối đệm đã sửa đổi được ghi ra đĩa.

Ý tưởng thực hiện fuzzy checkpoint như sau: Thay vì phải dò ngược sổ ghi để tìm mẫu tin checkpoint, ta sẽ lưu vị trí của mẫu tin checkpoint cuối cùng trong sổ ghi vào một chỗ cố định trong đĩa gọi là last_checkpoint. Tuy nhiên, thông tin này sẽ không được cập nhật khi một mẫu tin checkpoint được ghi ra đĩa. Thay vào đó, trước khi một mẫu tin checkpoint được ghi ra sổ ghi, ta tạo ra một danh sách các khối đệm bị sửa đổi. Thông tin last_checkpoint được cập nhật chỉ sau khi tất cả các khối đệm bị sửa đổi được ghi ra đĩa.

last_checkpoint chỉ được dùng cho mục đích undo.

BÀI TẬP CHƯƠNG VI

  1. Trình bày các điểm khác nhau giữa 3 kiểu lưu trữ: lưu trữ không ổn định, lưu trữ ổn định và lưu trữ bền theo tiêu chuẩn đánh giá là chi phí cài đặt.
  2. Thực tế, lưu trữ bền không thể thực hiện được. Giải thích tại sao? Hệ cơ sở dữ liệu giải quyết vấn đề này như thế nào?
  3. So sánh các kỹ thuật cập nhật tức thời và cập nhật có trì hoãn trong sơ đồ phục hồi dựa vào sổ ghi lộ trình theo các tiêu chuẩn: tính dễ cài đặt và tổng chi phí thực hiện.
  4. Giả sử rằng kỹ thuật cập nhật tức thời được sử dụng trong hệ thống. Bằng ví dụ, hãy chỉ ra rằng: tình trạng không nhất quán dữ liệu sẽ xảy ra nếu các log record không được ghi ra thiết bị lưu trữ bền trước khi giao dịch bàn giao (commit).
  5. Giải thích mục đích của cơ chế điểm kiểm soát (checkpoint). Hành động đặt điểm kiểm soát nên được thực hiện theo chu kỳ bao lâu là hợp lý?
  6. Khi hệ thống phục hồi sau lỗi, nó xây dựng 2 danh sách: undo-list và redo-list. Giải thích tại sao các log record của các giao dịch trong danh sách undo-list phải được xử lý theo thứ tự ngược, trong khi những log record trong danh sách redo-list lại được xử lý theo chiều xuôi?
  7. So sánh sơ đồ phục hồi phân trang bóng và sơ đồ phục hồi bằng sử dụng sổ ghi lộ trình theo tiêu chuẩn: tính dễ cài đặt và tổng chi phí thực hiện.
  8. Giả sử một cơ sở dữ liệu có 10 khối đĩa liên tiếp (khối 1, 2, 3, ..., 10). Hãy thể hiện trạng thái của buffer và thứ tự vật lý có thể có của các khối sau các thao tác cập nhật sau, giả sử: kỹ thuật phân trang bóng được sử dụng, buffer trong bộ nhớ chỉ đủ chứa 3 khối, chiến lược quản lý buffer là LRU (Least Recently Used)
Đọc khối 3
Đọc khối 7
Đọc khối 5
Đọc khối 3
Đọc khối 1
Sửa đổi khối 1
Đọc khối 10
Sửa khối 5

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Hệ quản trị cơ sở dữ liệu. OpenStax CNX. Jul 31, 2009 Download for free at http://cnx.org/content/col10838/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?

Ask