Tải bản đầy đủ (.pdf) (110 trang)

Xây dựng mô hình xử lý song song câu truy vấn trên cơ sở dữ liệu phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (940.99 KB, 110 trang )

84.3266

Đại Học Quốc Gia TP. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
------------------

#"

NGUYỄN THỊ TH THANH

XÂY DỰNG MƠ HÌNH XỬ LÝ SONG SONG
CÂU TRUY VẤN TRÊN CƠ SỞ DỮ LIỆU
PHÂN TÁN

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ NGÀNH: 01.02.10

LUẬN VĂN THẠC SĨ

TP. Hồ Chí Minh, tháng 11 năm 2004


Lời cảm ơn
Tơi xin cám ơn tồn thể các Thầy Cô công tác tại khoa Công Nghệ Thông Tin,
trường Đại học Bách Khoa TpHCM, đã cung cấp kiến thức trong q trình học tại
trường để tơi thực hiện luận văn.
Xin chân thành cảm ơn thầy hướng dẫn luận văn của tôi, Thầy Trần Văn Lăng,
người trực tiếp hướng dẫn, giúp tơi tìm hướng giải quyết trong q trình thực
hiện luận văn. Tôi cũng xin cám ơn Thầy và các bạn làm việc tại Phân Viện Công
Nghệ Thông Tin TpHCM, đã tạo điều kiện và hổ trợ máy tính trong quá trình thử
nghiệm chương trình.


Xin cảm ơn những người bạn và gia đình đã giúp đỡ và động viên tinh thần
trong q trình thực hiện để đề tài hồn thành.

NGUYỄN THỊ THÚY THANH

Trang 1


Abstract
The trend in database applications is that databases are becoming more and larger
and user queries are becoming more and more complex. This trend is driven by new
application areas such as decision support, multi-media applications, scientific data
visualization, and information retrieval. It has become increasingly difficult for
conventional single processor computer systems to meet the CPU and I/O demands of
relational DBMS searching terabyte databases or processing complex queries.
Therefore, the way to meet the high CPU and I/O demands of these database
applications is to build a parallel database system based on a large number of
processors to process parallel query. Performance of database systems can be
improved by applying parallel processing techniques. Several commercial parallel
database systems are available but these are expensive. In the parallel processing area,
there is a trend to use networks of workstations as a virtual parallel machine. There is
some available of public domain software (such as PVM and MPI) to configure a
parallel virtual machine over network of workstation. This thesis proposes the use of
network of workstation to process parallel query. Three databases are applied in this
thesis are GigaBASE, mSQL, PostgreSQL.

NGUYỄN THỊ THÚY THANH

Trang 2



LỜI NÓI ĐẦU

Xử lý song song truy vấn là một công việc cần thiết khi thao tác trên các hệ thống
ứng dụng cơ sở dữ liệu lớn. Ngày nay đã có một số hệ quản trị CSDL thương mại hổ
trợ việc song song truy vấn. Tuy nhiên, các hệ CSDL thương mại này rất đắt. Luận văn
này nghiên cứu và áp dụng hai phương pháp song song truy vấn trên ba hệ CSDL,
phương pháp phân tích cắt câu truy vấn và phương pháp phân chia dữ liệu, để thực
hiện việc song song hoá một câu truy vấn. Các CSDL được chọn để thực hiện là
GigaBASE, mSQL và PostgreSQL, là các hệ quản trị CSDL chưa hổ trợ xử lý song
song truy vấn và vẫn còn đang nghiên cứu. Cũng là các CSDL phổ biến và được dùng
nhiều trong các ứng dụng lớn.
Đối với phương pháp thứ nhất, luận văn đã bước đầu xây dựng chương trình cắt câu
truy vấn bằng cách phân tích câu truy vấn ban đầu thành cây truy vấn, mà mỗi nút của
cây này tương ứng với một phép tốn đại số quan hệ. Vì thế, mỗi nút của cây này sẽ
được chuyển đổi thành một câu truy vấn con. Các truy vấn con độc lập dữ liệu sẽ được
thực thi song song trên nhiều máy. CSDL được phân bố trên các máy. Các truy vấn
con độc lập dữ liệu sẽ được thực thi đồng thời tùy theo vị trí đặt dữ liệu và trả kết quả
trung gian cho một máy. Và máy này sẽ thực thi các truy vấn còn lại. Phương pháp này
được áp dụng cho hai CSDL là mSQL và PostgreSQL, trên môi trường PVM.
Đối với phương pháp thứ hai, phương pháp phân chia dữ liệu, luận văn đã thực hiện
việc phân chia dữ liệu thực thi cho các máy bằng phương pháp chia khoảng. Sau khi
truy vấn được nhận vào từ người sử dụng, hệ thống sẽ tiến hành phân chia dữ liệu cho
các máy trong hệ thống theo số máy có trên hệ thống. Sau đó, các máy sẽ thực thi truy
vấn trên phần dữ liệu tương ứng của máy đó (CSDL sẽ được đặt trên nhiều máy). Các
máy thực thi xong sẽ gởi kết quả về cho một máy, máy này tổng hợp kết quả và in ra
cho người dùng. Phương pháp này được hiện thực cho cơ sở dữ liệu GigaBASE, trên
môi trường PVM.
Các nội dung và kết quả nêu trên được trình bày trong luận văn gồm 5 chương.
Trong đó, chương đầu tiên giới thiệu tổng quan về đề tài luận văn, các cơng trình

nghiên cứu có liên quan và các thuật ngữ được sử dụng trong luận văn. Chương thứ
NGUYỄN THỊ THÚY THANH

Trang 3


