Thuật toán INGRES phân tán

Một phần của tài liệu CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ MỘT SỐ NGUYÊN LÝ CHUNG CỦA TỐI ƯU HOÁ TRUY VẤN (Trang 34)

4. Một số nguyên lý chung của tối ưu hóa truy vấn

2.2.1.1. Thuật toán INGRES phân tán

INGRES sử dụng thời điểm tối ưu hóa động, mục tiêu của thuật toán là làm giảm thiểu chi phí tổ hợp của thời gian truyền tin và thời gian đáp ứng. Chú ý rằng thuật toán tối ưu hóa truy vấn bỏ qua chi phí truyền dữ liệu đến trạm nhận kết quả và để đơn giản thuật toán chỉ xét kiểu phân mảnh ngang.

Đầu vào là câu truy vấn được diễn tả bằng phép tính quan hệ bộ (trong dạng chuẩn hội) và thông tin lược đồ gồm: kiểu mạng, trạm và kích thước của mỗi mảnh. Thuật toán được thực hiện tại trạm xuất phát của câu truy vấn, được gọi là trạm chủ (master

site).

Thuật toán tối ưu hóa INGRES phân tán (D-INGRES-QOA):

INPUT: MRQ câu truy vấn đa quan hệ

OUTPUT: kết quả của truy vấn đa quan hệ cuối cùng

Begin

for mỗi ORQi, có thể tách ra in MRQ do {chạy tất cả các truy vấn 1quan hệ}

run (ORQi ) (1)

end-for

MRQ' _ list ← REDUCE(MRQ) {Thay thế MRQ bằng n câu truy vấn

không thể rút gọn} (2)

while n ≠ 0 do {n là số câu truy vấn không thể rút gọn} (3)

begin

{chọn câu truy vấn không thể rút gọn chứa các mảnh nhỏ nhất}

MRQ' ← SELECT _QUERY(MQR' _ list) (3.1) {xác định các mảnh cần truyền và trạm xử lý cho MRQ’} Fragment-site-list← SELECT _ STRATEGY(MRQ' ) (3.2)

{truyền các mảnh đã chọn tới trạm được chọn}

for mỗi cặp (F,S) trong Fragment-site-list do (3.3) chuyển mảnh F đến trạm S end-for run(MRQ' ) (3.4) n ← n −1 end-while End.

Bước 1: tất cả các truy vấn một quan hệ (chọn, chiếu) có thể tách

được sẽ được xử lý cục bộ.

Bước 2: Thuật toán rút gọn [Wong and Youssefi, 1976] được áp

dụng cho câu truy vấn ban đầu, để tách tất cả các truy vấn con không thể rút gọn và các truy vấn một quan hệ bằng phép tách như trong phần xử lý tập trung. Bỏ qua các câu truy vấn một quan hệ vì đã được xử lý ở bước 1.

Bước 3: áp dụng cho các câu truy vấn không thể rút gọn.

Bước 3.1: chọn các truy vấn chưa được xử lý, chứa các mảnh nhỏ

hơn.

Bước 3.2: chọn chiến lược tốt nhất để xử lý câu truy vấn MRQ’

(câu truy vấn không thể rút gọn và có chứa ít nhất hai quan hệ). Chiến lược này được mô tả bằng một danh sách các cặp (F,S) trong đó F là mảnh cần truyến đến trạm S.

Bước 3.3: truyền tất cả tới trạm xử lý chúng.

Bước 3.4: Thực hiện truy vấn MRQ’. Nếu còn các câu truy vấn con

thì thuật toán quay lại bước (3) và thực hiện bước lặp tiếp theo, nếu ngược lại thì thuật toán kết thúc.

Đặc điểm của thuật toán này là tìm kiếm trong không gian lời giải có giới hạn, trong đó quyết định tối ưu hóa được đưa ra cho mỗi bước mà không xem xét đến ảnh hưởng của nó lên tối ưu hóa toàn cục. Tuy nhiên tối ưu hóa truy vấn động có ích do việc xác định được chính xác kích thước thực sự của các quan hệ trung gian.

Lưu ý rằng tại bước 3.2 việc tối ưu hóa chính là xác định xem làm thế nào để thực thi câu truy vấn bằng cách chọn các mảnh sẽ được di chuyển (truyền) và các trạm chịu trách nhiệm xử lý. Với một câu truy vấn con n-quan hệ, các mảnh từ n-1 quan hệ phải được truyền tới trạm của các mảnh của quan hệ còn lại, chẳng hạn n là Rp , rồi được nhân bản tại đó. Cũng thế, quan hệ còn lại có thể được phân hoạch tiếp thành k mảnh bằng nhau để tăng độ song hành. Phương pháp này được gọi là phân mảnh – và – nhân

như trong INGRES tập trung. Nhờ việc này một số trạm đã giảm được thời gian đáp ứng truy vấn (nhờ việc xử lý song song),

nhưng lại tăng tổng chi phí đặc biệt là chi phí truyền.

Một phần của tài liệu CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ MỘT SỐ NGUYÊN LÝ CHUNG CỦA TỐI ƯU HOÁ TRUY VẤN (Trang 34)

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

(42 trang)
w