Mơ hình khoá đọc và khoá gh

Một phần của tài liệu bài giảng cơ sở dữ liệu phân tán chuẩn (Trang 113 - 116)

- Không có khố.

4.3Mơ hình khoá đọc và khoá gh

Trong mơ hình khố cơ bản, ta giả sử rằng khi khố một mục có thể thay đổi mục đó. Trên thực tế, có những trường hợp một giao dịch truy cập một mục theo nghĩa chỉ đọc giá trị của mục đó khơng thay đổi giá trị của mục đó. Vì vậy nếu ta phân biệt hai loại truy cập: chỉ đọc (read only) và đọc ghi (read write), thì ta có thể tiến hành được

một số thao tác đồng thời bị cấm trong mơ hình khố cơ bản. Khi đó, ta phân biệt hai loại khoá như sau:

Khoá đọc (read lock or shared lock) ký hiệu RLock hoạt động như sau: một giao

dịch T chỉ muốn đọc một mục A sẽ thực hiện lệnh RLock A, ngăn không cho bất kỳ giao dịch khác ghi giá trị mới vào A trong khi T đã khố A, nhưng các giao dịch khác vẫn có thể giữ một khố đọc trên A cùng lúc với T.

Khoá ghi (write lock) ký hiệu WLock hoạt động như trong mơ hình khố cơ bản,

nghĩa là một giao dịch muốn thay đổi giá trị của mục A sẽ thực hiện lệnh WLock A. Khi đó khơng một giao dịch nào được lấy khố đọc hoặc khố ghi trên mục đó.

Cả khố đọc và khố ghi đều được mở bằng lệnh Unlock. Ngồi các giả định như mơ hình khố cơ bản, ta có thêm giả định rằng một giao dịch có thể u cầu một khố ghi trên mục mà nó đang giữ khố đọc.

Hai lịch biểu là tương đương nếu:

- Chúng sinh ra cùng một giá trị cho mỗi mục, và

- Mỗi khoá đọc được áp dụng bởi một giao dịch xảy ra trong cả hai lịch biểu vào những lúc mục bị khố có cùng giá trị.

Thuật toán 4.2: Kiểm tra tính khả tuần tự của các lịch biểu với các khoá

đọc / ghi

Nhập: Một lịch biểu S cho một tập các giao dịch T1, T2 , ... , Tk.

Xuất: Khẳng định S có khả tuần tự hay khơng? Nếu có thì đưa ra một lịch biểu

tuần tự tương đương với S.

Phương pháp:

Bước 1: Chúng ta xây dựng một đồ thị có hướng G (gọi là đồ thị tuần tự hố), có các nút là các giao dịch. Các cung của đồ thị được xác định bằng quy tắc sau:

Giả sử trong S, Ti nhận khoá đọc hoặc khoá ghi mục A, Tj là giao dịch kế tiếp khoá ghi A, và i ≠ j, thì ta sẽ đặt một cung từ Ti → Tj.

Giả sử trong S, giao dịch Ti khoá ghi A, Tm là khoá đọc A sau khi Ti mở khoá A nhưng trước các giao dịch khác khố ghi A, và i ≠ m, thì ta sẽ đặt một cung từ Ti → Tm .

Bước 2: Kiểm tra, nếu G có chu trình thì S bất khả tuần tự. Nếu G khơng có chu trình thì một sắp xếp topo của G là thứ tự tuần tự của các giao dịch này.

Ví dụ: Một lịch biểu của bốn giao dịch :

(1)T2 : RLock A (2) T3 : RLock A (3) T2 : WLock B (4) T2 : Unlock A (5) T3 : WLock A (6) T2 : Unlock B (7) T1 : RLock B (8) T3 : Unlock A (9) T4 : RLock B (10) T1 : RLock A (11) T4 : Unlock B (12) T1 : WLock C (13) T1 : Unlock A (14) T4 : WLock A (15) T4 : Unlock A (16) T1 : Unlock B (17) T1 : Unlock C

Đồ thị tuần tự hoá của lịch biểu này được trình bày trong hình 2.6.

Các nút là bốn giao dịch T1 , T2 , T3 , T4. Các cung được xác định như sau: ở bước (4) T2 mở khoá mục A

Bước (5) T3 khoá ghi mục A, T3 phải đi sau T2, có một cung từ T2 đến T3. ở bước (6) T2 mở khoá mục B

Bước (7) T1 các khoá đọc mục B và T4 ở bước (9). Như vậy T1 và T4 phải đi sau T3, có một cung từ T2 đến các nút này.

ở bước (8) T3 mở khoá mục A,

Bước (10) T1 là khoá đọc mục A và khoá ghi mục A của T4 ở bước (14). Như vậy T1 và T4 phải đi sau T3, có một cung từ T3 đến các nút này.

ở bước (13) T1 mở khoá mục A, bước (14) T4 khoá ghi mục A, T4 phải đi sau T1, có một cung từ T1 đến T4.

Hình 4.4 Đồ thị tuần tự hóa cho 4 giao dịch

Sắp xếp topo cho đồ thị ta được thứ tự các giao dịch là: T1→ T2→ T3 → T4

Giao thức hai pha của mơ hình trước cũng có thể áp dụng cho mơ hình này. Các khố đọc và khoá ghi đều đi trước bước mở khố, và điều đó sẽ đảm bảo tính khả tuần tự của lịch biểu.

Trong mơ hình này ta cũng rút ra được qui tắc liên quan đến việc trao khoá như sau:

Một khố đọc trên một mục có thể được trao cho một giao dịch nếu khơng có khố ghi nào đang được một giao dịch khác giữ trên nó.

Một khố ghi trên một mục chỉ có thể được trao cho một giao dịch nếu khơng có khố đọc hoặc khố ghi nào đang được một giao dịch khác giữ trên mục đó.

Một phần của tài liệu bài giảng cơ sở dữ liệu phân tán chuẩn (Trang 113 - 116)