hai, trình bày các khái niệm về song song hố dữ liệu. Chương này trình bày tương đối
chi tiết về các hình thức song song hố truy vấn đối với các câu truy vấn. Bên cạnh đó,
cũng đề cập đến vấn đề liên quan đến song song hoá là các kiến trúc đa xử lý thường
dùng để giải quyết các bài tốn song song. Một số ví dụ về song song hóa của các cơ
sở dữ liệu tương ứng với các kiến trúc cũng được trình bày trong chương này. Đặc biệt,
có nêu lên các phương pháp song song hóa câu truy vấn.
Trong chương 3, dành để trình bày về việc phân tích hệ thống truy vấn song song.
Chương này phân tích một số đặc điểm của ba CSDL khác nhau, qua đó đưa ra cách
hiện thực thích hợp cho từng CSDL. Trong phần này các khía cạnh về lập trình song
song cũng được phân tích và khảo sát như khái niệm speedup, tính tốn thời gian thực
thi, chi phí thực thi song song
Chương 4 dùng để trình bày những mơ hình hiện thực từ các giải thuật đã phân tích
và thiết kế. Chương này cũng trình bày những kết quả thực nghiệm trên các hệ thống
thực và đưa ra những nhận xét, so sánh và đánh giá kết quả đạt được của luận văn.
Chương thứ năm là chương cuối của luận văn, trình bày những kết quả đạt được, một
số những đánh giá trên kết quả. Đặc biệt, trong chương này cũng đưa ra một số định
hướng trong tương lai khi cần phát triển thành luận án cao hơn.
Trong phần phụ lục, được phân chia theo thứ tự A, B, C, D. Trong đó Phụ lục A
giới thiệu về mơi trường lập trình song song PVM và CPPvm. Trong phần này giới
thiệu một cách tổng quát về lập trình song song và khái niệm về phần mềm hệ thống
hổ trợ lập trình song song. Các khái niệm và kiến trúc tổng qt của mơi trường lập
trình PVM và CPPvm cũng được giới thiệu.
Phụ lục B giới thiệu về hệ cơ sở dữ liệu GigaBASE và các đặc điểm hỗ trợ̣ song
song hoá trong hệ quản trị cơ sở dữ liệu này. Phụ lục C giới thiệu về cơ sở dữ liệu

mSQL và một số đặc điểm và hàm giao tiếp người dùng của cơ sở dữ liệu này. Phụ lục
D giới thiệu về cơ sở dữ liệu PostgreSQL và các đặc điểm của nó
Nguyễn Thị Thuý Thanh

NGUYỄN THỊ THÚY THANH

Trang 4


Luận văn Thạc sĩ

MỤC LỤC
Lời cảm ơn............................................................................................................................... 1
MỤC LỤC...................................................................................................................................i
DANH MỤC HÌNH ..................................................................................................................iv
Chương 1 - GIỚI THIỆU ........................................................................................................... 5
1.1. Tổng quan:....................................................................................................................... 5
1.2. Các cơng trình liên quan.................................................................................................. 7
1.3. Một số khái niệm và thuật ngữ ...................................................................................... 10
Chương 2 - CÁC HÌNH THỨC SONG SONG HÓA CÂU TRUY VẤN ............................... 12
2.1. Các hình thức song song hố......................................................................................... 12
2.1.1. Song song bên trong mỗi tác vụ ............................................................................. 12
2.1.2. Song song giữa các tác vụ khác nhau ..................................................................... 12
2.1.3. Song song hoá bên trong câu truy vấn.................................................................... 12
2.1.4. Song song giữa các truy vấn khác nhau ................................................................. 13
2.2. Các kiến trúc đa xử lý.................................................................................................... 14
2.2.1. Kiến trúc dùng chung bộ nhớ ................................................................................. 14
2.2.2. Kiến trúc dùng chung đĩa........................................................................................ 15
2.2.3. Kiến trúc không dùng chung gì cả.......................................................................... 16
2.3. Các phương pháp song song truy vấn............................................................................ 18

2.3.1. Phương pháp song song bên trong tác vụ ............................................................... 18
2.3.2. Song song hoá của các tác vụ quan hệ ................................................................... 19
2.3.3. Phương pháp song song câu truy vấn theo Inter-operator...................................... 22
2.3.4. Một số các ràng buộc trên hệ thống song song [12]............................................... 28
2.3.5. Thiết lập ràng buộc giữa các nút trong cây truy vấn .............................................. 28
2.3.6. Câu truy vấn con cho các bộ xử lý ......................................................................... 29
Chương 3 - PHÂN TÍCH HỆ THỐNG TRUY VẤN SONG SONG ....................................... 32
3.1. Phân tích cắt câu truy vấn:............................................................................................. 32
3.1.1. Chuyển câu truy vấn thành cây tác vụ quan hệ .......................................................... 32
NGUYỄN THỊ THÚY THANH

i


Luận văn Thạc sĩ
3.1.2. Chuyển các nút của cây truy vấn thành các truy vấn con........................................... 34
3.2. Phân tích việc truy vấn trên một số hệ quản trị cơ sở dữ liệu ....................................... 36
3.3. Phân tích chi phí theo phương pháp cắt dữ liệu ............................................................ 37
3.4. Phân tích chi phí cho phương pháp cắt truy vấn ........................................................... 48
Chương 4 - HIỆN THỰC HỆ THỐNG.................................................................................... 55
4.1. Cấu trúc dữ liệu ............................................................................................................. 55
4.1.1. Cây tốn tử.............................................................................................................. 55
4.1.2. Nhóm thuộc tính chiếu/chọn................................................................................... 56
4.1.3. Nhóm điều kiện chọn.............................................................................................. 56
4.1.4. Nhóm điều kiện kết ................................................................................................ 56
4.1.5. Câu truy vấn và các thông tin kèm theo ................................................................. 57
4.2. Hiện thực hệ thống ........................................................................................................ 57
4.2.1. Trên hệ quản trị cơ sở dữ liệu GigaBASE.............................................................. 58
4.2.2. Trên hệ quản trị cơ sở dữ liệu mSQL và PostgreSQL:........................................... 61
4.3. Một số kết quả ............................................................................................................... 62

Chương 5 - Kết luận và hướng phát triển ................................................................................. 71
5.1. Các kết quả thu được: .................................................................................................... 71
5.2. Những hạn chế:.............................................................................................................. 71
5.3. Hướng phát triển của đề tài ........................................................................................... 72
5.4. Lời kết: .......................................................................................................................... 73
TÀI LIỆU THAM KHẢO ........................................................................................................ 75
Phụ lục A - MÔI TRƯỜNG LẬP TRÌNH SONG SONG PVM VÀ CPPVM......................... 78
A.1. Tổng quan về lập trình song song và PVM .................................................................. 78
A.1.1. Tính tốn trên mạng không đồng nhất (Heterogeneous Network) ....................... 79
A.1.2. Tổng quan về PVM................................................................................................ 80
A.2. Hệ thống PVM.............................................................................................................. 81
A.3. CPPvm – Lập trình C++ trên PVM .............................................................................. 88
A.3.1. Các khái niệm trong CPPvm ................................................................................. 88
A.4. Sử dụng PVM ............................................................................................................... 90
A.4.1. Cài đặt PVM trên UNIX ........................................................................................ 90
NGUYỄN THỊ THÚY THANH

