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

Một phần của tài liệu Tối ưu truy vấn cơ sở dữ liệu quan hệ và cơ sở dữ liệu phân tán bằng phương pháp Heuristic (Trang 41)

Trƣớc khi đi vào vấn đề chính chúng ta đƣa ra một số giả thiết nhƣ sau:

 Câu truy vấn đƣợc định vị trên các đoạn, ta dùng thuật ngữ quan hệ để chỉ một đoạn đƣợc lƣu trữ tại một trạm cụ thể.

 Tập trung vào việc sắp xếp thứ tự nối, bỏ qua thời gian xử lý cục bộ.

 Chỉ xem xét các câu truy vấn nối mà các toán hạng quan hệ đƣợc lƣu tại những trạm khác nhau.

 Giả sử việc truyền dữ liệu (quan hệ) đƣợc truyền theo mỗi lần một tập (set at a time), chứ không phải mỗi lần một bộ (tuple at a time).

 Bỏ qua chi phí truyền tại trạm kết quả.

Xét câu truy vấn chỉ có hai toán hạng R và S. Quan hệ đƣợc lựa chọn để truyền hiển nhiên là quan hệ nhỏ tới trạm chứa quan hệ lớn hơn.

R S

Nếu kích thƣớc (R) < kích thƣớc (S)

Nếu kích thƣớc (R) > kích thƣớc (S)

Kích thƣớc (R)=R* độ dài theo byte của một bộ của R

gian, do vậy việc đánh giá/ ƣớc lƣợng kích thƣớc kết quả nối là điều bắt buộc, nhƣng cũng khó khăn. Một giải pháp đƣợc đƣa ra là ƣớc lƣợng chi phí truyền của tất cả các phƣơng án, rồi chọn ra một phƣơng án tốt nhất.

Ví dụ 3.3:

Xét câu truy vấn sau dƣới dạng đại số quan hệ:

DUAN MSDA PHANCONG MSNV NHANVIEN

Ta có đồ thị nối tƣơng ứng trong hình 15

Với giả thiết vị trí của ba quan hệ nhƣ trên, ta có thể thực hiện câu truy vấn này bằng năm cách khác nhau:

1. NHANVIEN trạm 2. tại 2 tính toán

NHANVIEN’ = NHANVIEN  PHANCONG. truyền NHANVIEN’

trạm 3.

Tại trạm 3 tính toán NHANVIEN’  DUAN 2. PHANCONG trạm 1.

Tại trạm 1 tính toán NHANVIEN’ = NHANVIEN  PHANCONG. Truyền NHANVIEN’ trạm 3. Tại trạm 3 tính toán NHANVIEN’ 

DUAN

3. PHANCONG trạm 3.

Tại 3 tính toán PHANCONG’ = PHANCONG  DUAN Truyền PHANCONG’ trạm 1.

Tại trạm 1 tính toán PHANCONG’  NHANVIEN

PHANCONG DUAN NHANVIEN trạm 2 MSNV MSDA trạm 1 trạm 3

4. DUAN trạm 2. Tại 2 tính toán DUAN’ = DUAN  PHANCONG. Truyền DUAN’ trạm 1. Tại trạm 1 tính toán DUAN’  NHANVIEN 5. NHANVIEN trạm 2. DUAN trạm 2.

Tại 2 tính NHANVIEN  DUAN  PHANCONG.

Để có thể chọn đƣợc phƣơng án tốt thì ta cần phải đánh giá đƣợc: Size(NHANVIEN), size(PHANCONG), size(DUAN),

Size(NHANVIEN  PHANCONG), size(PHANCONG  DUAN), nếu ta quan tâm đến thời gian đáp ứng thì nên xét phƣơng án 5, do khả năng truyền song song. (adsbygoogle = window.adsbygoogle || []).push({});

Nếu các quan hệ đƣợc sắp xếp thứ tự theo kích thƣớc và thứ tự thực hiện sẽ đƣợc cho bởi cách xếp thứ tự và đồ thị nối. Ví dụ, nếu với thứ tự quan hệ (NHANVIEN, PHANCONG, DUAN) thì ta chọn phƣơng án 1, còn nếu với thứ tự (DUAN, PHANCONG, NHANVIEN) có thể dùng phƣơng án 4.

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

INGRES sử dụng thời điểm tối ƣu hoá độ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 hoá 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 đoạn ngang.

Đầu vào là câu truy vấn đƣợc diễn tả bằng phép tính quan hệ (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 đoạn. 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 hoá INGRES phân tán (D-INGRES-QOA) INTPUT: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

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 đoạn nhỏ nhất} MRQ’ SELECT_QUERY(MQR’_list) (3.1) { xác định các đoạn cần truyền và trạm xử lý cho MRQ’} fragment-site-list SELECT_STRATEGY(MRQ’) (3.2)

{ truyền các đoạn đã chọn tới trạm đựơc chọn}

for mỗi cặp (F,S) trong fragment-site-listdo (3.3) chuyển đoạn F đến trạm S

end-for

run(MRQ’) (3.4)

nn-1

end-while {Thành phẩm của thuật toán là kết quả của MRQ cuối cùng} 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: 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â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 đoạn 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à đoạn 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 hoá đƣợ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 hoá 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 hoá 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 đoạn sẽ đƣợc di chuyể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 đoạn từ n-1 quan hệ phải đƣợc truyền tới trạm của các đoạn của quan hệ còn lại, chẳng hạ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 đoạn bằng nhau để tăng độ song hành. Phƣơng pháp này đƣợc gọi là phân đoạn và nhân bản, và thực hiện phép thế các đoạn chứ không phải là thế bộ 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 Tối ưu truy vấn cơ sở dữ liệu quan hệ và cơ sở dữ liệu phân tán bằng phương pháp Heuristic (Trang 41)