Professional Documents
Culture Documents
4.parallel DB PDF
4.parallel DB PDF
Dữ liệu được lưu trữ trên bộ nhớ thứ cấp Tại sao cần xử lý song song CSDL?
Để thao tác với dữ liệu trong CSDL, cần chuyển dữ liệu • Tiến bộ vượt bậc trong kĩ thuật vi xử lý
vào bộ nhớ trong • CSDL lớn
Độ mở rộng
Thời gian thực hiện bài toán nhỏ trên hệ thống nhỏ
• Độ mở rộng =
Thời gian thực hiện bài toán lớn trên hệ thống lớn
• Độ mở rộng là tuyến tính nếu bằng 1.
5 6
Hệ cơ sở dữ liệu lý tưởng
• một bộ xử lý nhanh vô hạn
• một bộ nhớ lớn vô hạn với giải thông vô hạn
• giá thành rẻ
Mục tiêu song song hóa:
• xây dựng một bộ xử lý nhanh vô hạn từ một lượng vô hạn các bộ
xử lý có tốc độ hữu hạn
• xây dựng một bộ nhớ lớn vô hạn với giải thông vô hạn từ một
lượng vô hạn các đơn vị lưu trữ có tốc độ hữu hạn
xây dựng hệ đa xử lí dễ mở rộng, CSDL phân tán trên nhiều đĩa
Ba kiến trúc song song cơ bản cho server CSDL
• Kiến trúc dùng chung (shared−everything)
• Kiến trúc chung đĩa (shared −disk)
• Kiến trúc không chia sẻ (shared−nothing)
7 8
3. Kiến trúc phần cứng 3. Kiến trúc phần cứng
9 10
Phân chia rải ranh (round−robin partitioning) Phân chia rải ranh
Phân chia theo hàm băm (hash partitioning) • Bộ thứ i được đặt vào đĩa thứ i mod N (N là số ổ đĩa)
• Ưu điểm
– Đơn giản, dữ liệu được chia đều cho các đĩa
• Nhược điểm
– Không thích hợp với tìm kiếm kết hợp (associative search)
13 14
4. Các kĩ thuật phân chia dữ liệu 4. Các kĩ thuật phân chia dữ liệu
17 18
4. Các kĩ thuật phân chia dữ liệu 4. Các kĩ thuật phân chia dữ liệu
luong<=50 50<luong<=100 100<luong<=200 200<luong
Phân chia theo mảng nhiều chiều
§Üa 0 §Üa 1 §Üa 2 §Üa 3
msnv ... ... msnv ... ... msnv ... ... msnv ... ... • Phân chia theo khoảng dựa trên hai hay nhiều thuộc tính
2220 ... ... 0234 ... ... • Ưu diểm:
2223 ... ... – Độ song song tăng cực đại
2232 ... ... – Không gian tìm kiếm đạt cực tiểu
2321 ... ...
• Một số phương pháp
– Phân chia lấy mô đun kết hợp
– Phương pháp định vị theo đường Hilbert
• Phân chia quan hệ R cho N đĩa (đánh số từ 0,1,…, N−1) dựa trên Phương pháp phân chia
hai thuộc tính A và B lấy mô đun kết hợp
• Chia miền trị của A, B thành N khoảng. (CMD − Coordinate
• Xây dựng mảng M[N,N] sao cho mỗi phần tử M[i,j] chỉ số thứ tự Module Declustering [Li,
của một ổ đĩa Srivastava và Roterm,
• Bộ t được đưa tới đĩa thứ M[ i, j] nếu t.A thuộc khoảng thứ i trên
1992]
thuộc tính A và t.B thuộc khoảng thứ j trên B • Phân chia quan hệ R cho
N đĩa (đánh số từ 0,1,…,
N−1) dựa trên hai thuộc
tính A và B
• Chia miền trị của A, B
thành N khoảng. Bộ t
được đưa tới đĩa thứ:
CMD[i,j] = (i+j) mod N,
nếu t.A thuộc khoảng thứ i
trên thuộc tính A và t.B
thuộc khoảng thứ j trên B
21 22
i∗ GCD
GeMDA[ i , j ] = ( + j + i∗ Shif _ dist ) mod N
N
• Shif_dist = N
• GCD = gcd(N,Shif_dist) SELECT *
FROM Nhanvien
WHERE (luong BETWEEN 50 AND 100)
AND (hoten BETWEEEN “L” AND “R”);
25 26
Tổng quát, phương pháp định vị theo mảng d chiều cho N Các mô hình của cơ chế song song
đĩa xác định số thứ tự của đĩa cho mảnh tương ứng với • song song liên truy vấn (inter−query parallelism)
khối (X1,X2,...,Xd) theo công thức: • song song nội truy vấn (intra−query parallelism)
N
Các phép toán song song
• Phép ghép
• Phép tách
Tối ưu hóa truy vấn song song
N: số đĩa; d: số thuộc tính phân chia
i −1
Shif _ dist i = d N : bước dịch chuyển
27 28
5. Xử lý truy vấn song song 5. Xử lý truy vấn song song
Song song liên truy vấn Lập lịch trên cơ sở cạnh tranh
• Thực hiện đồng thời nhiều truy vấn (competition−based scheduling)
• Sắp xếp lịch thực hiện các phép toán CSDL trên những truy vấn
song song
– Lập lịch trên cơ sở cạnh tranh
– Lập lịch theo kế hoạch
• Tạo ít nhất một tiến trình ở mỗi bộ xử lý cho mỗi loại phép toán
CSDL nguyên thủy (gọi là toán tử phục vụ/operator server)
• Các truy vấn song song sử dụng chung các toán tử phục vụ
29 30
INSERT INTO C
SELECT *
FROM Nhanvien, Nvdetai
WHERE Nhanvien.msnv = Nvdetai.msnv
31 32
5. Xử lý truy vấn song song 5. Xử lý truy vấn song song
Song song nội toán tử (hay song song phân Với phép toán hai ngôi:
chia/partitioned parallelism) • Chiến lược phân chia cả hai quan hệ
• Các quan hệ (toán hạng) được phân chia và lưu trên nhiều đĩa – T = T0 ∪ T1∪ ... ∪ Tk ; S = S0 ∪ S1∪ ... ∪ Sk ta luôn có:
• Việc thực hiện một phép toán được thay bằng việc thực hiện song T ∪ S = (T0 ∪ S0 ) ∪ (T1 ∪ S1 )∪ ...∪ (Tk ∪ Sk )
song nhiều phép toán con trên các phần dữ liêụ bởi nhiều bộ xử lí – T = T0 ∪ T1∪ ... ∪ Tk ; S = S0 ∪ S1∪ ... ∪ Sk
• Với phép toán một ngôi: T = T0 ∪ T1∪ ... ∪ Tk . Khi đó T và S cùng được áp dụng một chiến lược phân chia dữ liệu theo giá
trị trên thuộc tính. Khi đó:
θ(T) = θ(T0 ) ∪ θ(T1 ) ∪ ... ∪ θ(Tk )
T ∩ S = (Ti ∩ Si )
θ là phép chọn, chiếu, nhóm
T\S= (Ti \ Si )
– T = T0 ∪ T1∪ ... ∪ Tk ; S = S0 ∪ S1∪ ... ∪ Sk
sao cho với bộ t∈T, s∈S nếu t∈Ti, s∈Si thì t và s có thể kết nối được
với nhau. Khi đó: k
T ⋈S = U (Ti ⋈ Si)
i =0
33 34
35 36
5. Xử lý truy vấn song song 5. Xử lý truy vấn song song
phép ghép
37 38