ii


Luận văn Thạc sĩ
A.4.2. Chạy PVM ............................................................................................................. 91
Phụ lục B - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU gigaBASE...................................................... 94
B.1. Giới thiệu........................................................................................................................ 94
B.2. Một số đặc điểm của CSDL GigaBASE [4]..................................................................... 94
Phụ lục C - HỆ QUẢN TRỊ CỞ SỞ DỮ LIỆU mSQL (mini SQL):....................................... 96
C.1. Giới thiệu và lịch sử:..................................................................................................... 96
C.2. Các đặc điểm/ tính năng của Mini SQL:....................................................................... 96
C.3. Công cụ CSDL (Database engine):............................................................................... 97
C.3.1. mSQL Terminal Monitor: ...................................................................................... 97

C.3.2. Quản trị CSDL mSQL: .......................................................................................... 98
C.3.3. mSQL Schema Viewer: ......................................................................................... 98
C.3.4. mSQL Database Dumper: ...................................................................................... 99
C.3.5. Giao diện lập trình ứng dụng cho ngơn ngữ C (API): ........................................... 99
C.4. C Programming API của mSQL ................................................................................... 99
C.4.1. Giới thiệu: .............................................................................................................. 99
C.4.2. Các hàm liên quan đến truy vấn: ........................................................................... 99
Phụ lục D - HỆ QUẢN TRỊ CỞ SỞ DỮ LIỆU postgreSQL ................................................. 104
D.1. Giới thiệu và lịch sử.................................................................................................... 104
D.2. Vài nét về kiến trúc..................................................................................................... 105
D.3. Tạo CSDL................................................................................................................... 105

NGUYỄN THỊ THÚY THANH

iii


Luận văn Thạc sĩ

DANH MỤC HÌNH
Hình 2.1-1 Mơ hình song song hóa bên trong câu truy vấn ..........................................13
Hình 2.1-2 Mơ hình song song hóa giữa các câu truy vấn ............................................14
Hình 2.2-1 Kiến trúc đa xử lý dùng chung bộ nhớ........................................................15
Hình 2.2-2 Kiến trúc đa xử lý dùng chung đĩa ..............................................................16
Hình 2.2-3 Kiến trúc đa xử lý khơng dùng chung gì cả ................................................17
Hình 2.3-1 Ví dụ giải thuật Hash-Join cơ bản...............................................................20
Hình 2.3-2 Chuyển phép toán tuần tự sang phép toán song song .................................21
Hình 2.3-3 Quá trình xử lý song song câu truy vấn ......................................................25
Hình 2.3-4 Ví dụ cây truy vấn .......................................................................................26
Hình 2.3-5 Tối ưu cây truy vấn .....................................................................................26

Hình 2.3-6 Cây tác vụ vật lý..........................................................................................27
Hình A.2-1 Mơ hình tính tốn PVM ...........................................................................84
Hình A.2-2 Tổng quan kiến trúc hệ thống PVM ...........................................................84
Hình A.3-1 Cấu trúc message class dùng cho truyền thông điệp tườngminh cũng như
các đối tượng phân tán và mailbox........................................................................89

NGUYỄN THỊ THÚY THANH

iv


Luận văn Thạc sĩ

Chương 1 - GIỚI THIỆU
Chương này giới thiệu tổng quan về đề tài, trình bày một số những cơng trình liên
quan đến nội dung của luận văn. Một số thuật ngữ dùng trong luận văn cũng được giới
thiệu ở đây.

1.1. Tổng quan:
Việc tìm kiếm dữ liệu và xử lý các câu truy vấn phức tạp ngày càng trở nên khó
khăn và mất nhiều thời gian để thực thi trên hệ thống máy đơn. Đặc biệt với các hệ cơ
sở dữ liệu (CSDL) lớn, được phân tán trên các máy server khác nhau, việc thực hiện
các câu truy vấn sao cho hiệu quả là một vấn đề thời sự cần đặt ra. Bên cạnh đó, các
ứng dụng CSDL có khuynh hướng ngày càng nhiều, dữ liệu càng lớn. Cùng với sự
phát triển không ngừng của các quan hệ, các câu truy vấn của người dùng ngày càng
phức tạp hơn. Ví dụ trong một số ứng dụng như hệ hỗ trợ ra quyết định, các ứng dụng
multimedia, ứng dụng tìm kiếm thơng tin. Những độ khó khăn của hệ thống máy tính
đơn sẽ tăng lên khi gặp các yêu cầu truy cập CPU, ngoại vi hay xử lý các câu truy vấn
phức tạp của các cơ sở dữ liệu lớn hàng terabyte.
Tối ưu hóa việc tìm kiếm và truy cập cơ sở dữ liệu trên các hệ thống dữ liệu lớn đã

được nghiên cứu trong vài thập niên gần đây. Các cơng trình như [1][2][4][5][6] đã
nghiên cứu và đưa ra các giải pháp cho việc tối ưu hóa truy cập dữ liệu bằng cách áp
dụng các giải thuật song song. Đây là kỹ thuật phân chia một công việc thành các công
việc nhỏ hơn để thực thi đồng thời hoặc thực thi song song trên nhiều máy tính khác
nhau.
Vấn đề thực thi song song ngày càng được hỗ trợ mạnh trong việc tính tốn các
cơng việc phức tạp trong đó có việc truy cập các cơ sở dữ liệu lớn. Trước đây công
việc thực thi song song thường thực hiện dựa trên các siêu máy tính (super-computer),
thường là các máy rất mạnh và có nhiều bộ xử lý để hỗ trợ việc xử lý song song. Tuy
nhiên giá thành của các loại siêu máy tính này rất đắt nên việc ứng dụng kỹ thuật xử lý
song song vào việc truy vấn dữ liệu được quan tâm không nhiều lắm.

