Các kỹ thuật điều khiển đồng thời dựa trên tính hợp lệ

Một phần của tài liệu Quản lý giao tác trong CSDL quan hệ và phân tán (Trang 79)

Trong các kỹ thuật điều khiển đồng thời trước, kiểm tra độ chính xác phải được thực hiện hoàn thành trước khi cơ sở dữ liệu có thể được thực thi. Ví dụ, trong lược đồ khóa, kiểm tra độ chính xác phải được thực hiện xong để xác định bất cứ khi nào mục dữ liệu đang được truy cập là đã được khóa. Trong lược đồ thứ tự tem thời gian, tem thời gian của giao tác được kiểm tra dựa vào tem thời gian đọc và ghi của mục dữ liệu. Ảnh hưởng của sự kiểm tra trong khi giao tác đang thực thi là làm cho tốc độ thực thi giao tác chậm lại.

Trong các kỹ thuật điều khiển đồng thời dựa trên tính hợp lệ, không có kiểm tra nào được hoàn thành trong khi giao tác đang thực thi. Trong lược đồ này, giao tác cập nhật dữ liệu không được tác động trực tiếp tới các mục cơ sở dữ liệu cho đến khi giao tác đi đến kết thúc. Trong quá trình giao tác thực thi, mọi cập nhật được tác động tới biến cục bộ của mục dữ liệu mà nó được để dành cho giao tác. Khi kết thúc thực thi giao tác, kỳ hợp lệ kiểm tra xem bất

kỳ cập nhật nào của giao tác có vi phạm tính khả tuần tự hay không. Thông tin chính xác cần thiết cho kỳ hợp lệ phải được lưu giữ bởi hệ thống. Nếu tính khả tuần tự không bị vi phạm, giao tác được xác nhận hoàn thành và cơ sở dữ liệu được cập nhật từ biến cục bộ; ngược lại, giao tác bị hủy bỏ và sau đó được bắt đầu lại [1].

Trong trường hợp đa số các giao tác trong hệ thống là các giao tác chỉ đọc (read-only), tỷ suất xung đột giữa các giao tác là thấp. Như vậy nhiều giao tác trong chúng thực hiện thiếu sự giám sát của lược đồ điều khiển đồng thời cũng vẫn giữ cho hệ thống ở trạng thái nhất quán. Hơn nữa, một lược đồ điều khiển đồng thời đưa vào một tổng phí đáng kể (cho thực hiện mã lệnh, thời gian chờ của giao tác ...). Việc tìm một lược đổ với tổng phí nhỏ là một mục tiêu. Nhưng khó khăn là ta phải biết trước những giao tác sẽ bị dính líu vào một xung đột. Để có được các hiểu biết đó, ta cần một lược đồ để giám sát hệ thống.

Giao thức điều khiển đồng thời này có ba kỳ. Ta giả thiết rằng, mỗi giao tác Ti thực hiện trong hai hoặc ba kỳ khác nhau, phụ thuộc vào nó là một giao tác chỉ đọc hay là một giao tác cập nhật. Các kỳ này theo thứ tự như sau [1]:

(1) Kỳ đọc (Read phase). Trong kỳ này, các giá trị của các mục dữ liệu khác nhau được đọc vào các biến cục bộ của Ti. Tất cả các hoạt động Write được thực hiện trên các biến cục bộ tạm (phiên bản) của các mục dữ liệu, không cập nhật CSDL hiện hành.

(2) Kỳ hợp lệ (Validation phase). Giao dịch Ti thực hiện một phép kiểm thử sự hợp lệ để xác định xem nó có thể sao chép đến CSDL các biến cục bộ tạm chứa các kết quả của các hoạt Write

(3) Kỳ ghi (Write phase). Nếu Ti thành công trong kỳ hợp lệ, các cập nhật được áp dụng vào CSDL; ngược lại, các cập nhật bị loại bỏ và giao tác Ti bị cuộn lại.

Ý tưởng của điều khiển đồng thời dựa trên tính hợp lệ là làm tất cả các kiểm tra một lần, do đó, sự thực thi giao tác bắt đầu với chi phí ít nhất cho đến khi kỳ hợp lệ được hoàn thành. Nếu có ít sự đan xen giữa các giao tác, thực thi giao tác sẽ được công nhận thành công. Tuy nhiên, nếu có nhiều sự đan xen, nhiều giao tác có thực thi xong thì các kết quả của cũng sẽ bị loại bỏ và giao tác được bắt đầu lại. Trong trường hợp này, kỹ thuật dựa trên tính hợp lệ làm việc không tốt. Kỹ thuật được gọi là “lạc quan” do thừa nhận có ít sự đan xen xuất hiện và do đó không cần kiểm tra trong suốt quá trình giao tác thực thi.

Giao thức dựa trên tính hợp lệ sử dụng giao tác tem thời gian cũng yêu cầu các tập write_sets và read_sets của giao tác được giữ bởi hệ thống, thời điểm bắt đầu và kết thúc với mỗi kỳ cần được giữ lại đối với mỗi giao tác. Trong kỳ hợp lệ với giao tác Ti, giao thức kiểm tra Ti không đan xen với bất kỳ giao tác được xác nhận hoàn thành nào hoặc với bất kỳ giao tác hiện tại khác trong kỳ hợp lệ của nó. Kỳ hợp lệ Ti kiểm tra, mỗi giao tác Tj hoặc là được xác nhận hoàn thành hoặc là trong kỳ hợp lệ của nó và có một trong các điều kiện sau [1]:

(1) Giao tác Tj hoàn thành kỳ ghi trước khi Ti bắt đầu kỳ đọc

(2). Ti bắt đầu kỳ ghi sau khi Tj hoàn thành kỳ ghi và tập read_set của Ti không còn mục dữ liệu nào giống như tập write_set của Tj. (3) Cả hai tập read_set và write_set của Ti không có mục dữ liệu nào

giống như write_set của Tj và Tj hoàn thành kỳ đọc trước khi Ti hoàn thành kỳ đọc.

Khi giao tác Ti hợp lệ, điều kiện (1) được kiểm tra đầu tiên với mỗi giao tác Tj, do đó (1) là điều kiện đơn giản nhất để kiểm tra. Chỉ khi điều kiện (1) sai thì điều kiện (2) mới được kiểm tra và chỉ khi điều kiện (2) sai mới đến điều kiện (3) được kiểm tra. Nếu có bất kỳ một trong ba điều kiện này, không có sự đan xen và Ti được xác nhận hợp lệ thành công. Nếu không có điều kiện nào, xác nhận hợp lệ của giao tác Ti lỗi và nó bị hủy bỏ và sau đó được khởi động lại do có thể có sự đan xen xuất hiện.

Một phần của tài liệu Quản lý giao tác trong CSDL quan hệ và phân tán (Trang 79)

Tải bản đầy đủ (PDF)

(96 trang)