ROLL (Request Order Linked List )

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 37 - 39)

ROLL là một đối tƣợng lƣu trữ dữ liệu điều khiển tƣơng tranh, đƣợc xử lý trực tiếp bằng các giao tác, nghĩa là hiện tƣợng thắt nút cổ chai bị loại bỏ.

Thành phần cơ bản của ROLL là một vector bit để nhận dạng các yêu cầu truy xuất dữ liệu của các giao tác. Vị trí của mỗi bit trong vector bit tƣơng ứng với một mục dữ liệu khác nhau. Bit có giá trị 1 cho biết giao tác yêu cầu truy xuất vào mục dữ liệu có vị trí tƣơng ứng với vị trí đó của bit, trong khi giá trị 0 báo hiệu là giao tác không truy xuất dữ liệu.

Đối tƣợng ROLL là một danh sách liên kết các vector bit, một vector thuộc một giao tác hành động. Thứ tự của các vector này trong danh sách liên kết xác định chuỗi thứ tự thành phần của các giao tác. ROLL cũng có một con trỏ đuôi trỏ tới thành phần cuỗi cùng của danh sách.

2.5.1.1. Các thao tác ROLL cơ bản

ƒ POST: là một thao tác nguyên tốxác lập chuỗi thứtựthành phần của các giao tác. Với một vector bit yêu cầu (RBV) đƣợc tạo ra nhƣ ởtrên, một giao tác POST (chuyển vào hàng đợi) RBV của nó vào danh sách. Đểthực hiện thao tác này, giao tác phải truy xuất tới con trỏ đuôi, nghĩa là không một giao tác nào khác có thểPOST vào lúc này. Sau đó, giao tác copy giá trịcủa con trỏ đuôi vào con trỏ liên kết của nó và ghi địa chỉ của RBV vào con trỏ đuôi. Giao tác chỉ POST các RBV của nó một lần vào lúc bắt đầu quá trình thực hiện của nó, nghĩa là phƣơng pháp ROLL cơ bản đòi hỏi khai báo trƣớc.

ƒ CHECK: cho phép một giao tác kiểm tra tập dữ liệu toàn vẹn của các mục dữ liệu cần thiết của ROLL trong một thao tác. Thao tác này không đòi hỏi phải truy xuất vào ROLL, tức là một số giao tác có thể thực hiện CHECK đồng thời. Một giao tác CHECK bằng cách thực hiện các phép OR của các vector bit trong danh sách. Vector bit trả về là dấu hiệu truy xuất của giao tác.

ƒ Để RELEASE một mục dữliệu khi đã hoàn thành các thao tác với nó, giao tác gán giá trịcủa bit tƣơng ứng bằng 0. Nếu có giao tác nào khác CHECK ROLL sau đó, nó sẽ tìm mục dữ liệu thích hợp. Cũng giống nhƣ CHECK, RELEASE không yêu cầu truy xuất riêng biệt.

5.5.1.2. ROLL dựa trên sơ đồ điều khiển tương tranh.

Một thuật toán điều khiển tƣơng tranh dựa trên các thuộc tính của giao thức ROLL đƣợc tóm tắt bằng năm quy tắc sau:

1. Các giao tác biết đƣợc các mục dữ liệu mà chúng sẽdùng đến khi bắt đầu khởi động. Khi có một giao tác mới đến, nó POST một RBV đểyêu cầu truy xuất các mục dữ liệu mà nó cần.

2. Giao tác mới CHECK ROLL đề tìm mục dữ liệu thích hợp. Nếu có, nó truy xuất ngay lập tức, giao tác tiếp tục.Nếu không có mục dữ liệu thích hợp, giao tác phải đợi, nghĩa là nó bị chặn lại.

3. Các giao tác bịchặn theo định kỳ sẽ CHECK lại ROLL để thử lấy lại hoạt động của nó.

4. Khi một giao tác hoàn tất thao tác trên một mục dữ liệu, nó RELEASE mục dữ liệu đó ngay lập tức.

5. Khi một giao tác ngừng, phải xoá RBV của nó ra khỏi ROLL. Một bộ phận lập lịch căn cứ trên năm quy tắc này để sinh ra các chuỗi thực thi thích hợp.

Phƣơng pháp ROLL có nhiều lợi ích đáng kể. Không giống cscs sơ đồ khác dựa vào khai báo trƣớc, ROLL không bảo thủ. Một giao tác không phải đợi mọi mục dữ liệu nó cần. Thay vào đó, nó thực hiện với một số mục dữ liệu vừa đủ để trở thành hợp lệ cho thực thi tiếp theo của mình.

* Tránh tắc nghẽn.

Khi dùng ROLL trong điều khiển tƣơng tranh thì không có xảy ra tắc nghẽn, vì một giao tác chỉ đợi các giao tác nằm trƣớc nó trong danh sách ROLL. Đây là một đặc trƣng của các phƣơng pháp điều khiển tƣơng tranh theo kiểu khai báo trƣớc. Tuy nhiên, nhƣ đã nói, ROLL không bảo thủ. Nếu có mục dữ liệu nào không hợp lệ, giao tác vẫn tiếp tục quá trình thực hiện của nó và truy xuất vào các mục dữ liệu hợp lệ khác.

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 37 - 39)