NGUYỄN THỊ THÚY THANH

Trang 5


Luận văn Thạc sĩ

Ngày nay, với sự phát triển mạnh của mạng máy tính, người ta đã xây dựng nên các
hệ thống máy tính có chức năng xử lý song song nhờ các phần mềm hệ thống. Giá
thành của các hệ thống này rất rẻ so với các siêu máy tính, đặc biệt việc nâng cấp bảo
dưỡng cũng dễ dàng, vì nó sử dụng các tài ngun riêng lẽ. Các phần mềm hệ thống hỗ
trợ việc phát triển các ứng dụng song song có thể kể đến là PVM (Parallel Virtual
Machine), P4, Express, MPI (Message Passing Interface), Linda, ...
Nâng cao hiệu suất truy vấn đến các cơ sở dữ liệu lớn đã và đang được nghiên cứu.
Một trong các hướng tiếp cận cho vấn đề này là dựa vào các hệ thống tính tốn song
song cùng với các phần mềm hệ thống hỗ trợ lập trình song song. Hướng tiếp cận này
là dựa vào việc chia một vấn đề lớn thành nhiều vấn đề nhỏ hơn để giải quyết. Mục
đích của phương pháp này là hoàn thành tác vụ lớn với thời gian ít hơn bởi vì cơng

việc được phân chia ra và thực hiện đồng thời trên nhiều máy tính khác nhau.
Đối với các hệ cơ sở dữ liệu quan hệ, truy vấn quan hệ bao gồm các tác vụ cùng
đồng dạng truy cập đến các dòng dữ liệu đồng dạng. Chính điều đó, câu truy vấn rất
thích hợp để cài đặt sao cho có thể thực thi song song. Một trong những cải tiến của
CSDL quan hệ là các câu truy vấn không thủ tục dựa trên các phép tính vị từ. Trong
các hệ thống CSDL trước đây, chúng dựa trên các mơ hình dữ liệu mạng và cây thứ
bậc, các chương trình ứng dụng phải thơng qua CSDL theo các liên kết và các con trỏ
giữa các mẫu tin. Trong hệ thống CSDL quan hệ, người dùng chỉ cần chỉ ra các vị từ
mà tác vụ lấy dữ liệu cần thoả mãn (chẳng hạn ngôn ngữ truy vấn quan hệ SQL), hệ
thống sẽ xác định những bước cần thiết tiếp theo. Nghĩa là, một quá trình truy vấn tự
động (a query plan automatically) diễn ra. Bởi vì, có thể cùng một câu truy vấn nhưng
có thể có các q trình truy vấn khác nhau về chi phí tính tốn, do đó vấn đề chính của
việc xử lý câu truy vấn là đi tìm lời giải tốt với chi phí rẻ nhất và tốc độ nhanh nhất.
Mặt khác, cần phải xem xét đến thời gian chạy và hiệu suất của câu truy vấn. Việc xử
lý song song câu truy vấn là một lĩnh vực nghiên cứu hấp dẫn nhằm cải tiến hiệu suất
của các hệ thống CSDL.
Mục tiêu của luận văn này là ứng dụng những phương pháp xử lý song song để xử
lý song song các câu truy vấn trên các hệ quản trị cơ sở dữ liệu khác nhau. Với kết quả
của luận văn này, người sử dụng có thể nhập câu truy vấn, hệ thống sẽ phân tích câu
NGUYỄN THỊ THÚY THANH

Trang 6


Luận văn Thạc sĩ

truy vấn đó và phân chia cơng việc cho các tác vụ thể thực thi song song, sao cho thời
gian đáp ứng truy được rút ngắn. Để đạt được mục tiêu đó, nhiều vấn đề đã được tìm
hiểu và nghiên cứu. Luận văn này trình bày các vấn đề liên quan cũng như phần phân
tích, thiết kế, hiện thực và đánh giá kết quả.


1.2. Các cơng trình liên quan
Trên thế giới, để tìm một hệ quản trị CSDL song song trong mơi trường tính tốn
phân tán, hệ quản trị CSDL Oracle và DB2 đã khảo sát và đưa ra các câu lệnh truy vấn
song song để tối ưu chi phí tính tốn CSDL. Với kiến trúc khơng dùng chung gì cả
(Shared Nothing), DB2 UDB Extended Enterprise Edition (EEE) có thể co dãn với
CSDL rất lớn. Sau đó, Oracle 9i ra đời, cải tiến hơn với kiến trúc dùng chung đĩa
(Share Disk). Nó hiện thực Oracle Parallel Server (OPS) và phân chia dữ liệu một cách
công phu hơn, nâng cao hiệu suất song song hoá câu truy vấn. Cả hai hệ quản trị
CSDL này đều có thể được cài đặt trên Linux để thực thi trên hệ thống phân tán.
Yanhai Sun và Haibo Wang [6] cũng đã thiết kế những gói câu truy vấn song song để
kiểm tra hai server song song CSDL này trên mơi trường tính toán phân tán. Oracle hỗ
trợ các chức năng xử lý song song. Các chức năng này có thể chia làm hai tập chính:
tập thực thi song song (tách một câu truy vấn thành nhiều câu truy vấn nhỏ hơn và
thực thi song song) và parallel server (dùng chung dữ liệu cho nhiều node khác nhau
trong hệ thống). Nhóm các tác vụ song song gồm có: parallel query, parallel DML,
Parallel DDL, Parallel data loading, Parallel recovery, parallel replication propagation
[7][8][9]. Phần sau trình bày sơ lược về xử lý song song trong cơ sở dữ liệu Oracle.
Oracle là một hệ quản trị CSDL có hỗ trợ và hiện thực các chức năng xử lý song
song. Các chức năng này có thể chia làm hai nhóm chính: Sự thực thi song song (tách
một câu truy vấn thành nhiều câu truy vấn nhỏ hơn và thực thi song song) và parallel
server (dùng chung dữ liệu cho nhiều node khác nhau trong hệ thống).
+ Nhóm các tác vụ song song:
Parallel query: các câu truy vấn lớn có thể được chia thành các tác vụ nhỏ hơn và thực
thi song song để giảm thời gian thực thi. Ví dụ: để scan một bảng dữ liệu lớn, ta có thể
cho thực thi song song trên nhiều bộ xử lý, mỗi bộ xử lý scan một phần của bảng, các
NGUYỄN THỊ THÚY THANH

