Kiểm tra thứ tự xung đột của một lịch biểu

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xử lý truy vấn và quản lý giao tác trong cơ sở dữ liệu Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 73 - 78)

2.5 Xếp thứ tự của lịch biểu

2.5.2. Kiểm tra thứ tự xung đột của một lịch biểu

Xét một thuật toán đơn giản xác định thứ tự xung đột của một lịch biểu để hiểu hơn về các giao thức điều khiển đồng thời.

Thuật toán 2.1 có thể đƣợc sử đụng để kiểm tra trật tự xung đột của một lịch biểu. Thuật toán chỉ chú ý đến các thao tác read_item và write_item trong một lịch biểu để xây dựng một đồ thị ƣu tiên, đó là một đồ thị có hƣớng G=(N,E), gồm tập các nốt N={T1, T2, ... Tn} và tập các cạnh có hƣớng E={e1, e2, ... em}. Mỗi một nốt trong đồ thị đƣợc xem là một giao tác Ti trong lịch biểu. Mỗi cạnh ei của đồ thị đƣợc nối từ các nốt (Tj  Tk), 1 j  n, 1  k  n, với Tj là nốt đầu và Tk là nốt cuối của cạnh ei. Một cạnh đƣợc tạo nếu một trong các thao tác của Tj xuất hiện trong lịch biểu trƣớc một số thao tác xung đột trong Tk.

Thuật toán 2.1 Kiểm tra thứ tự xung đột của một lịch biểu S [4, 6]: 1. Đối với mỗi giao tác Ti tham gia trong lịch biểu S, tạo một nốt có nhãn là Ti trong đồ thị ƣu tiên

2. Trong lịch biểu S:

- Ti thực thi một thao tác write_item(X), sau đó Tj thực thi một thao tác read_item(X) thì tạo ra một cạnh (Ti  Tj) trong đồ thị ƣu tiên.

- Ti thực thi một thao tác read_item(X), sau đó Tj thực thi một thao tác write_item(X) thì tạo ra một cạnh (Ti  Tj) trong đồ thị ƣu tiên.

- Ti thực thi một thao tác write_item(X), sau đó Tj thực thi một thao tác write_item(X) thì tạo ra một cạnh (Ti  Tj) trong đồ thị ƣu tiên.

3. Lịch biểu S là theo thứ tự nếu và chỉ nếu đồ thị ƣu tiên không có chu trình

Đồ thị ƣu tiên đƣợc xây dựng nhƣ miêu tả trong thuật toán 2.1. Nếu có một chu trình trong đồ thị ƣu tiên, lịch biểu S là không theo thứ tự xung đột; nếu không có chu trình thì S đƣợc gọi là có thứ tự xung đột.

Trong đồ thị ƣu tiên, một cạnh từ Ti tới Tj có nghĩa là giao tác Ti phải xuất hiện trƣớc giao tác Tj trong bất kỳ lịch biểu tƣơng đƣơng với S. Nếu đồ

Giao tác T1 Giao tác T2 Giao tác T3

(a)

thị ƣu tiên không có chu trình thì có thể tạo một lịch biểu theo thứ tự tƣơng tƣơng S‟ tƣơng đƣơng với S. Thứ tự các giao tác tham gia trong S nhƣ sau: Khi một cạnh Ti tới Tj tồn tại trong đồ thị ƣu tiên thì Ti phải xuất hiện trƣớc Tj trong lịch biểu theo thứ tự tƣơng đƣơng S‟. Chú ý rằng các cạnh (Ti  Tj) trong đồ thị ƣu tiên có thể đƣợc đánh nhãn bởi tên của mục dữ liệu.

Một số lịch biểu theo thứ tự có thể tƣơng đƣơng với lịch biểu S nếu đồ thị ƣu tiên của chúng là nhƣ nhau và không có chu trình.

Xét lịch biểu mà trong đó có 3 giao tác nhƣ trong hình 2.8. Hai lịch biểu E và F trong hình (b) và (c) các giao tác đƣợc thực thi một cách độc lập, và các đồ thị ƣu tiên đối với lịch biểu E và F đƣợc thể hiện trong phần (d) và (e). Lịch biểu F là theo thứ tự xung đột và một lịch biểu theo thứ tự tƣơng đƣơng với F đƣợc thể hiện trong hình 2.8(e). Mặc dù chỉ một lịch biểu theo thứ tự tƣơng đƣơng đối với F, nhƣng thực tế có thể có một hoặc nhiều lịch biểu theo thứ tự tƣơng đƣơng với một lịch biểu theo thứ tự xung đột. Hình 2.8(f) thể hiện một đồ thị ƣu tiên mà dựa vào nó xác định đƣợc 2 lịch biểu theo thứ tự tƣơng đƣơng.

T1 T2 T2 T1 T1 T2 T2 T1 (a) (b) (d) (c) X X X X X

Hình 2.7 Xây dựng đồ thị ưu tiên đối với các lịch biểu A tới D từ hình 2.5 để kiểm tra thứ tự xung đột.

(a) Đồ thị ưu tiên đối với lịch biểu theo thứ tự A. (b) Đồ thị ưu tiên đối với lịch biểu theo thứ tự B.

(c) Đồ thị ưu tiên đối với lịch biểu C (không theo thứ tự xung đột). (d) Đồ thị ưu tiên đối với lịch biểu D (theo tứ tự xung đột, tương

Read_item(Z) Read_item(Y) Write_item(Y) Read_item(Y) Read_item(Z) Read_item(X) Write_item(X) Read_item(X) Write_item(Y) Write_item(Z) Read_item(Y) Write_item(Y) Write_item(X)

Giao tác T1 Giao tác T2 Giao tác T3

Lịch biểu E Thời gian (b) Read_item(Y) Write_item(Y) Read_item(Y) Read_item(Z) Read_item(X) Write_item(X) Read_item(Z) Write_item(Y) Write_item(Z) Read_item(Y) Write_item(Y)

Giao tác T1 Giao tác T2 Giao tác T3

Lịch biểu F

Thời gian (c)

T1

T3

T2 Đồ thị này có chu trình nên không tồn tại lịch biểu có thứ tự tƣơng đƣơng Chu trình 1: X (T1 -> T2), Y(T2 -> T1) Chu trình 2: X (T1 -> T2), YZ(T2 -> T3), Y(T3 -> T1) Y Y Y,Z X (d) T3 T2 T1

Lịch biểu có thứ tự tương đương: T3 -> T1 -> T2

X,Y

Y Y,Z

(e)

T2 Lịch biểu có thứ tự tương đương: (f)

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xử lý truy vấn và quản lý giao tác trong cơ sở dữ liệu Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 73 - 78)

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

(83 trang)