You are on page 1of 5

1.

Giới thiệu

Mục tiêu của xử lý truy vấn song song là chuyển đổi các truy vấn thành các kế hoạch có
thể được thực hiện song song một cách hiệu quả. Điều này đạt được bằng cách khai thác
vị trí dữ liệu song song và các dạng song song khác nhau được cung cấp bởi các truy vấn
cấp cao, trước tiên chúng tôi giới thiệu các thuật toán song song cơ bản để xử lý dữ liệu

2. Thuật toán
Thuật toán vòng lặp lồng nhau song song
Thuật toán tham gia băm song song

1.1 Thuật toán vòng lặp lồng nhau song song rất đơn giản và tổng quát. Nó thực hiện
phương pháp phân đoạn và sao chép.

Thuật toán này được mô tả trong hình, trong đó kết quả nối được tạo ra tại các nút S, tức
là S được chọn làm quan hệ bên trong. Thuật toán tiến hành theo hai giai đoạn.

Trong giai đoạn đầu tiên, mỗi đoạn của R được gửi và sao chép tại mỗi nút chứa một
đoạn của S (có n nút như vậy). Giai đoạn này được thực hiện song song bởi m nút; do đó,
(m n) tin nhắn là cần thiết.

Trong giai đoạn thứ hai, mỗi nút S j nhận được toàn bộ quan hệ R và nối cục bộ R với
đoạn Sj. Giai đoạn này được thực hiện song song bởi n nút. Việc nối cục bộ có thể được
thực hiện như trong DBMS tập trung. Tùy thuộc vào thuật toán nối cục bộ, quá trình xử
lý nối có thể bắt đầu hoặc không bắt đầu ngay khi nhận được dữ liệu. Nếu thuật toán nối
vòng lặp lồng nhau, có thể có chỉ mục trên thuộc tính nối của S, được sử dụng, thì quá
trình xử lý nối có thể được thực hiện theo kiểu đường dẫn ngay khi có bộ dữ liệu R.
1.2 Thuật toán tham gia băm song song

Thuật toán nối băm song song chỉ áp dụng trong trường hợp nối đẳng thức và không yêu
cầu bất kỳ sự phân chia cụ thể nào của các quan hệ toán hạng.

Trong Hình 8.12, thuật toán ghép nối băm song song được áp dụng với m×n≤2. Giả sử
kết quả được tạo ra tại các node 1 và 2. Do đó, một mũi tên từ node 1 đến node 1 hoặc từ
node 2 đến node 2 cho biết một chuyển giao cục bộ.

Thuật toán có thể được chia thành hai giai đoạn chính, giai đoạn xây dựng và giai đoạn
thăm dò. Băm giai đoạn xây dựng R được sử dụng làm mối quan hệ bên trong, trên thuộc
tính nối, gửi nó đến các nút p đích để xây dựng bảng băm cho các bộ dữ liệu đến. Giai
đoạn thăm dò gửi S, mối quan hệ bên ngoài, liên kết với các nút p mục tiêu để thăm dò
bảng băm cho mỗi bộ dữ liệu đến. Do đó, ngay sau khi các bảng băm được xây dựng cho
R, các bộ dữ liệu S có thể được gửi và xử lý trong đường ống bằng cách thăm dò các
bảng băm.

Thuật toán nối băm song song thường hiệu quả hơn nhiều so với thuật toán nối vòng lặp
lồng nhau song song, vì nó yêu cầu truyền dữ liệu ít hơn và xử lý nối cục bộ ít hơn trong
giai đoạn thăm dò

3. Biến thể

Các thuật toán nối song song cơ bản đã được sử dụng trong nhiều biến thể, đặc biệt là để
xử lý truy vấn thích ứng hoặc khai thác bộ nhớ chính và bộ xử lý đa lõi.
4. Tối ưu hoá

Tối ưu hóa truy vấn song song thể hiện sự tương đồng với xử lý truy vấn phân tán. Tuy
nhiên, nó tập trung nhiều hơn vào việc tận dụng cả tính song song của các toán tử nội bộ
(sử dụng các thuật toán được mô tả ở trên) và tính song song của các toán tử tương tác.
Giống như bất kỳ trình tối ưu hóa truy vấn nào, trình tối ưu hóa truy vấn song song có ba
thành phần: không gian tìm kiếm, mô hình chi phí và chiến lược tìm kiếm.

5. Cây toán tử