Trang 7



Luận văn Thạc sĩ

kết quả của các phần sẽ được kết hợp lại để đưa ra kết quả cuối cùng. Các chức năng
truy vấn song song của Oracle có thể cải thiện hiệu suất đáng kể cho các câu truy vấn
lớn và thích hợp với các ứng dụng hỗ trợ ra quyết định cũng như trong môi trường với
nhu cầu sử dụng mẫu tin lớn.
Parallel DML: Trong câu lệnh SELECT, Oracle có thể thực thi các tác vụ DML như
INSERT, UPDATE, DELETE song song. Tuy nhiên, vẫn còn một số hạn chế trong tác
vụ này. Các tác vụ UPDATE và DELETE chỉ có thể được song song hố trên những
bảng dữ liệu đã được phân mảnh. Các tác vụ INSERT INTO . . . SELECT . . . FROM
có thể được song song hoá cả trên những bảng được phân mảnh hay khơng phân mảnh.
Parallel DML đặc biệt thích hợp trong kho dữ liệu (data warehouse) bởi nó duy trì
những thơng tin và lịch sử của các bảng. Vì thế, thời gian cần thiết để thiết lập hay giữ
lại thông tin các bảng giảm do được làm song song. Parallel DML cũng thích hợp
trong các hệ thống OLTP để cải thiện hiệu suất và thời gian chạy.
Parallel DDL: Oracle có thể tạo các bảng có chỉ số (index) một cách song song. Ví dụ,
các câu truy vấn sau có thể thực thi song song:
CREATE TABLE . . . AS SELECT . . . FROM
CREATE INDEX
ALTER INDEX REBUILD
Các ứng dụng kho dữ liệu (data warehouse) thường yêu cầu các thông tin tóm tắt và
các bảng tạm thời được tạo, và các chức năng tạo đối tượng song song rất có ích trong
các tác vụ như vậy.
Parallel data loading: Phần lớn dữ liệu có thể song song hố bằng cách chia dữ liệu
đầu vào thành nhiều file và chạy nhiều phần (session) SQL*Loader đồng thời để tải
(load) dữ liệu vào bảng. Đối với các bảng dữ liệu rất lớn, chức năng tải dữ liệu song
song có thể giảm rất nhiều thời gian.
Parallel recovery: Chức năng Parallel recovery của Oracle có thể làm giảm thời gian
cho các thực thể và phục hồi các thơng tin. Với parallel recovery, nhiều q trình sẽ

thực thi các tác vụ phục hồi song song .

NGUYỄN THỊ THÚY THANH

Trang 8


Luận văn Thạc sĩ

Parallel replication propagation: Thích hợp để cập nhật các bản sao dữ liệu, khi CSDL
được sao lưu ở nhiều nơi.[7]
+ Oracle Parallel Server (OPS)
Một hệ thống CSDL khác là DBS3, DBS3 (Database System for Share Store) là hệ
thống CSDL song song dùng chung bộ nhớ (Shared Memory). Nó được hiện thực trên
một Encore Multimax (10 bộ xử lý) và trên một Kendal Square Research KSR1 (72 bộ
xử lý) do các tác giả Luc Bouganim, Benoit Dageville, Patrick Valduriez [22].
Trong DBS3, tác giả kết hợp phân chia dữ liệu tĩnh và động để giảm các trở ngại và
thời gian biên dịch truy vấn song song, cấp phát động các bộ xử lý đến các tác vụ độc
lập với mức phân chia dữ liệu, để điều khiển thời gian khởi tạo và cân bằng tải. Tác
giả cũng đưa ra mơ hình truy vấn song song tương ứng của DBS3. Mơ hình sử dụng ba
thơng số: độ lệch, mức song song hoá và mức phân chia dữ liệu [4]. Tác giả mô tả
cách giải quyết vấn đề trong DBS3, một hệ thống CSDL Shared Memory, kiến trúc
multiprocessor KSR1 72 node. Trong kiến trúc này, mỗi bộ xử lý cùng truy cập đến
tồn bộ CSDL thơng qua bộ nhớ tồn cục. Hơn nữa, bộ định thời song song định vị
các bộ xử lý đến các tác vụ truy vấn. Tuy nhiên, thời gian đáp ứng truy vấn có thể
chưa tối ưu do gặp nhiều vấn đề cần phải giải quyết trong bộ định thời: thời gian bắt
đầu các tác vụ, các vấn đề về cân bằng tải giữa các bộ xử lý do phân tán dữ liệu lệch.
Trong [5], tác giả Erhard Rahm cũng xây dựng một hệ thống xử lý song song truy
vấn dùng chung đĩa (Shared Disk). Tác giả quan tâm đến quản lý giao tác cho xử lý
song song câu truy vấn thơng qua song song hố bên trong giao tác (intra-transaction

parallelism). Song song hoá bên trong giao tác chủ yếu được nghiên cứu trên các kiến
trúc Shared Everything hoặc kiến trúc Shared Nothing. Các kiến trúc này hỗ trợ chức
năng song song hoá bên trong giao tác (intra-transaction parallelism). Trong khi đó,
vài hệ quản trị CSDL dựa trên kiến trúc Shared Disk, nhưng ít được quan tâm vì chúng
khơng hỗ trợ chức năng song song hố bên trong giao tác. Do đó, nhiều nghiên cứu
xem kiến trúc Shared Nothing là kiến trúc chủ yếu trong xử lý song song câu truy vấn.
Trong nghiên cứu của Erhard Rahm, tác giả so sánh hai kiến trúc và đưa ra vài ưu
điểm cho kiến trúc Shared Disk trong xử lý song song câu truy vấn. Đặc biệt là nó hỗ
trợ các điều khiển giao tiếp linh động hơn và có thể cân bằng tải. Và tác giả cũng đưa
NGUYỄN THỊ THÚY THANH

Trang 9


Luận văn Thạc sĩ

