Cựng với sự phỏt triển của Internet và cỏc cụng nghệ khỏc trong lĩnh vực mạng mỏy tớnh, vấn đề quản lý dữ liệu phõn tỏn đó và đang là vấn đềđược nhiều người quan tõm. Để quản lý cũng như xử lý dữ liệu phõn tỏn, yờu cầu hệ thống cú hiệu năng cao và tốc độ xử lý nhanh. Áp dụng cỏc kiến trỳc song song cho quản lý dữ liệu phõn tỏn đó trở
nờn phổ biến. Thuật ngữ “cơ sở dữ liệu song song” nhằm chỉ cỏc cơ sở
dữ liệu được cài đặt dựa trờn cỏc kiến trỳc song song.
Cỏc hệ cơ sở dữ liệu song song là một trong cỏc giải phỏp đểđạt
được hệ quản trị dữ liệu phõn tỏn cú tớnh hiệu quả và tớnh sẵn sàng cao, phỏt triển dựa trờn cỏc kiến trỳc đa bộ xử lý hiện đại bằng cỏc giải phỏp hướng phần mềm cho việc quản lý dữ liệu. Cỏc hệ thống cơ sở
song song được mở rộng bằng kỹ thuật cơ sở dữ liệu phõn tỏn. Khụng cú sự khỏc biệt rừ ràng giữa hệ quản trị cơ sở dữ liệu phõn tỏn và hệ
quản trị cơ sở dữ liệu song song. Cỏc hệ quản trị cơ sở dữ liệu song song khai thỏc cỏc kiến trỳc mỏy tớnh đa bộ xử lý để xõy dựng cỏc mỏy chủ dữ liệu với khả năng thực, tớnh sẵn sàng cao với giỏ thành rẻ
hơn nhiều so với cỏc mỏy tớnh lớn.
Sự tớch hợp của cỏc vị trớ trong mụi trường phõn tỏn cho phộp phõn phối chức năng hiệu quả hơn cỏc chương trỡnh ứng dụng chạy trờn mỏy chủ, được gọi là cỏc mỏy chủứng dụng (Application Server), trong khi cỏc chức năng dữ liệu được điều khiển bởi cỏc mỏy tớnh chuyờn dụng, gọi là cỏc mỏy chủ dữ liệu (Database Server), dẫn đến khuynh hướng cấu trỳc hệ thống phõn tỏn ba bờn (Three Tie Distributed System Architecture), trong đú cỏc vị trớ được tổ chức thành cỏc đại lý chuyờn trỏch (Specialized Server), khụng tổ chức với mục đớch chung chung.
Một hệ quản trị cơ sở dữ liệu song song cú thể được định nghĩa như là một hệ quản trị cơ sở dữ liệu thực thi trờn một mỏy tớnh đa bộ
xử lý, bao gồm cỏc thay đổi từ cỏc cổng truyền thẳng của một hệ
thống cơ sở dữ liệu đang tồn tại đến sự kết hợp phức tạp của xử lý song song và cỏc chức năng hệ thống cơ sở dữ liệu vào một kiến trỳc phần cứng và phần mềm mới. Cỏch tiếp cận này tạo điều kiện cho việc khai thỏc đầy đủ cỏc lợi thế của những hệ thống đa bộ xử lý trong mụi trường phõn tỏn.
5.1.2 Mục tiờu của xử lý song song
Xử lý song song sử dụng cỏc mỏy tớnh đa bộ xử lý để chạy cỏc chương trỡnh ứng dụng bằng cỏch dựng nhiều bộ xử lý để cải thiện hiệu năng. Cỏc hệ cơ sở dữ liệu song song tổ hợp khả năng quản lý cơ
sở dữ liệu và khả năng xử lý song song để làm tăng hiệu năng và độ
khả dụng. Cơ chế song song đó giải quyết vấn đề tắc nghẽn tại cỏc node khi thực hiện xuất/nhập (I/O), vỡ thời gian truy xuất cao hơn nhiều so với thời gian truy xuất bộ nhớ chớnh. Vớ dụ, một cơ sở dữ liệu
cú kớch thước D được lưu trờn một thiết bị nhớ cú lưu lượng là T. Như vậy lưu lượng của hệ thống sẽ bị chặn bởi T. Ngược lại nếu phõn mảnh cơ sở dữ liệu và cấp phỏt trờn n vị trớ, mỗi vị chứa D/n và lưu lượng T, như vậy sẽ cú lưu lượng n*T. 5.2 ƯU ĐIỂM CỦA CƠ SỞ DỮ LIỆU SONG SONG Cỏc hệ thống dữ liệu song song kết hợp việc quản trị dữ liệu và xử lớ song song làm tăng hiệu năng và tớnh sẵn sàng của hệ thống. Hiệu năng là mục tiờu của cỏc mỏy cơ sở dữ liệu (Database Machine) với hệ quản trị cơ sở dữ liệu truyền thống thường xảy ra ựn tắc trong vào/ra do thời gian truy cập bộ nhớ phụ cao hơn so với thời gian truy cập bộ nhớ chớnh. Việc phõn vựng cơ sở dữ liệu trờn nhiều đĩa sẽ đạt
được khả năng song song của cỏc liờn truy vấn và nội truy vấn (Inter and Intra Query), cải thiện một cỏch đỏng kể về thời gian đỏp ứng và thụng lượng cỏc giao tỏc.
Một hệ cơ sở dữ liệu song song cú thể định nghĩa đơn giản như
một hệ quản trị cơ sở dữ liệu được cài đặt trờn bộ đa xử lý kết chặt (Tightly Couple), bao gồm từ kết nối hệ quản trị cơ sở dữ liệu hiện cú với yờu cầu ghi lại cỏc thủ tục giao diện hệ điều hành đến sự kết hợp phức tạp giữa xử lớ song song và cỏc chức năng hệ thống cơ sở dữ liệu thành kiến trỳc phần cứng/phần mềm mới.
Hệ thống cơ sở dữ liệu song song hoạt động như một Database Server cho Application Server trong mụ hỡnh Client/Server của mạng mỏy tớnh. Hệ thống cơ sở dữ liệu song song hỗ trợ cỏc chức năng cơ
sở dữ liệu và giao diện Client/Server và cú thể chức năng đa năng. Để
hạn chế trao đổi thụng tin giữa Client và Server, cần thiết cú một giao diện ở mức cao khuyến khớch xử lý dữ liệu trờn mỏy chủ.
Tỷ lệ giỏ thành/hiệu năng của cỏc hệ cơ sở dữ liệu song song tốt hơn so với mỏy tớnh lớn (Mainframe) tương ứng, cũng là những ưu
5.2.1 Hiệu năng cao
Hiệu năng cao (High Performance) cú thểđạt được bằng cỏc giải phỏp hỗ trợ hệđiều hành nhận biết cỏc yờu cầu của cơ sở dữ liệu, khả
năng song song, tối ưu húa và cõn bằng tải. Hệ điều hành nhận biết cỏc yờu cầu cụ thể của một cơ sở dữ liệu sẽ làm đơn giản húa khả
năng cài đặt cỏc chức năng cơ sở dữ liệu ở mức thấp, vỡ vậy sẽ làm giảm chi phớ. Cơ chế hoạt động song song cú thể làm tăng lưu lượng bằng việc sử dụng khả năng song song liờn truy vấn, giảm thời gian
đỏp ứng cỏc giao tỏc bằng việc sử dụng khả năng song song của cỏc nội truy vấn. Tuy nhiờn, việc làm giảm thời gian đỏp ứng cỏc truy vấn phức tạp qua cơ chế song song quy mụ lớn cũng cú thể sẽ tăng tổng thời gian (thờm thời gian truyền thụng) và làm ảnh hưởng đến lưu lượng. Do đú, việc tối ưu và so sỏnh cỏc truy vấn nhằm giảm tối thiểu cỏc khả năng song song, vớ dụ như việc ràng buộc tớnh song song của cõu truy vấn. Cõn bằng tải là khả năng hệ thống chia khối lượng cụng việc bằng nhau giữa tất cả cỏc bộ xử lý. Nú phụ thuộc vào kiến trỳc bộ
xử lý, nú cú thểđược lưu giữ bởi thiết kế cơ sở dữ liệu tĩnh hoặc động.
5.2.2 Tớnh sẵn sàng cao
Hệ cơ sở dữ liệu song song cú nhiều tàanh phần tương tự nhau. Khả năng nhõn bản dữ liệu trờn cỏc vị trớ của mạng làm tăng tớnh sẵn sàng của cơ sở dữ liệu khi truy cập dữ liệu. Trong hệ thống song song, cỏc mảnh dữ liệu được cài đặt trờn cỏc thiết bị lưu trữ tại cỏc node của mạng, xỏc suất đĩa hỏng ở bất cứ thời điểm nào cũng cú thể xảy ra. Tuy nhiờn cỏc sự cốđĩa hỏng khụng làm mất cõn bằng tải bằng giải phỏp phõn vựng nhõn bản trờn cỏc vị trớ, cú thể truy cập song song.
5.2.3 Khả năng mở rộng
Trong mụi trường song song, khả năng mở rộng (Extensibility) hệ
thống dễ dàng hơn. Cú thể dễ dàng tăng kớch thước cơ sở dữ liệu hoặc tăng thụng lượng băng thụng. Tớnh mở rộng hệ thống là mở rộng khả
rộng mở rộng tuyến tớnh (Linear Scaleup) và tốc độ tuyến tớnh Linear Speedup). Mở rộng tuyến tớnh là hiệu năng vẫn được duy trỡ khi tăng tuyến tớnh kớch thước cơ sở dữ liệu và khả năng xử lý và lưu trữ. Tăng tốc độ tuyến tớnh nghĩa là núi đến sự tăng tuyến tớnh về hiệu năng trờn một cơ sở dữ liệu khụng đổi về kớch thước và tăng tuyến tớnh về khả
năng xử lý và lưu trữ. Việc mở rộng hệ thống đũi hỏi phải tổ chức lại ớt nhất trờn cơ sở dữ liệu đó cú.
5.3 KIẾN TRÚC HỆ CƠ SỞ DỮ LIỆU SONG SONG
Với cỏch tiếp cận Client/Server, kiến trỳc của một hệ cơ sở dữ
liệu song song bao gồm 3 bộ quản lý chớnh như sau:
5.3.1 Bộ quản lý phiờn
Bộ quản lý phiờn (Session Manager - SM) giỏm sỏt giao dịch, hỗ
trợ cỏc giao dịch giữa Client với Server. Thực hiện kết nối và giải phúng kết nối cỏc tiến trỡnh giữa cỏc Client và giữa hai hệ thống bộ
quản lý yờu cầu và bộ quản lý dữ liệu. Vỡ thế nú khởi tạo và đúng cỏc phiờn giao dịch người sử dụng cú nhiều giao tỏc.
5.3.2 Bộ quản lý yờu cầu
Bộ quản lý yờu cầu (Request Manager - RM) tiếp nhận cỏc yờu cầu từ phớa Client cú liờn quan đến việc biờn dịch và thực thi truy vấn. Nú cú thể truy xuất vào thư mục cơ sở dữ liệu chứa cỏc thụng tin về
cấu trỳc dữ liệu và chương trỡnh. Phụ thuộc vào từng yờu cầu mà bộ
xử lý này sẽ thực hiện nhiều pha biờn dịch khỏc nhau, kớch hoạt cho việc thực thi cỏc cõu truy vấn, trả kết quả cũng như mó lỗi về cho ứng dụng Client. Vỡ bộ quản lý yờu cầu giỏm sỏt việc thực thi và xỏc nhận giao dịch nờn nú cú thể kớch hoạt thủ tục khụi phục trong trường hợp sự cố giao dịch bị lỗi. Để tăng tốc độ biờn dịch cõu truy vấn nú cú thể
tối ưu húa và song song húa cõu truy vấn vào lỳc biờn dịch.
5.3.3 Bộ quản lý dữ liệu
Bộ quản lý dữ liệu (Data Manager - DM) cung cấp tất cả cỏc chức năng cần thiết để chạy song song cỏc cõu truy vấn đó biờn dịch. Nghĩa
là, thực hiện cỏc toỏn tử cơ sở dữ liệu, hỗ trợ giao dịch song song, quản lý bộ nhớ Cache,... Nếu bộ quản lý yờu cầu cú khả năng biờn dịch cỏc lệnh điều khiển dũng dữ liệu thỡ việc đồng bộ húa và giao tiếp giữa cỏc bộ quản lý dữ liệu cú thể thực hiện. Nếu khụng, việc điều khiển giao dịch và đồng bộ húa phải được thực hiện bằng module quản lý yờu cầu.
Hỡnh 5.1: Kiến trỳc tổng quỏt của một hệ cơ sở dữ liệu song song
5.4 CÁC KIẾN TRÚC HỆ THỐNG SONG SONG
5.4.1 Tổng quan về kiến trỳc song song và hệ thống song song
Một hệ thống song song là một hệ thống bao gồm nhiều bộ vi xử
lý được kết nối với nhau và kết nối với cỏc thành phần phần cứng khỏc. Như vậy, một hệ thống song song là kết quả kết hợp cỏc cỏch thiết kế khỏc nhau nhằm cung cấp những ưu điểm về hiệu năng, tớnh khả dụng và tớnh mở rộng với tỷ lệ chi phớ/hiệu năng tốt hơn so với một mỏy tớnh lớn tương đương. Cỏc thành phần phần cứng liờn kết với nhau bằng mụi trường truyền vật lý. Cú hai loại kiến trỳc song song cơ
bản là: kiến trỳc chia sẻ bộ nhớ và kiến trỳc khụng chia sẻ bộ nhớ. Kiến trỳc lai kết hợp ưu điểm của 2 kiến trỳc chia sẻ bộ nhớ và kiến trỳc khụng chia sẻ bộ nhớ, vớ dụ như kiến trỳc NUMA (Non Uniform Memory Access) truy cập bộ nhớ khụng đồng dạng.
5.4.2 Kiến trỳc chia sẻ bộ nhớ
Kiến trỳc chia sẻ bộ nhớ (Shared-Memory) là kiến trỳc đơn giản của hệ thống song song. Trong kiến trỳc này, mỗi bộ xử lý truy cập
đến một mụ-đun nhớ hoặc một đơn vịđĩa bất kỳ qua một liờn kết tốc
độ cao, chẳng hạn như bus tốc độ nhanh hoặc chuyển mạch chữ nhật. Mụ hỡnh của kiến trỳc chia sẻ bộ nhớđược thể hiện như trong hỡnh 5.2.
Hỡnh 5.2: Kiến trỳc chia sẻ bộ nhớ
Một trong những mụ hỡnh thụng dụng nhất của kiến trỳc chia sẻ
bộ nhớ là mụ hỡnh mỏy song song truy cập ngẫu nhiờn (Parallel Random Access Machine - PRAM). Mụ hỡnh này cú thể được mở
rộng tựy theo số lượng bộ vi xử lý, được đồng bộ húa ở mức xử lý lệnh. Vỡ vậy, mỗi bộ vi xử lý sẽ thực hiện những tập lệnh của bản thõn nú và sẽđược hệ thống điều hành ở mức chu kỳ lệnh.
Một số hệ thống song song dựa trờn kiến trỳc chia sẻ bộ nhớ như: XPRS, DBS2 và Volcano. Hệ quản trị cơ sở dữ liệu trờn mỏy tớnh đa bộ vi xử lý chia sẻ bộ nhớ, sự thực thi của DB2 trờn mỏy IBM 3090 với 6 bộ vi xử lý. Hầu hết cỏc sản phẩm thương mại chia sẻ bộ nhớ đều lợi dụng song song húa cỏc liờn truy vấn (Inter - Query) để cung
cấp khả năng thụng qua cỏc giao dịch lớn và song song qua cỏc nội truy vấn (Intra - Query), nhằm giảm thời gian đỏp của truy vấn hỗ trợ
quyết định.
Kiến trỳc song song dựa trờn việc chia sẻ bộ nhớ cú những ưu
điểm và nhược điểm khi triển khai cơ sở dữ liệu phõn tỏn. Kiến trỳc chia sẻ bộ nhớ cú 2 ưu điểm chớnh là: đơn giản và cõn bằng tải. Song song húa cỏc bộ vi xử lý cú tớnh đơn giản. Cỏc khỏi niệm liờn quan
đến bộ nhớ và cỏc chớnh sỏch quản lý bộ nhớ khụng thay đổi. Thụng tin về thư mục và cỏc thụng tin điều khiển (bảng khúa...) cú thểđược chia sẻ bởi tất cả cỏc bộ xử lý, vỡ vậy phần mềm ghi cơ sở dữ liệu khụng cú sự khỏc biệt so với mỏy tớnh cú một bộ xử lý. Cụ thể hơn, việc song song húa cỏc truy vấn giữa những bộ vi xử lý khỏc nhau cú thể thực hiện một cỏch dễ dàng. Việc song song húa truy vấn trong mỗi vi xử lý yờu cầu thực hiện một vài giao dịch song song nhưng đơn giản. Về cõn bằng tải, kiến trỳc chia sẻ bộ nhớ dễ dàng đạt được cõn bằng tải khi thực thi, vỡ tất cả cỏc đơn vị lưu trữđều được sử dụng chung.
Tuy nhiờn, kiến trỳc chia sẻ bộ nhớ cũn tồn tại một số vấn đề cần xem xột, như giỏ cả, giới hạn khả năng mở rộng và tớnh khả dụng kộm. Giỏ thành cao vỡ cú cỏc liờn kết phức tạp và số lượng liờn kết lớn khi mỗi bộ vi xử lý phải kết nối với mỗi mụ-đun bộ nhớ hay đĩa. Với cỏc bộ vi xử lý tốc độ nhanh, dựng chung bộ nhớ trong quỏ trỡnh truy cập bộ nhớ cú thể dẫn đến số lượng xung đột lớn, vỡ vậy làm giảm hiệu năng hệ thống. Cũn nữa, khi tăng thờm vi xử lý, ngoài việc phải tăng thờm nhiều kết nối, sự xung đột giữa cỏc vi xử lý cũng vỡ đú cú thể
tăng nhanh, vỡ vậy khả năng mở rộng của hệ thống sử dụng kiến trỳc này bị giới hạn trong phạm vi chục bộ vi xử lý. Nhược điểm cuối cựng là, vỡ khụng gian nhớđược chia sẻ bởi tất cả bộ vi xử lý, một bộ nhớ
cú lỗi, cú thể ảnh hưởng đến tất cả cỏc bộ vi xử lý, do đú làm giảm tớnh khả dụng của cơ sở dữ liệu.
5.4.3 Kiến trỳc chia sẻđĩa
Khỏc với kiến trỳc chia sẻ bộ nhớ, trong kiến trỳc chia sẻ đĩa (Shared-Disk), mỗi bộ vi xử lý truy cập đến một đơn vị đĩa bất kỳ
thụng qua liờn kết bờn trong cú bộ nhớ chớnh của riờng nú. Kiến trỳc chia sẻđĩa được biểu diễn trong hỡnh 5.3.
Hỡnh 5.3: Kiến trỳc chia sẻđĩa
Trong kiến trỳc này, một số bộ xử lý truy cập đến cỏc đơn vịđĩa thụng qua liờn kết nối nhưng khụng được phộp (khụng chia sẻ) truy cập dến bộ nhớ chớnh. Khi đú mỗi bộ xử lý cú thể truy cập đến cỏc trang dữ liệu (database page) trờn ổđĩa chia sẻ và sao chộp chỳng đến bộ nhớ catche của nú. Để trỏnh xung đột khi truy cập đến cựng một trang, cần phải cú cơ chế khúa toàn cục (Global Locking) và cỏc giao thức dựng để bảo trỡ sự gắn kết của cache.
Cỏc vớ dụ về cỏc hệ thống CSDL song song chia sẻổđĩa bao gồm sản phẩm chia sẻ dữ liệu IMS/VS của IBM và cỏc sản phẩm VAX DBMS, Rdb của DEC. Sự thực thi của Oracle trờn VAXcluster của