Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

NỘI DUNG

PHẦN 4. CƠ SỞ DỮ LIỆU SONG SONG


Parallel Databases 1. Đặt vấn đề
2. Mục tiêu và tiêu chuẩn của cơ chế song song
TÀI LIỆU THAM KHẢO
3. Kiến trúc phần cứng
David J.Dewitt, Jim Gray, Parallel Database System: the
future of high performance database procesing, 4. Các kỹ thuật phân chia dữ liệu
Communication of the ACM, Volume 35, 1992. 5. Xử lý truy vấn song song
M. Tamer Ozsu, Patrick Valduriez, Distributed and Parallel
Database Systems, ACM Computing Surveys, Vol 28, No.
1, 3/1996
Waquar Hasan, Optimization of SQL queries for parallel
machines, Thesis Ph.D, Stanford University, 12/1995
Kien A. Hua, Parallel Database Technology, Báo cáo Hội
thảo “Một số vấn đề chọn lọc của CNTT”, Đại Lải, 8/1997
1
……………. 2

1. Đặt vấn đề 1. Đặt vấn đề


Vấn đề
đề xử lý CSDL Vấn đề
đề xử lý CSDL

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

Bó tin và vấn đề vào ra dữ liệu • Nút cổ chai vào/ra (I/O bottleneck)


Tại sao các mô hình CSDL song song đều được xây dựng
trên cơ sở mô hình dữ liệu quan hệ
• Sự phát triển rộng rãi của mô hình dữ liệu quan hệ
• Đại số quan hệ và ngôn ngữ vấn tin SQL rất phù hợp để xử lý
song song

Bó tin B không lọt bộ nhớ Bó tin B được chia nhỏ để tải


vào bộ nhớ trong 3 4
2. Mục tiêu và tiêu chuẩn của cơ chế song song 2. Mục tiêu và tiêu chuẩn của cơ chế song song

Độ tăng tốc Hệ thống song song lý tưởng


Thời gian thực hiện công việc J trên hệ thống nhỏ • Độ tăng tốc tuyến tính
• Độ tăng tốc = • Độ mở rộng tuyến tính
Thời gian thực hiện công việc J trên hệ thống lớn Trở ngại chung đối với độ tăng tốc và độ mở rộng
• Sự quá tải khi khởi động (startup)
• Độ tăng tốc là tuyến tính nếu một hệ thống lớn gấp N lần cho độ • Sự tranh chấp (interference)
tăng tốc là N.
• Sự không cân xứng (skew)

Độ 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

3. Kiến trúc phần cứng 3. Kiến trúc phần cứng

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

Kiến trúc dùng chung Kiến trúc chung đĩa


• Tất cả các đĩa và các mô đun bộ nhớ đều được dùng chung cho • Mỗi bộ xử lí có vùng nhớ riêng và cùng truy nhập tới các đĩa dùng
các bộ xử lí chung
• Mỗi bộ xử lí có thể đồng thời truy nhập trên nhiều mô đun bộ nhớ • ưu điểm
thông qua mạng liên kết – Truy nhập bộ nhớ nhanh hơn so với kiến trúc dùng chung
• Ưu điểm – Mạng liên kết có thể mở rộng tới hàng nghìn đĩa và bộ xử lí cho các
– Giao tiếp trong liên bộ xử lí nhanh CSDL chỉ đọc và các CSDL không có sự chia sẻ tương tranh

• Nhược điểm • Nhược điểm


– Dễ đụng độ – Đụng độ có thể xảy ra trầm trọng hơn hệ dùng chung
– Khó mở rộng để đáp ứng những CSDL lớn – Khó mở rộng cho hàng nghìn bộ xử lí và ổ đĩa cho hệ CSDL nói
chung
– Thời gian truy nhập bộ nhớ lâu hơn khi số bộ xử lí tăng

9 10

3. Kiến trúc phần cứng 3. Kiến trúc phần cứng

Kiến trúc không chia sẻ Kiến trúc lai (hybrid architecture)


• Nhiều nút xử lí • Tổng hợp từ 3 kiến trúc trên
• Mỗi nút như một máy tính độc lập: một bộ xử lí, một vùng nhớ và • Kiến trúc dùng chung được liên kết với nhau thông qua mạng
một ổ đĩa dành riêng truyền thông để tạo thành hệ không chia sẻ ở mức liên cụm
• Các nút được liên kết thông qua mạng truyền thông
• Ưu điểm
– Tối thiểu đụng độ
– Có thể khai thác được bộ xử lí và bộ nhớ cộng đồng mà không cần
một mạng liên kết quá lớn
– Dễ đồng bộ cache
– Tận dụng được các thành phần dùng chung (máy in, màn hình lớn,..)
khả năng thực hiện tốt, giá thành rẻ
– Khả năng mở rộng lớn
• Nhược điểm
– Chi phí truyền thông lớn hơn
11 12
4. Các kĩ thuật phân chia dữ liệu 4. Các kĩ thuật phân chia dữ liệu

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)

Phân chia theo khoảng (range partitioning)


Phân chia theo mảng nhiều chiều (multidimensional
partitioning)

• Ư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

Phân chia theo hàm băm