cách giải quyết cho chức năng song song hoá giao tác. Các hệ thống CSDL Shared
Disk hỗ trợ sự song song hoá bên trong các giao tác với lượng thơng tin cần thiết ít
hơn hệ thống Shared Nothing, đặc biệt là tác vụ scan.
Bên cạnh rất nhiều nghiên cứu về song song hoá câu truy vấn trong các hệ quản trị
CSDL quan hệ, cũng có một vài tác giả quan tâm và nghiên cứu song song hoá câu
truy vấn cho CSDL quan hệ hướng đối tượng. Các ứng dụng dùng CSDL quan hệ đối
tượng thông thường là các ứng dụng lớn, phức tạp, nên vấn đề hiệu suất và thời gian
chạy cũng được đặt ra trong những nghiên cứu CSDL quan hệ đối tượng này. Giải
pháp song song hoá câu truy vấn cũng được quan tâm. Trong bài báo [10], các tác giả
đã nghiên cứu và so sánh các tác vụ xử lý song song trong CSDL quan hệ và CSDL
quan hệ hướng đối tượng. Các hệ thống quan hệ đối tượng cũng có thể thực thi cả hai
hình thức song song hố (inter_query và intra query) câu truy vấn. Điển hình như
INFORMIX-universal Server thực thi theo hình thức inter_query parallelism, hay
Online có thể cung cấp cả hai loại song song hoá. Trong bài báo, tác giả cũng tóm tắt

vài chức năng chính của INFORMIX-universal Server, một hệ thống CSDL quan hệ
đối tượng song song đầu tiên. Các tác giả cũng đưa ra một vài ưu điểm mà hệ thống
đối tượng quan hệ tốt hơn hệ thống quan hệ, đặc biệt là các hệ thống quan hệ đối tượng
có thể thực thi song song hố theo một cách mới.

1.3. Một số khái niệm và thuật ngữ
Song song dữ liệu (data parallelism) – Là một mơ hình tính tốn song song trong đó
chú trọng đến vấn đề tính toán song song trên những tập dữ liệu khác nhau cịn lệnh
thực thi thì giống nhau.
Song song bên trong mỗi tác vụ (intra_operator parallelism) là dùng tất cả các máy
tính đang chạy trong hệ thống để tính tốn tác vụ cho trước
Song song giữa các tác vụ khác nhau (inter_operation parallelism) - mỗi tác vụ có
thể chạy đồng thời trên một site.
Inter_operation - thực thi các tác vụ độc lập một cách song song hay thực thi các tác
vụ liên tục trong một pipeline.
Independent_parallelism - Các tác vụ song song giữa các tác vụ độc lập
NGUYỄN THỊ THÚY THANH

Trang 10


Luận văn Thạc sĩ

Pipelined_parallelism - tác vụ song song của các tác vụ trong pipeline
Song song hoá bên trong câu truy vấn (Intra_query parallelism) - là tách câu truy
vấn thành các phần con sau đó thực thi mỗi phần con này trên mỗi bộ xử lý khác nhau
Song song giữa các truy vấn khác nhau (Inter_query parallelism) - là dùng nhiều
máy thực thi nhiều truy vấn độc lập đồng thời
Xử lý giao tác trực tuyến OLTP (online transaction processing): là một lớp chương
trình quản lý các ứng dụng giao tác đối tượng. Thông thường, đối với các giao tác

nhập và lấy dữ liệu trong các ứng dụng của ngân hàng, hàng không, siêu thị…
DML (data manipulation language ) – ngôn ngữ thao tác dữ liệu, thông thường bao
gồm các truy vấn [8].
Parallel DML (Song song ngôn ngữ thao tác dữ liệu) - Parallel DML chỉ đến các
câu truy vấn insert, update và delete được thực thi song song [9]
DDL (data definition language) – Ngôn ngữ định nghĩa dữ liệu [8]
Parallel DDL (song song ngôn ngữ định nghĩa dữ liệu) – áp dụng song song cho các
dạng câu CREATE INDEX, CREATE TABLE, ALTER INDEX ... REBUILD,
CREATE INDEX, CREATE TABLE ... AS SELECT [9]

NGUYỄN THỊ THÚY THANH

Trang 11


Luận văn Thạc sĩ

Chương 2 - CÁC HÌNH THỨC SONG SONG HĨA CÂU
TRUY VẤN
Song song hố câu truy vấn, về mặt lý thuyết có hai hình thức chủ yếu. Chương này
sẽ trình bày các điểm lý thuyết về các hình thức song song, các kiến trúc thường được
dùng trong xử lý song song. Một số khái niệm có liên quan sẽ được áp dụng cho các
chương sau như các phương pháp song song hoá truy vấn, các vấn đề về ràng buộc
trên hệ thống xử lý song song cũng được trình bày trong chương này.

2.1. Các hình thức song song hoá
2.1.1. Song song bên trong mỗi tác vụ
Song song bên trong mỗi tác vụ (intra_operator parallelism) là dùng tất cả các máy
tính đang chạy trong hệ thống để tính tốn tác vụ cho trước (scan, sort, join, …). Tác
vụ song song intra_operation được thực thi bằng cách phân chia dữ liệu lên nhiều bộ

xử lý và các bộ xử lý này thực thi song song cùng một tác vụ. Vì intra_operation phụ
thuộc vào sự phân chia dữ liệu nên nó còn được gọi là partition_parallelism. [3][10][17]
2.1.2. Song song giữa các tác vụ khác nhau
Trong việc song song giữa các tác vụ khác nhau (inter_operation parallelism), mỗi
tác vụ có thể chạy đồng thời trên một site. Inter_operation thực thi các tác vụ độc lập
một cách song song hay thực thi các tác vụ liên tục trong một pipeline. Các tác vụ song
song giữa các tác vụ độc lập được gọi là independent_parallelism, và tác vụ song song
của các tác vụ trong pipeline là pipelined_parallelism [3][10][17]
Tương tự các hình thức song song hố của các tác vụ cũng có các hình thức song
song hoá của các câu truy vấn như sau:
2.1.3. Song song hoá bên trong câu truy vấn
Song song hoá bên trong câu truy vấn (intra_query parallelism) là tách câu truy vấn
thành các câu truy vấn con hay các phần con sau đó thực thi mỗi phần con này trên
mỗi bộ xử lý khác nhau (xem [6]). Cách này làm giảm đáng kể thời gian thực thi so
với thực thi một cách tuần tự. Song song hoá bên trong câu truy vấn rất tiện lợi trong
NGUYỄN THỊ THÚY THANH