Hình 8.14 mô tả bốn cây toán tử biểu diễn các kế hoạch thực thi cho một phép nối ba
cách. Các cây toán tử có thể là tuyến tính hoặc cây, với cây sâu bên phải biểu diễn đường
ống đầy đủ và cây sâu bên trái biểu diễn vật liệu hóa đầy đủ của kết quả trung gian. Các
cây toán tử khác, cho phép song song độc lập và một số song song theo đường ống. Đối
với các mối quan hệ được phân vùng trên các home không giao nhau, song song độc lập
rất hữu ích.

6. Cây thực thi

Hình 8.13 cho thấy hai cây thực thi, một cái không có đường ống (Hình 8.13a) và một cái
có đường ống (Hình 8.13b). Trong Hình 8.13a, mối quan hệ tạm thời Temp1 phải được
tạo hoàn toàn và bảng băm trong Build2 phải được xây dựng trước khi Probe2 có thể bắt
đầu tiêu thụ R3. Điều này cũng đúng cho Temp2, Build3 và Probe3. Do đó, cây trie được
thực thi trong bốn giai đoạn liên tiếp: (1) xây dựng bảng băm của R1, (2) dò sát nó với
R2 và xây dựng bảng băm của Temp1, (3) dò sát nó với R3 và xây dựng bảng băm của
Temp2, (4) dò sát nó với R3 và tạo ra kết quả. Hình 8.13b cho thấy một cây thực thi
đường ống. Cây trie có thể được thực thi trong hai giai đoạn nếu đủ bộ nhớ để xây dựng
các bảng băm: (1) xây dựng các bảng cho R1 R3 và R4, (2) thực thi Probe1, Probe2 và
Probe3 theo đường ống.
Để giảm bớt việc điều hướng trong không gian tìm kiếm bởi bộ tối ưu hóa, việc phân
phối lại dữ liệu có thể được đóng gói trong một toán tử trao đổi. Tùy thuộc vào cách thức
phân phối, chúng ta có thể có các toán tử trao đổi khác nhau như phân vùng theo băm,
phân vùng theo dải, hoặc sao chép dữ liệu đến một số node. Các ví dụ về việc sử dụng
các toán tử trao đổi là:

• Ghép nối băm song song: phân vùng theo băm của các mối quan hệ đầu vào trên
thuộc tính ghép nối tiếp theo là ghép nối cục bộ.

• Ghép nối vòng lặp lồng nhau song song: sao chép mối quan hệ trong bên trong tới
các node nơi mà mối quan hệ bên ngoài được phân vùng, tiếp theo là ghép nối cục bộ.

• Sắp xếp theo dải song song: phân vùng theo dải tiếp theo là sắp xếp cục bộ.

7. Toán tử trao đổi

Hình 8.15 thể hiện một ví dụ về trie toán tử với các toán tử trao đổi. Phép nối được thực
hiện bằng cách phân vùng theo băm của các mối quan hệ đầu vào trên A (toán tử Xchg1
và Xchg2), tiếp theo là ghép nối cục bộ. Các phép chiếu được thực hiện bằng cách loại bỏ
các bản sao bằng cách sử dụng hàm băm (toán tử Xchg3), tiếp theo là dự án cục bộ.

8. Mô hình chi phí

mô hình chi phí tối ưu hóa có trách nhiệm ước tính chi phí của một kế hoạch thực hiện
nhất định

Nó bao gồm hai phần: phụ thuộc vào kiến trúc và độc lập với kiến trúc. Phần độc lập với
kiến trúc được cấu thành bởi các hàm chi phí cho các thuật toán toán tử, Trong các hệ
thống bộ nhớ dùng chung, tất cả người vận hành đều đọc và ghi dữ liệu thông qua bộ nhớ
chung và rất dễ kiểm tra xem có đủ không gian để thực thi hay không.
chúng song song, tức là tổng mức tiêu thụ bộ nhớ của từng toán tử nhỏ hơn bộ nhớ khả
dụng. Trong chế độ không chia sẻ, mỗi bộ xử lý có bộ nhớ riêng và điều quan trọng là
phải biết toán tử nào được thực thi song song trên cùng một bộ xử lý

Tổng thời gian của một kế hoạch có thể được tính bằng công thức chỉ cần cộng tất cả các
thành phần chi phí CPU, I/O và truyền thông như trong tối ưu hóa truy vấn phân tán.
Thời gian phản hồi có liên quan nhiều hơn vì nó phải tính đến đường ống.

Để ước tính chi phí của một kế hoạch thực hiện, mô hình chi phí sử dụng số liệu thống kê
cơ sở dữ liệu và thông tin tổ chức, chẳng hạn như số lượng quan hệ và phân vùng, cũng
như tối ưu hóa truy vấn phân tán.

You might also like