THựC HIỆN SONG SONG CÁC CÂU VẤN TIN TRONG CSDL PHÂN TÁN BẰNG CÁCH SỬDỤNG LUỒNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUÂN VĂN THAC SĨ MÁY TÍNH • • Người hướng dẫn khoa học:
Trang 1Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
LUẬN VĂN THẠC Sĩ MÁY TÍNH ■ •
Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
• • • •
NGUYỄN NGỌC THU
HÀ NỘI, 2014
Trang 2THựC HIỆN SONG SONG CÁC CÂU VẤN TIN TRONG CSDL PHÂN TÁN BẰNG CÁCH SỬ
DỤNG LUỒNG
Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01
LUÂN VĂN THAC SĨ MÁY TÍNH
• •
Người hướng dẫn khoa học: PGS.TS Lê Huy Thập
Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo PGS.TS Lê Huy Thập, ng
ời đã tận tình h ớng dẫn, giúp đỡ và động viên tôi trong suốt quá trình làm luậnvăn
Xin cám ơn tất cả các thầy giáo, cô giáo trong Tr ờng Đại học s phạm HàNội 2 đã tạo điều kiện hết sức để tôi đ ợc học tập và hoàn thành khóa học đ ợcthuận lợi
Xin chân thành cảm ơn các thầy giáo, cô giáo đã trực tiếp giảng dạy vàmang đến cho tôi niềm say mê nghiên cứu khoa học
HÀ NỘI, 2014
Trang 3Tôi xin gửi lời biết ơn chân thành tói đồng nghiệp, bạn bè, gia đình đã luôntạo điều kiện, ủng hộ về mọi mặt để tôi hoàn thành luận văn.
Hà Nội, tháng 12 năm 2014 Tác giả luận văn
Nguyễn Ngọc Thu
Tôi xin cam đoan luận văn này là do bản thân tự nghiên cứu và thực
hiện theo sự hướng dẫn khoa học của thày PGS TS Lê Huy Thập
Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này
Tác giả luận văn
HÀ NỘI, 2014
Trang 4Nguyễn Ngọc Thu
HÀ NỘI, 2014
Trang 5Bảng 2.2-4 Mảnh hôn họp EMPhh3 50
HÀ NỘI, 2014
Trang 6Tên hình Trang
Hình 1.1-2 Sự thực hiện đông thời của các tiên trình trong hệ thống
uniprocessor (a) và hệ thống multiprocessor (b)
4
Hình 1.3-2 Sô lượng sinh viên các khoa tại các địa điêm 17Hình 1.3-3 Gộp nhóm theo phương pháp trộn phân tán 18
Hình 2.1-2 Câu trúc chương trình con (tiên trình) khi lông nhau 24Hình 2.1-3 Hoạt động của luông trong Pthread 27
Hình 2.2-4 Rút gọn cho phân mảnh ngang (với phép chọn) 40
HÀ NỘI, 2014
Trang 7Hình 2.2-5b Vân tin đã rút gọn 42
Hình 2.2-9 Vân tin sau khi dùng vị tò mâu thuân 48Hình 2.2-10 Cây vân tin sau khi giao hoán phép hợp và phép nôi 48
Hình 2.2-14 Cây vân tin đã đây phép chiêu xuông, phép nôi lên 53
Hình 3.1-1 Rút gọn cho phân mảnh ngang nguyên thủy theo giới tính 58
Hình 3.1-2 Rút gọn cho phân mảnh dọc theo họ tên sinh viên, ngày
sinh, điện thoại, email
Trang 8Hình 3.2-2 Màn hình chính của chương trình 61
Hình 3.2-4 Kêt quả của câu vân tin cho phân mảnh ngang 62
Hình 3.2-6 Kêt quả của câu vân tin cho phân mảnh dọc 64
Hình 3.2-9 Vân tin sau khi dùng vị từ mâu thuân 67Hình 3.2-10 Cây vân tin sau khi giao hoán phép hợp và phép nôi 67
Hình 3.2-12 Kêt quả của câu vân tin cho phân mảnh ngang dân xuât 68
Hình 3.2-15 Cây vân tin đã đây phép chiêu xuông, phép nôi lên 70
Hình 3.2-17 Kêt quả của câu vân tin cho phân mảnh hôn họp 71
HÀ NỘI, 2014
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Nhằm giải quyết vấn đề chậm trễ thường gặp trong các hệ cơ sở dữ liệuphân tán, ngoài việc áp dụng một kiến trúc phần cứng thích họp, người ta tiếnhành phân mảnh dữ liệu cho các bộ xử lý, tái cấu trúc các mảnh một cách hợp lýthì người ta còn dùng phương pháp truy vấn song song để giảm thời gian phảnhồi kết quả của câu truy vấn đó Một chiến lược phân mảnh dữ liệu tốt sẽ tăngmức độ thực hiện song song đồng thời khai thác tốt hơn các hàm gộp nhóm từcác mảnh Chúng ta sẽ đề cập đến một số kỹ thuật phân mảnh dữ liệu theo chiềungang phổ biến như phân mảnh theo vòng tròn Robin, phân mảnh theo hàm băm,phân mảnh theo khoảng, phân mảnh theo chiều dọc, Song song hóa các câuvấn tin trong cơ sở dữ liệu phân tán bằng cách cục bộ hóa và sử dụng luồng vàmột số thuật toán thực hiện song song nhằm giải quyết vấn đề chậm trễ thườnggặp ừong các hệ cơ sở dữ liệu phân tán
2 Mục đích nghiền cứu
Nghiên cứu về các loại luồng, phân mảnh và tái cấu trúc, cục bộ hóa cơ sở
dữ liệu phân tán Dùng ngôn lập trình để thể hiện song song liên truy vấn toán tử
và nội toán tử
3 Nhiệm vụ nghiền cứu
- Nghiên cứu về các tiến trình và các loại luồng
- Phân mảnh và tái cấu trúc, cục bộ hóa cơ sở dữ liệu phân tán.
- Nghiên cứu cách thực hiện song song câu vấn tin trong cơ sở dữ liệu phân
tán khi sử dụng luồng
- Lập trình demo.
4 Đối tượng và phạm vỉ nghiên cứu
- Cơ sở dữ liệu phân tán.
9
Trang 10- Cơ sở lý thuyết song song.
- Ngôn ngữ lập trình
5 Phương pháp nghiên cứu
- Thu thập các tài liệu liên quan mục 4.
- Tìm hiểu kỹ các tài liệu này.
6 Giả thiết khoa học
- Dùng giả mã thể hiện một số thuật toán một cách tổng quát.
7 Cấu trúc của luận văn
Luận văn gồm: Lời mở đầu, ba chương nội dung, phần kết luận và tài liệu tham khảo
Chương 1: Trình bày các khái niệm tiến trình và luồng, khái quát về cơ sở dữ liệu phân tán, khái quát về xử lí song song và phân tán
Chương 2: Trình bày các cấu trúc tiến trình và luồng song song, một số phương pháp phân rã và rút gọn câu truy vấn tin, các phương pháp song song hóa các câu vấn tin dựa vào tiến trình- luồng vào chức năng và vào dữ liệu Chương 3: Lập trình ứng dụng tại Trường Đại học sư phạm Hà Nội 2
Chương 1: TỔNG QUAN
1/ Tiến trình và các loại tiến trình,:
^ Tiến trình (process): T IẾN TRÌNH LÀ MỘT BỘ PHẬN CỦA MỘT CHƯƠNG TRÌNH ĐANG THỰC HIỆN , ĐƠN VỊ THỰC HIỆN TIẾN TRÌNH LÀ BỘ XỬ LÍ TIẾN TRÌNH
( PROCESSER ) Vì tiến trình là một bộ phận của chương trình nên tương tự như
chương trình tiến trình cũng sở hữu một con ừỏ lệnh, một con ừỏ stack, một tậpcác thanh ghi, một không gian địa chỉ trong bộ nhớ chính và tất cả các thông tincần thiết khác để tiến trình có thể thực thi được
1 0
Trang 11Các định nghĩa tiến trình và luồng của Saltzer; của Homing & Rendell (Xem [3,
4, 6])
Các tiến trình trong hệ thống có thể chia thành hai loại: tiến trình tuần tự và tiếntrình song song
T IẾN TRÌNH TUẦN TỰ : Tiến trình tuần tự là các tiến trình mà điểm khởi tạo của nó
là điểm kết thúc của tiến trình trước đó (Hình 1.1-1)
P1 Ị
P2 I P3 I
I Ị Time -: -►
Hình 1.1-1 Ba tiến trình tuần tự.
T IẾN TRÌNH SONG SONG : Tiến trình song song là các tiến trình mà điểm khởi tạo
của tiến trình này nằm ở thân của các tiến trình khác, tức là có thể khởi tạo mộttiến trình mới khi các tiến trình trước đó chưa kết thúc (Hình 1.1-2)
1 1
Trang 12a T r o n g h ệ t h o n g u n i p r o c e s s o r ( m ộ t b ộ x ử l í )
PI
P2
P3
Time
Trang 14l í ) Hìn
h 1.1-
2
Sự thực hiện đồn
g thời của các tiến trìn
h tron
g hệ thốn
g unip roce ssor (a)
và
hệ thốn
g mult ipro cess
or (b).
Tiến trìnhsong
Trang 151 T I ẾN TR ÌN H SO NG SO NG ĐỘ C LẬ
P :
làcáctiếntrình
Trang 16thựcthisongsongnhưngkhôngcóquanhệthôngtinvớinhau,trong
Trang 17trườnghọpnàyhệđiềuhànhphảithiếtlậpcơchếbảovệdữliệu
Trang 18củacáctiếntrình,vàcấppháttàinguyênchocáctiếnừlnhmộ
Trang 192 T I ẾN TR ÌN H SO NG SO NG PH Ụ TH UỘ
C :
trongtiếntrình
Trang 203 T I ẾN TR ÌN
Trang 21H SO NG SO NG PH ÂN CẤ
P :
Trongquátrìnhthựcthimộttiếntrìnhcó
Trang 22thểkhởitạocáctiếntrìnhkhácthựcthisongsongvớinó,tiếntrình
Trang 23khởitạođượcgọilàtiếntrìnhcha,tiếnừìnhđượctạogọilàtiếntrình
Trang 24con.Trongmôhìnhnàyhệđiềuhànhphảigiảiquyếtvấnđềcấp
Trang 25pháttàinguyênchocáctiếntrìnhcon.Tiếntrìnhconnhậntàing
Trang 26uyêntừtiếntrìnhchahaytừhệthống.Hệđiềuhànhđưara2môhìn
Trang 27hquảnlýtàinguyên:
Trang 28i/ Thứ nhất, mô hình tập trung, ừong mô hình này
hệ điều hành chịutrách nhiệm phân phốitài
nguyên cho tất cảcác tiến trình trong hệ thống, ii/ Thứ hai,
mô hình phân tán, trong mô hình này
hệ điều hành cho phép tiến
Trang 29trình con nhận tài nguyên
từ tiến trình cha
4 T I ẾN TR ÌN H SO NG SO NG ĐỒ NG M ỨC
:
làcáctiếntrình
Trang 30thựcthisongsongsửdụngchungtàinguyêntheonguyêntắclầnlượt,
Trang 31mỗitiếntrìnhsaumộtkhoảngthờigianchiếmgiữtàinguyênph
Trang 322/Mô hình liến trình:
Trong môhình tiếntrình hệđiều hành
Trang 33chiachươngtrìnhthànhnhiều tiếntrình,khởi tạo
và đưavào hệthốngnhiều tiếntrình củamộtchươngtrìnhhoặc củanhiềuchươngtrìnhkhácnhau, cấpphát đày
đủ tàinguyên(trừprocessor
Trang 34) cho tiếntrình vàđưa cáctiến trìnhsangtrạng tháisẵn sàng.
Hệ điềuhành bắtđầu cấpprocessorcho mộttiến trìnhtrong sốcác tiếntrình ởtrạng tháisẵn sàng
để tiếntrình nàythực thi,sau mộtkhoảngthời giannào đó hệđiều hành
Trang 35thu hồiprocessorcủa tiếntrình này
để cấpcho mộttiến trìnhsẵn sàngkhác, sau
đó hệđiều hànhlại thuhồi
processor
từ tiếntrình mà
nó vừacấp đểcấp chotiến trìnhkhác, cóthể là tiếntrình màtrước đây
bị hệ điềuhành thu
Trang 36processorkhi nóchưa kếtthúc, và
cứ nhưthế chođến khitất cả cáctiến trình
mà hệđiều hànhkhởi tạođều thựcthi và kếtthúcđược.Khoảngthời gianchuyểnprocessor
từ tiếntrình nàysang tiếntrìnhkhác hay
Trang 37khoảngthời giangiữa hailần đượccấp phátprocessorcủa mộttiến trình
là rất nhỏnên cáctiến trình
có cảmgiác luônđược sởhữuprocessor(logic)hay hệthống cócảm giáccác tiếntrình/chươngtrinh thựcthi songsong
Trang 38nhau.Hiệntượngnày đượcgọi là sựsongsong giả.
ồng
Luồn
g là mộtchuỗicác
thôngbáothuộcmột chủ
đề Hầuhết cácchươngtrình xử
lý nhómtin đều
có mộtnhómlệnh chỉ
Trang 39dẫn chophép đitheomạch đó(nghĩa lànhảy đếnthôngbáo tintức kếtiếpcũng vấn
đề đó,thay vìphải chohiển thịtuần tựtừngthôngbáo tin),nhómlệnh đóđược gọi
là luồng.Cácluồng lànhững
Trang 40tiến trìnhriêng lẻthựchiệnđồngthờiừong các
hệ điềuhành đanhiệm.Nếu hệthốngchỉ cómột bộ
xử lý,cácluồngđượcthựchiệnluânphiênnhau,luồngnày tiếpluồng
Trang 41kia Dotốc độthựchiệntừngphânđoạn củatừngluồngquánhanhnênngườidùng có
ảo tưởngrằng cónhiềuchươngtrìnhchạycùngmột lúc[1,3,4,6].Một luồng thường
Trang 42được gọi
là tiến trình nhẹ(lightweight proces-LWP), làmột đơn
vị cơ bản của việc sử dụng CPU; nóhình thành gồm: một địnhdanh luồng (thread ID), một
bộ đếm chương trình, tậpthanh ghi và
Trang 43ngăn xếp Nó chia sẻ với các luồng khác thuộc cùng một tiến trình phàn mã,phần dữ liệu, và tài nguyên
hệ điều hành như các tập tin đang mở
và các tín hiệu.Mộttiến trìnhtruyềnthống
Trang 44(hay tiếntrìnhnặng) cómộtluồngđiềukhiểnđơn.Nếu tiếntrình cónhiềuluồngđiềukhiển,
nó có thểthựchiệnnhiềuhơn mộttác vụ tạimột thờiđiểm.Một
ví dụ đa luồng là trình
Trang 45duyệt Web có thể có một luồng hiển thị hình ảnh, văn bản ừong khimột luồng khác lấy
dữ liệu
từ mạng.Một trình soạn thảo văn bản có thể có một luồng hiển thị
đồ họa, luồng
Trang 46thứ hai đọc sự bấm phím trên bàn phím từ người dùng, một luồng thứ ba thực hiện việckiểm ừa chính tả
và từ vựng chạy trong chế độ nền.Luồngcũngđóngmột vai
ừò quan
Trang 47ừọngtrong hệthống lờigọi thủtục xa.
Có hailoạiluồng cơbản là:luồngngườidùng vàluồngnhân[1,3,6]
Các mô hình đa luồng:
n Mô hình nhiều- một:
Môhìnhnhiều-một (như
Trang 48hình 3) ánh xạnhiềuluồng cấpngườidùng tớimộtluồng cấpnhân.Quản lýluồngđượcthực hiệnừongkhônggianngườidùng vìthế nóhiệu quảnhưngtoàn bộtiến trình
1.1-sẽ bịkhóa nếumột
Trang 49luồngthực hiệnlời gọi hệthốngkhóa Vìchỉ mộtluồng cóthể truyxuất nhântại mộtthời điểmnên nhiềuluồngkhông thểchạysongsong ừênnhiều bộ
xử lý.Greenthreads-một thưviệnluồngđược càiđặt trên
Trang 50các hệđiều hànhkhông hỗtrợ luồngnhândùng môhìnhnhiều-một
Trang 51-3
M ô
h ì n h
n h i ề u - m ộ t
Trang 53ánh xạmỗiluồngngườidùng tớimộtluồngnhân Nócung cấpkhả năngđồnghành tốthơn môhìnhnhiều-một bằngcách chomộtluồngkhácchạy khimộtluồngthực hiệnlời gọi hệthống
Trang 54nghẽn; nócũng chophépnhiềuluồngchạysongsong trêncác bộ xử
lý khácnhau
Chỉ cómột trởngạitrong môhình này
là tạoluồngngười
Hình
1.1-4 Mô hình một- một
Trang 55dùng yêucầu tạomộtluồngnhântươngứng Vìchi phícho việctạo luồngnhân cóthể đènặng lênnăng lựcthực hiệncủa ứngdụng, cáccài đặtcho môhình nàygiới hạnsốluồngđược hỗtrợ bởi hệthống.Windows
Trang 562000 vàOS/2 càiđặt môhình một-một này
3/ Mô hình nhiều- nhiều:
Sốlượng cácluồngnhân cóthể đượcxác địnhhoặc mộtứng dụng
cụ thểhay mộtmáy cụthể (mộtứng dụng
có thểđược cấp
Trang 57nhiềuluồngnhân trênmột bộ
đa xử lýhơn trênmột bộđơn xửlý) Môhìnhnhiều-nhiều gặpphải mộttrong haivấn đề:ngườiphát triển
có thể tạonhiềuluồngngườidùng khicần thiết
và cácluồngnhân
Trang 58tươngứng cóthể chạysongsong trênmột bộ
đa xử lý.Khi mộtluồngthực hiệnmột lờigọi hệthốngkhóa,nhân cóthể lậpthời biểumộtluồngkhác thựcthi (Hình1.1-5)
Trang 59Hình
1.1-5 Mô hình luồng nhiều — nhiều
1.2. Khái quát về
cơ sở dữ liệu phân tán
cơ sở dữ liệu phân tán
Hệ cơ
sở dữ liệuphân tán(Distributed
Database
Trang 60System DDBS) làmột tậphọp dữliệu cóliên đớilogic vàđượcphân bốtrên cácnút củamộtmạngmáy tính.Hệquản ừị
-cơ sở dữliệu phântán
(Distributed
DatabaseManagementSystem -DDBMS)
Trang 61là một hệthốngphànmềm chophépquản lýcác
DDBS vàlàm choviệc phântán trởnên vôhình đốivới người
sử dụng.Nhưvậy
DDBSkhôngphải làmột tậphọp cáctệp dữliệu đượclưu trữriêng rẽ
Trang 62tại cácnút củamạngmáy tính
mà là mộttập cáctệp dữliệu tinvừa cóliên đớilogic, vừaphải cócấu trúc
và vừaphải đượctruy xuấtqua mộtgiao diệnchung.Phân
bố vật lýcủa các
dữ liệukhôngphải làvấn đề
Trang 63quyếtđịnhtrongDDBS, ví
dụ trêncùng mộtnút mạng
có thể lưutrữ hai hệ
cơ sở dữliệunhưng cóliên đớivới nhauthì đó làDDBS.Tuy vậyviêc phân
bố vật lýcủa các
dữ liệucũng hếtsức quantrọng vì
nó sẽ nẩysinh ra
Trang 64các vấn
đề rấtphức tạpnhư thựchiện cáccấu trúctruy vấn,vấn đềcấp phát,v.v [l, 2,
4, 7]
1.2.2.
Ph
â n
m ả n h
a / P h â
Trang 65m ả n h
n g a n g
Cácloại phânmảnhngangđều có thểthực hiệnbằng SQLnhư sau[1, 3, 5,7]:
Sele
Trang 66*From
<Tênquanhệ
>Wher
e
<Co
Trang 67>Tron
<Condition> đượckiến tạocho phùhợp vớimục đíchphânmảnhngang
b/Phân mảnh ngang dẫn xuất
Phânmảnhngangdẫn xuất
Trang 68được địnhnghĩa trênmột quan
hệ thànhviên củamộtđườngnối dựatheo phéptoán chọntrên quan
hệ chủnhân củađườngnối đó Vìchứng tamuốnphânhoạchquan hệthànhviên theophânmảnh củachủ nhânnhưng
Trang 69cũngmuốnmảnh thuđược chỉđịnhnghĩa trêncác thuộctính củaquan hệthànhviên.Nhưthế nếucho trướcmộtđườngnối L,trong đóowner(L)
= s vàmember(L) = R,các mảnhngangdẫn xuấtcủa R
Trang 70được địnhnghĩa là[1, 3, 5,7]
Ri =RIX Si,
1 < i <COTron
g đó co là
số lượng các mảnhđược định nghĩa trên R, và
S I = ƠFÌ (S) với
F Jlà công thứcđịnh nghĩa mảnh
NGANG
nguyên thuỷ S I d
Trang 71Phân mảnh doc
Phânmảnh dọcchia mộtquan hệ
R ra cácmảnh Ri,
R2, Rr.Mỗimảnhchứa mộttập concác thuộctính cùngvới khóacủa quan
hệ R.Mục đíchcủa phânmảnh dọc
là phânmảnhmột quan
Trang 72hệ thànhmột tậpcác quan
hệ nhỏhơn, để
có nhiềuứng dụngchỉ cầnchạy ừênmộtmảnh.Như vậymột cáchphânmảnh tối
ưu làphânmảnhsinh ramột lược
đồ phânmảnh chophépgiảm tối
đa thờigian thực
Trang 73thi cácứng dụngchạy trêncác mảnhđó.
Các loạ
i phânmảnhdọcđềucó
Trang 74thểthựchiệnbằngSQLnhưsau[1
Trang 75t
<Danhsáchcáct
Trang 76huộctính
Trang 77có thểđược
Trang 78thực hiệnsau mộtphânmảnhnganghoặcngượclại, sinh
ra mộtcáchphânmảnh cócấu trúccây Bởi
vì, hailoại chiếnlượcphânmảnh nàyđược ápdụng lầnlượt,chọn lựanày đượcgọi làphân
Trang 79mảnh hỗnhợp(hybridfragmentation).
- Các
loạ
i ph
ân mả
nh dọ
c, khoả
ng (ngang) ha
y vù
ng (ha
Trang 80y hỗ
n họp) đề
u
có thểth
ực hiệ
n bằ
ng SQ
L nh
ư sau[l, 3,5,7]Select
Trang 81From <Tênquan hệ>
Where
<Condition>
Tron
g đó:
<Condition>
và
<FieldList> được kiến tạo cho phù họp với mục đích từng loại phân mảnh
1.3. Kh
ái quát
về xử lí
Trang 82song song và phân tán
c
phương pháp xử
lý song song
Cácphép truyvấn trong
mô hìnhquan hệrất thíchhọp choviệc thựchiện songsong.Truy vấnquan hệthực chất
là cácphéptoánquan hệ