Trang 12


Luận văn Thạc sĩ

các ứng dụng hỗ trợ ra quyết định, một loại ứng dụng vốn phức tạp và tốn nhiều thời
gian truy vấn.
Hình 2.1-1 sau biểu diễn một câu truy vấn được tách thành hai phần con và được
thực thi đồng thời trên hai bộ xử lý. Kết quả của hai bộ xử lý kết hợp lại để tạo thành
kết quả của truy vấn ban đầu.

Hình 2.1-1 Mơ hình song song hóa bên trong câu truy vấn


2.1.4. Song song giữa các truy vấn khác nhau
Song song giữa các truy vấn khác nhau là dùng nhiều máy thực thi nhiều truy vấn
độc lập đồng thời. Trong các ứng dụng xử lý giao tác trực tuyến (OLTP), mỗi câu truy
vấn là độc lập và thời gian thực hiện ngắn. Tuy nhiên, khi số người sử dụng tăng lên,
tất cả các câu truy vấn sẽ được thực thi chỉ trên một máy, thời gian thực thi sẽ được
chia ra và chậm hơn. Với phương pháp song song inter_query, các truy vấn được nhận
từ nhiều người dùng sẽ được thực thi trên nhiều máy. Các câu truy vấn được thực thi
đồng thời và thời gian thực thi thích hợp [9].
Hình 2.1-2 minh hoạ song song giữa các câu truy vấn, ba câu truy vấn được thực thi
trên ba bộ xử lý

NGUYỄN THỊ THÚY THANH

Trang 13


Luận văn Thạc sĩ

Hình 2.1-2 Mơ hình song song hóa giữa các câu truy vấn

Trong các ứng dụng xử lý các giao tác, mỗi câu truy vấn độc lập và phải thực thi
trong khoảng thời gian ngắn. Khi số người sử dụng tăng lên, số câu truy vấn tăng lên.
Nếu khơng có inter_query parallelism, tất cả các câu truy vấn thực hiện trên một máy
đơn sẽ chiếm rất nhiều thời gian, làm chậm thời gian đáp ứng [6].

2.2. Các kiến trúc đa xử lý
Trong lĩnh vực về kiến trúc song song, có nhiều loại kiến trúc đa xử lý
(Multiprocessors Architectures) khác nhau (xem [4]). Chúng ta có thể liệt kê các loại
kiến trúc như sau:
• Kiến trúc dùng chung bộ nhớ (Shared Memory)

• Kiến trúc dùng chung đĩa (Shared Disk)
• Kiến trúc khơng dùng chung gì cả (Shared Nothing)
2.2.1. Kiến trúc dùng chung bộ nhớ
Kiến trúc dùng chung bộ nhớ (Shared Memory Architecture) được gọi đơn giản là
multiprocessor, cung cấp cho người lập trình một khơng gian địa chỉ đơn giản. Sự giao
tiếp của các bộ xử lý thông qua các biến bộ nhớ dùng chung.

NGUYỄN THỊ THÚY THANH

Trang 14


Luận văn Thạc sĩ

Hình 2.2-1 Kiến trúc đa xử lý dùng chung bộ nhớ

Đặc điểm:
Một bộ xử lý có thể truy cập đến bất kỳ một mođun bộ nhớ hay một đơn vị đĩa bất kỳ.
Ưu điểm:
− Đơn giản
− Cân bằng tải
Khuyết điểm:
− Chi phí cao
− Hạn chế mở rộng do nhiều giới hạn về băng thơng mạng
− Tính sẳn sàng thấp
2.2.2. Kiến trúc dùng chung đĩa
Trong kiến trúc dùng chung đĩa (Shared Disk system) mỗi bộ xử lý có một bộ nhớ
cục bộ nhưng tất cả các bộ xử lý truy cập trực tiếp đến tất cả các đĩa. Mạng kết nối
trung gian kết nối các bộ xử lý trong các hệ thống này đóng vai trị quan trọng đối với
hiệu suất hệ thống.


NGUYỄN THỊ THÚY THANH

Trang 15


Luận văn Thạc sĩ

Hình 2.2-2 Kiến trúc đa xử lý dùng chung đĩa

Đặc điểm:
Bất kỳ một bộ xử lý nào cũng có thể truy cập đến bất kỳ đơn vị đĩa nào ngoại trừ đĩa
chính của nó.
Ưu điểm:
− Chi phí thấp
− Có khả năng mở rộng cao
− Tính sẳn sàng
− Dể di chuyển
− Cân bằng tải
Khuyết điểm:
− Độ phức tạp cao
− Có một số vấn đề về hiệu suất.
2.2.3. Kiến trúc khơng dùng chung gì cả
Trong hệ thống khơng dùng chung gì cả (Shared Nothing Architecture), mỗi bộ xử
lý có đơn vị đĩa và bộ nhớ riêng. Một bộ xử lý có thể giao tiếp với các bộ xử lý khác
bằng cách gởi nhận các thông điệp. Mỗi bộ xử lý chứa một phần hay toàn bộ CSDL và
bộ xử lý này chỉ có thể thao tác trên phần CSDL này thơi. Mục đích/ ý chính để song
song hóa trong hệ thống này là dựa vào khái niệm phân mãnh (declustering).
Declustering một quan hệ bao hàm sự phân tán các bộ của nó giữa nhiều node theo
NGUYỄN THỊ THÚY THANH


Trang 16


Luận văn Thạc sĩ

một vài chuẩn phân tán như là theo hàm băm, theo round-robin hay theo khoảng (sẽ
được chi tiết ở phần sau). Sau khi declustering, mỗi bộ xử lý trong hệ thống khơng
dùng chung gì cả sẽ mang một khoảng/phân đoạn dữ liệu trong các bộ nhớ cục bộ của
nó. Hình sau minh hoạ kiến trúc khơng dùng chung gì cả.

Hình 2.2-3 Kiến trúc đa xử lý khơng dùng chung gì cả