§Üa 0 §Üa 1 §Üa 2 §Üa 3
• Cần phân chia quan hệ R cho N đĩa (0, 1,…., N−1) dựa trên thuộc
msnv ... ... msnv ... ... msnv ... ... msnv ... ...
tính phân chia là A
0234 ... ... 2220 ... ... 2223 ... ... 2232 ... ..
• Bộ t được đưa vào đĩa k, với k = t.A mod N
2321 ... ...
• Ưu điểm
– Thuận lợi cho tìm kiếm kết hợp (dựa trên thuộc tính A)
• Nhược điểm
– Có xu hướng phân tán ngẫu nhiên dữ liệu hơn là phân nhóm dữ liệu
msnv hoten luong
– Không thích hợp với truy vấn khoảng (range query)
Bé thø 0 0234 ... 150
1 2220 ... 50
2 2223 ... 180
3 2232 ... 200
4 2321 ... 150
Nhanvien
15 16
4. Các kĩ thuật phân chia dữ liệu 4. Các kĩ thuật phân chia dữ liệu

§Üa 0 §Üa 1 §Üa 2 §Üa 3 Phân chia theo khoảng


• Nhóm những bộ có giá trị trên một thuộc tính thuộc một khoảng
msnv ... ... msnv ... ... msnv ... ... msnv ... ... các giá trị vào cùng một phần
2220 ... ... 2321 ... ... 0234 ... ... 2223 ... .. • Cần phân chia quan hệ R cho N đĩa dựa trên giá trị của thuộc tính
2232 ... ... A (thuộc tính phân chia − partitioning attribute)
• Bộ t được đưa vào đĩa k nếu t.A thuộc khoảng thứ k
• Ưu điểm
– Thuận tiện tìm kiếm kết hợp,
truy vấn khoảng dựa trên thuộc tính A,
msnv hoten luong nhóm dữ liệu

0234 ... ... • Nhược điểm


– Dễ gây mất cân xứng dữ liệu
... ... ...
dẫn đên mất cân xứng thi hành
Nhanvien

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

msnv hoten luong


– Phương pháp định vị theo mảng nhiều chiều tổng quát
0234 ... 150
2220 ... 50
2223 ... 180
2232 ... 200
2321 ... 150
Nhanvien
19 20
4. Các kĩ thuật phân chia dữ liệu 4. Các kĩ thuật phân chia dữ liệu

• 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

4. Các kĩ thuật phân chia dữ liệu

Ví dụ, giả sử các giá trị a1,a2∈dom(A), b1,b2∈dom(B), Đường Hilbert

Truy vấn dạng hàng [D.Hilbert,1891.]

Q1: SELECT * FROM R


WHERE R.A BETWEEN a1 AND a2;
Truy vấn dạng cột
Q2: SELECT * FROM R
WHERE R.B BETWEEN b1 AND b2;
Phương pháp
Truy vấn vuông
định vị theo
Q3: SELECT * FROM R đường Hilbert
WHERE (R.A BETWEEN a1 AND a2)
AND (R.B BETWEEN b1 AND b2);
23 24
4. Các kĩ thuật phân chia dữ liệu

Phương pháp định vị theo mảng nhiều chiều tổng quát


(GeMDA−General Multidimentional Data Allocation)
[Hua, Lo và Young, 1994]
• Cần phân chia quan hệ R cho N đĩa theo giá trị của hai thuộc tính
A và B
• Chia A, B thành N khoảng. Bộ t đưa tới đĩa được xác định bởi:

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

4. Các kĩ thuật phân chia dữ liệu 5. Xử lý truy vấn song song

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)

 d  X .GCDi   • song song nội toán tử (intra−operator parallelism)


GeMDA( X1 , X 2 ,..., X d ) = ∑i =2  i + ∑i =1 ( X i . Shif _ dist i ) mod N
d

 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

GCDi =gcd(Shift_disti ,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

5. Xử lý truy vấn song song 5. Xử lý truy vấn song song

Lập lịch theo kế hoạch Song song nội truy vấn


(planning−based scheduling) • Thực hiện đồng thời nhiều phép toán của cùng một truy vấn
– Song song độc lập: hai phép tóan độc lập nhau, phép toán này không
sử dụng kết quả của phép toán kia, có thể thực hiện đồng thời trên
các bộ xử lý khác nhau
– Song song dạng ống: kết quả của phép toán này chuyển làm dữ liệu
vào của phép toán kia

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

5. Xử lý truy vấn song song 5. Xử lý truy vấn song song

Với phép toán hai ngôi Phép toán song song


• Chiến lược chia và lặp (partition and replication) • Phép ghép
– Gỉa sử T = T0 ∪ T1∪ ... ∪ Tk , quan hệ S được lặp lại ở mọi nút có • Phép tách
phần dữ liệu của T. Khi đó: k
T ⋈S = U (Ti ⋈ Si)
i =0

35 36
5. Xử lý truy vấn song song 5. Xử lý truy vấn song song

Ví dụ: Tối ưu hóa truy vấn song song


INSERT INTO C SELECT * FROM Nhanvien, Nvdetai
WHERE Nhanvien.msnv = Nvdetai.msnv

phép ghép

thực hiện song song các phép


kết nối
phép tách

37 38

You might also like