Đặc điểm:
Bất kỳ một bộ xử lý nào cũng chỉ truy cập đến đĩa và bộ nhớ dành riêng của nó
Ưu điểm:
− Chi phí thấp do xử lý song song có thể giảm được nhiều thời gian tính tốn, nên
dẫn tới giảm chi phí và giá thành cơng việc.
− Có khả năng mở rộng cao: Trong xử lý song song, có thể thay đổi qui mơ của
hệ thống theo số lượng các nút thực hiện, có thể thêm hoặc bớt số nút của hệ
thống.
− Tính sẵn sàng
Khuyết điểm:
− Độ phức tạp cao
− Cân bằng tải

NGUYỄN THỊ THÚY THANH

Trang 17



Luận văn Thạc sĩ

2.3. Các phương pháp song song truy vấn
2.3.1. Phương pháp song song bên trong tác vụ
Phương pháp này còn gọi là phương pháp phân chia dữ liệu. Đây chính là phân tán
các bộ của quan hệ lên nhiều đĩa của hệ thống. Nó cho phép song song CSDL để khai
thác, tận dụng băng thông của nhiều đĩa bằng cách đọc và ghi chúng song song. Các
quan hệ có thể được phân mảnh ngang theo các hàm: round_robin, range index, hash
function.[3]
− round robin: Phân chia dữ liệu trên hàng thứ k của bảng ánh xạ vào đĩa thứ (k
mod n), với n là số đĩa của hệ thống.
− hash function: Phân chia dữ liệu theo hàm băm, hệ thống sẽ có một hàm băm,
các bộ có cùng giá trị băm sẽ được phân vào cùng một đĩa.
− range index: Dựa trên hàm ánh xạ, các bộ có nhũng thuộc tính tương tự nhau sẽ
được chia vào một đĩa.
Những ưu điểm của các chiến lược phân chia dữ liệu:
round robin:
− Tuần tự quét qua tất cả các bộ của mỗi câu truy vấn
hash function
− Tuần tự quét qua tất cả các bộ của mỗi câu truy vấn
− Kết hợp tìm kiếm dữ liệu
− Gom dữ liệu
range index
− Tuần tự quét qua tất cả các bộ của mỗi câu truy vấn
− Kết hợp tìm kiếm dữ liệu
Tuy nhiên, sự phân chia dữ liệu có thể xảy ra tình trạng lệch dữ liệu (data skew) do
một câu truy vấn có thể làm việc chủ yếu với dữ liệu trên một phân mảnh. Tình trạng
này gọi là lệch dữ liệu
NGUYỄN THỊ THÚY THANH


Trang 18


Luận văn Thạc sĩ

2.3.2. Song song hoá của các tác vụ quan hệ
Ý tưởng của các tác vụ song song là dùng các dịng dữ liệu song song thay vì viết
lại các tác vụ song song. Nghĩa là thực thi song song nhiều tác vụ quan hệ tuần tự trên
các phân mảnh. Mỗi phép tốn quan hệ có một tập input để nhập các bộ quan hệ và
một tập output để xuất các dòng dữ liệu kết quả. Các luồng song song làm việc trên
các phân mảnh.[10]
Chi tiết của song song cho một số tác vụ như sau:
_ Scan:
Chia dữ liệu theo khoảng cho các máy, mỗi máy thực hiện scan trên các khoảng phân
chia dữ liệu tương ứng.
_ Sort
Phép sort cũng được song song hoá bằng cách chia khoảng. Nếu toàn bộ các khoảng
cần sắp xếp là G, mức song song là n và khoảng phân chia là Gi; i = 1, 2, …, n. Bộ xử
lý i sẽ sắp xếp các bộ trong Gi. Cuối cùng, các đoạn kết quả được sắp xếp từ các
procesor được nối lại với nhau theo thứ tự các các khoảng con Gi và toàn bộ quan hệ
được sắp xếp.
_ Mergejoin
Tác vụ mergejoin được song song hoá tương tự như tác vụ sort bằng phép chia khoảng.
_ Hashjoin
Sự song song hoá của hashjoin [1][11]có thể mơ tả như sau:
Đặt R và S là 2 quan hệ tham gia kết, và size R< size S. Hầu hết các giải thuật hash
join làm việc như sau:
Cung cấp một hàm băm cho các thuộc tính kết của R, xây dựng một bảng băm bộ
nhớ từ R. Sau đó, dùng mỗi bộ của S dị trong bảng băm này. Khi gặp một so trùng

xảy ra, các bộ trùng nhau là output. Một ví dụ cho hash-join cơ bản được minh hoạ
trong các hình 2.1. Mỗi bộ của R được đặt vào bảng băm theo hàm băm áp dụng trên
thuộc tính kết (trong ví dụ này là Dept#). Nếu nhiều bộ có cùng giá trị băm, thì được
liên kết đến cùng một entry. Đây là thủ tục để xây dựng bảng băm. ….
NGUYỄN THỊ THÚY THANH

Trang 19


Luận văn Thạc sĩ

Như minh họa trong Hình 2.3-1, mỗi bộ của R được đặt vào một bảng băm theo giá
trị của hàm băm trên thuộc tính kết (trong ví dụ này là Dept#). Nếu có nhiều bộ có
cùng giá trị băm thì chúng cùng liên kết đến cùng một entry (R1 và R3 trong entry 2).
Đây là thủ tục để xây dựng bảng băm. Sau khi đã xây dựng bảng băm, với mỗi bộ của
S, áp dụng cùng hàm băm với thuộc tính kết. Nếu giá trị băm chỉ đến entry rổng trong
bảng băm thì bộ này sẽ được bỏ qua. Ngược lại, bộ này sẽ được so sánh với các bộ
trong bảng băm với entry tương ứng. Nếu có một bộ thoả (trùng) điều kiện thì các bộ
đó được đưa vào bảng kết quả.

Hình 2.3-1 Ví dụ giải thuật Hash-Join cơ bản

Thông thường, mỗi giải thuật hahs-join được thực thi trên hai phần.
1. Phần chia:
Cung cấp một hàm băm h(x) để kết các bộ trong R và S. Theo giá trị băm, mỗi bộ
được đặt vào một thùng (bucket) tương ứng. Giả sử khoản các giá trị là H, và H1;

NGUYỄN THỊ THÚY THANH

Trang 20



×