Tải bản đầy đủ (.doc) (21 trang)

MỘT MÔ HÌNH CẤP PHÁT TRONG THIẾT KẾ 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 (427.9 KB, 21 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Lớp Cao Học khóa 5 ngành Khoa Học Máy Tính
08.2012


BÀI THU HOẠCH MÔN HỌC
Cơ sở dữ liệu nâng cao
Đề tài
MỘT MÔ HÌNH CẤP PHÁT TRONG
THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN
Giảng viên hướng dẫn: PGS-TS Đỗ Phúc
Người thực hiện: Trần Kim Hoàng Quốc (CH1001062)
1
Mục lục
1. Giới thiệu 3
2. Mô hình cấp phát 4
2.1 Vấn đề cấp phát 4
2.2 Yêu cầu thông tin 5
2.2.1 Thông tin cơ sở dữ liệu 5
2.2.2 Thông tin giao tác 5
2.2.3 Thông tin site 7
2.2.4 Thông tin mạng 7
2.3 Các công thức chi phí 8
3. Các giải thuật heuristic 9
3.1 Thuật toán 1 9
3.2 Thuật toán 2 12
4. Một số kết quả thử nghiệm 14
4.1 Các số liệu kết quả 14
4.2 Các kết quả thí nghiệm 17
5. Cài đặt 18


6. Kết luận 21
7. Tài liệu tham khảo 21
1
Khi thiết kế cơ sở dữ liệu phân tán trong một mạng diện rộng (WAN), việc cấp phát các
mảnh là một vấn đề lớn bởi vì nó liên quan đến hiệu năng của toàn hệ thống. Bài thu
hoạch này mô tả lại một mô hình cấp phát đơn giản, phản ánh được hành vi giao tác trong
hệ cơ sở dữ liệu phân tán. Dựa trên mô hình và thông tin giao tác, hai giải thuật heuristic
đã được phát triển để tìm ra phương án cấp phát cận tối ưu sao cho chi phí thông tin được
cắt giảm càng nhiều càng tốt. Các kết quả cho thấy phương án tìm ra nhờ những giải
thuật này là gần với phương án tối ưu. Một số thí nghiệm cũng đã được tiến hành để kiểm
tra các công thức chi phí có thể phản ánh được chi phí thông tin trong thế giới thực. Để
kiếm chứng, thuật toán và các công thức đã được cài đặt và chạy thử bằng ngôn ngữ C#.
1. Giới thiệu
Thiết kế cơ sở dữ liệu phân tán phải giải quyết các vấn đề có liên quan với nhau:
1) Phân mảnh quan hệ toàn cục như thế nào?
2) Bao nhiêu bản sao của một mảnh nên được lặp lại (replicated)?
3) Các mảnh được cấp phát vào các địa điểm (site) trong mạng như thế nào?
4) Các thông tin gì cần thiết cho phân mảnh và cấp phát?
Đây là những vấn đề làm cho thiết kế cơ sở dữ liệu phân tán trở nên phức tạp. Thậm chí
khi ta xem xét từng vấn đề riêng rẽ thì mỗi một vấn đề đều rất khó. Để đơn giản ta chỉ
xem xét vấn đề cấp phát, với giả định là quan hệ đã được phân mảnh. Do đó, điều cần
quan tâm ở đây là xác định số lặp lại cho từng mảnh và tìm một phương án cấp phát gần
tối ưu cho tất cả các mảnh (bao gồm cả các mảnh lặp lại) trong mạng WAN sao cho tổng
chi phí thông tin là thấp nhất.
Với một yêu cầu đọc (read) của một giao tác, cách thực hiện đơn giản nhất là đọc ngay tại
mảnh được cấp phát tại site phát sinh yêu cầu. Có thể sẽ phức tạp hơn một chút nếu phải
đọc từ một mảnh ở xa. Tuy nhiên một yêu cầu ghi (write) thì sẽ rất phức tạp vì phải thực
hiện lan truyền việc ghi này khắp các bản sao của mảnh trong mạng để bảo đảm tính nhất
quán của dữ liệu.
1

Mô hình cấp phát cần phải xem xét tần suất của các yêu cầu tại các site. Bởi vì các hành
vi giao tác ảnh hưởng đến các phương án cấp phát, các công thức chi phí phải được tính
toán dựa theo thông tin giao tác để giảm thiểu chi phí giao tác.
Mặc dù đã có nhiều nhà nghiên cứu đề nghị các mô hình và thuật toán cấp phát, hầu hết
các mô hình này đều rất phức tạp và khó hiểu nên khó áp dụng được trong thực tế. Mô
hình đề xuất trong bài này là một mô hình đơn giản, phản ánh hành vi giao tác trong hệ
cơ sở dữ liệu phân tán. Mô hình này cũng đã được thử và so sánh với các mô hình khác,
đã cho thấy phương án cấp phát tìm ra nhờ thuật toán này là gần tối ưu, tốt hơn so với
một số mô hình khác.
Phần 2 sẽ phân tích cách hành xử giao tác và đề nghị một mô hình cấp phát. Phần 3 sẽ
trình bày hai thuật toán heuristic để tìm phương án cấp phát gần tối ưu. Để kiểm tra các
công thức chi phí có phù hợp với chi phí thông tin trong thế giới thực, một số thử nghiệm
sẽ được trình bày trong phần 4. Phần cuối trình bày chương trình cài đặt cho thuật toán 1.
2. Mô hình cấp phát
2.1 Vấn đề cấp phát
Trước khi xem xét vấn đề cấp phát ta cần xác định vấn đề một cách rõ ràng. Ở đây ta chỉ
giải quyết trong môi trường WAN vì ảnh hưởng của việc lưu trữ các phân mảnh trong các
site của mạng LAN thì không đáng kể.
Giả sử có mạng WAN với m site:
S = {S
1
, S
2
, S
m
}
trong đó có một tập T các giao tác được thực hiện
T = {T
1
, T

2
, T
q
}
và một tập các phân mảnh của các quan hệ đã được chia trong quá trình thiết kế:
F = {F
1
, F
2
, F
n
}
1
Để tổng quát hóa vấn đề cấp phát, ta sẽ không chỉ xác định số lượng bản sao của các phân
mảnh mà còn tìm cách cấp phát tốt nhất cho từng bản sao phân mảnh vào các site, dựa
theo thông tin mạng và T.
Về mức độ tối ưu, ta có hai số đo:
1. Chi phí tối thiểu: Hàm chi phí gồm chi phí lưu trữ từng F
j
vào site S
k
, chi phí truy
vấn F
j
ở site S
k
, chi phí cập nhật F
j
ở tất cả các site mà nó được lưu, và chi phí
thông tin.

2. Hiệu năng: Hai chiến lược nổi tiếng là giảm thiểu thời gian đáp ứng và tăng tối đa
thông lượng hệ thống tại từng site.
Trong mô hình này, chi phí tối thiểu sẽ được dùng làm số đo độ tối ưu. Hơn nữa, trong
môi trường WAN, với băng thông giới hạn ở 50Kbps thì các chi phí truy xuất I/O hay
thời gian xử lý của CPU không phải là yếu tố lớn cần xem xét để giảm chi phí tổng thể.
Do đó, vấn đề cấp phát chỉ đơn giản là phân bổ các bản sao của phân mảnh vào các site
sao cho tổng chi phí thông tin là thấp nhất.
2.2 Yêu cầu thông tin
Trước khi dẫn ra các công thức chi phí, một số thông tin cần được phân tích trước, đó là:
1. Dữ liệu về lượng của cơ sở dữ liệu.
2. Hành vi giao tác.
3. Thông tin site.
4. Thông tin mạng.
2.2.1 Thông tin cơ sở dữ liệu
Kích cỡ của từng mảnh, ký hiệu là size(F
j
), phải được định nghĩa vì nó đóng vai trò chủ
đạo khi tính chi phí thông tin.
2.2.2 Thông tin giao tác
Trong mô hình ta có hai ma trận truy cập RM và UM mô tả các hành vi đọc (retrieve) và
cập nhật (update) dữ liệu của tất cả các giao tác. Các phần tử r
ij
(hay u
ij
) trong RM (hay
1
UM) là tần số truy cập mảnh F
j
trong giao tác T
i

. Do không phải tất cả các mảnh đều
được truy xuất bởi giao tác, các phần tử trong ma trận có thể bằng 0, như trong ví dụ sau:
Trong ma trận RM và UM trên, giao tác T
3
đọc từ F
3
3 lần và cập nhật mảnh F
1
2 lần, F
2
1
lần và F
4
1 lần trong mỗi lần chạy.
Khi một giao tác truy cập một mảnh, không phải tất cả các bộ (tuple) đều phải được đọc
hay cập nhật. Số bộ được đọc hay cập nhật khác nhau trong tất cả các giao tác. Do đó
chúng ta định nghĩa ma trận chọn SEL (selectivity) để thể hiện phần trăm của phân mảnh
F
j
được truy cập trong giao tác T
i
.
Trong ma trận SEL trên, giao tác T
3
đọc chỉ 0.1% của mảnh F
3
và cập nhật 2% của F
1
, 5%
của F

2
, 0.5% của F
4
.
Ngoài ra ta còn cần một ma trận tần suất FREQ để thể hiện tần suất thực thi của tất cả
giao tác trên các site.
1
Giao tác T
3
trong ma trận FREQ trên chạy 2 lần ở site S
1
và 1 lần ở site S
3
.
2.2.3 Thông tin site
Thông tin site trong mạng có thể là thông tin về dung lượng lưu trữ và tốc độ xử lý.
Thông tin này nói chung sẽ được xem như là những ràng buộc trong mô hình cấp phát.
Để đơn giản ta sẽ không xét đến thông tin này.
2.2.4 Thông tin mạng
Trong môi trường mạng WAN, chi phí thông tin để truyền gói dữ liệu kích thước m_size
từ site S
i
sang site S
j
được mô tả bằng một hàm tuyến tính như sau:
trong đó
- C
ini
: hằng số chi phí khởi tạo một gói dữ liệu kích thước p_size.
- CTR

i,j
: chi phí truyền một đơn vị dữ liệu từ site S
i
sang site S
j
.
Giả sử các site đều được kết nối với nhau bằng liên kết luận lý, chi phí CTR
i,j
có thể được
xác định với ma trận chi phí thông tin CTR. Để đơn giản, ta có thể giả định ma trận CTR
là đối xứng.
1
Ví dụ trên là ma trận chi phí thông tin dựa trên một mạng WAN với băng thông giới hạn
50Kbps (tương đương 0.16 ms/byte). Mỗi phần tử trong ma trận là một bội số của 0.16.
Trong mạng WAN, trước khi một giao tác truy xuất một mảnh từ xa, nó phải tạo ra một
mạch điện ảo để kết nối với đầu cuối bên kia. Trong suốt chu kỳ sống của giao tác, nó
dùng mạch ảo này để gửi yêu cầu và nhận hồi đáp. Khi giao tác kết thúc thì mạch ảo cũng
đóng. Để phản ánh mạng WAN thực, mô hình của chúng ta cũng xét đến chi phí tạo các
mạch ảo này, ký hiệu là VC
ini
.
2.3 Các công thức chi phí
Phần này sẽ dẫn ra các công thức chi phí thông tin để phản ánh các hành vi của giao tác
trong cơ sở dữ liệu phân tán trong môi trường WAN. Dựa theo các thông tin có được như
mô tả trong phần 2.2, chúng ta sẽ đi tìm một phương án cấp phát gần tối ưu để cho tổng
chi phí thông tin được giảm thiểu. Công thức giảm thiểu chi phí thông tin có thể được
diễn đạt như sau:
min(CC
load
+ CC

proc
) (2)
Công thức chi phí thông tin bao gồm hai thành phần:
- CC
load
: chi phí dùng cho nạp dữ liệu.
- CC
proc
: chi phí dùng cho xử lý giao tác.
CC
load
là chi phí để nạp tất cả các bản sao của các mảnh vào các site trong mạng trước khi
giao tác được xử lý. Nó có thể được diễn đạt bằng công thức sau:
trong đó
- FAT là ma trận của bảng cấp phát mảnh. FAT
j,k
= 1 nếu mảnh Fj được cấp cho
site S
k
, ngược lại thì bằng 0.
- SI là site chủ có nhiệm vụ nạp tất cả các bản sao của các mảnh vào các site trong
mạng.
1
Kế đến, chi phí CC
proc
bao gồm 3 thành phần: giao tác đọc TR
i
, giao tác cập nhật TU
i
, và

tạo mạch ảo VC
ini
. Công thức tính CC
proc
như sau:
trong đó
- FREQ
i,k
là tần suất thực thi của giao tác T
i
tại site S
k
.
- Các chi phí TR
i
và TU
i
có thể được tính tường minh như sau:
Chi phí đọc TR
i
cho thấy trong tất cả các site có bản sao F
j
, chỉ có site tốn ít chi phí
truyền nhất được chọn để xử lý giao tác đọc. Tuy nhiên, trong chi phí cập nhật TU
i
, tất cả
các chi phí truyền đến các site ở xa mà có lưu trữ bản sao phân mảnh đều được cộng vào.
Việc lan truyền trong giao tác cập nhật là bắt buộc nhằm duy trì sự nhất quán của dữ liệu
trong tất cả các bản sao của mảnh F
j

.
3. Các giải thuật heuristic
Trong phần trước, ta đã xây dựng mô hình cấp phát tổng quát. Tìm kiếm một phương án
cấp phát tối ưu trong mô hình này là một bài toán NP-complete. Với n mảnh và m site, ta
sẽ có (2
m
-1)
n
cách cấp phát khác nhau. Do đó ta chỉ có thể tìm các giải thuật heuristic để
giải bài toán này. Phần này sẽ đề xuất 2 thuật toán heuristic để giảm chi phi thông tin đến
mức tối thiểu có thể được.
3.1 Thuật toán 1
Thuật toán thứ nhất có 3 bước. Bước đầu tiên sẽ khởi tạo bảng cấp phát mảnh bằng cách
chỉ quan tâm đến các giao tác đọc. Một yêu cầu đọc có thể được xử lý mà không tốn chi
phí thông tin nếu các mảnh đích của giao tác đọc được cấp phát vào đúng site mà giao tác
1
được khởi tạo. Từ ma trận RM và FREQ mô tả trong phần 2.2, ta có thể khởi tạo bảng
cấp phát mảnh FAT.
Với mảnh F
3
trong RM, chỉ các giao tác T
3
và T
4
có thể đọc nó. Vì các giao tác T
3
và T
4
chỉ được thực hiện ở site S
1

và S
3
, mảnh F
3
được cấp phát vào site S
1
và S
3
.
Trong bước thứ 2, ta sẽ xét đến các yêu cầu cập nhật. Chúng ta biết rằng bảng cấp phát
tạo trong bước 1 là cấp phát tốt nhất cho các yêu cầu đọc vì nó không phát sinh chi phí
thông tin. Ta không cần thêm bản sao của các mảnh, bởi vì nó chẳng giúp ích được gì
thêm cho các yêu cầu đọc, nhưng lại làm tăng chi phí thêm cho những yêu cầu cập nhật.
Do đó trong bước này, ta sẽ xem xét bỏ bớt các bản sao từ cấp phát ban đầu để giảm bớt
chi phí thông tin cho tất cả các yêu cầu.
Việc loại bỏ một bản sao khỏi một site có thể làm ảnh hưởng nhiều đến chi phí thông tin
của một số yêu cầu. Chẳng hạn một yêu cầu đọc từ site cục bộ sẽ chịu chi phí thông tin
bởi vì bản sao phân mảnh đích đã bị loại bỏ khỏi site đó. Một yêu cầu đọc từ site ở xa có
thể có hoặc không có thêm chi phí thông tin, tuy thuộc vào yêu cầu đó có truy xuất đến
một bản sao đã bị loại bỏ hay không. Một yêu cầu cập nhật cục bộ sẽ không bị ảnh hưởng
gì vì không có chi phí thông tin gì trong tình huống này. Một yêu cầu cập nhật từ xa, nếu
bản sao của mảnh được loại bỏ thì sẽ không tốn chi phí thông tin để cập nhật bản sao đó.
Tóm lại, khi gỡ bỏ bản sao của mảnh từ một site, yêu cầu đọc cục bộ sẽ chịu thêm chi
phí, và yêu cầu đọc từ xa cũng có thể chịu thêm chi phí. Tuy nhiên, một yêu cầu cập nhật
từ xa sẽ được lợi, vì không cần phải truy cập đến bản sao đã bị bỏ. Khi nào lợi ích này
lớn hơn chi phí thì chúng ta nên loại bỏ bản sao khỏi site. Đối với mảnh, nếu lợi ích này
lớn hơn chi phí ở vài site thì cũng chỉ nên loại bỏ bản sao nào mà sẽ đem lại lợi ích nhiều
nhất. Quá trình loại bỏ được lặp liên tục cho đến khi không còn lợi ích nào lớn hơn so với
chi phí, hoặc khi chỉ còn một bản duy nhất của mảnh trong WAN. Bước 2 được lặp liên
tục cho đến khi tất cả các mảnh được cấp phát trong bước 1 đã được duyệt qua.

Trong bước cuối cùng, nếu một mảnh nào đó chưa được cấp phát vào site nào, và nó có
bị cập nhật bởi một số giao tác, ta sẽ tìm các site ứng cử viên để cấp phát mảnh này bằng
cách dựa vào ma trận UM và FREQ. Trong số các site ứng cử viên, chúng ta chỉ chọn
một site có chi phí thông tin thấp nhất để cấp phát. Ví dụ: mảnh F
5
trong RM không được
1
đọc bởi giao tác nào, tuy nhiên giao tác T
1
và T
4
có cập nhật nó (xem ma trận UM). Do
giao tác T
1
và T
4
chỉ thực hiện trên site S
2
, S
3
và S
4
, mảnh F
5
sẽ được cấp phát vào một
trong 3 site đó dựa theo chi phí thông tin.
Độ phức tạp thời gian của thuật toán 1 là O(nm
2
q) trong đó n (hay |F|) là số phân mảnh
khác nhau, m (hay |S|) là số site và q (hay |T|) là số giao tác. Chi tiết giải thuật như sau:

Thuật toán 1:
Input:
RM(trans,frag); /* ma trận Đọc */
UM(trans,frag); /* ma trận Cập nhật */
SEL(trans,frag); /* ma trận Chọn */
FREQ(trans,site); /* ma trận Tần suất */
CTR(site,site); /* ma trận Chi phí thông tin */
Output:
FAT(frag,site); /* bảng cấp phát mảnh */
Function:
Benefit(frag,site); /* chi phí tiết kiệm khi loại bỏ mảnh khỏi site */
Begin
Benefit =

return Benefit;
End
Function:
Cost(frag,site); /* chi phí tăng thêm khi loại bỏ mảnh khỏi site */
Begin
For S
k
in S do
begin
Gọi n là site có độ trễ mạng thấp nhất từ S
k
khi S
k
thực hiện đọc frag;
if ( n = site )
begin

T1 =

Gọi n1 là site có độ trễ mạng thấp nhất tiếp theo từ S
k
khi S
k
thực hiện đọc frag;
T2 =

Cost = Cost + (T2 - T1);
end
1
end
return Cost;
End
Function:
MinDelay(frag) ; /* site có độ trễ thấp nhất để cấp phát mảnh frag */
Function:
NumFragCopy(frag); /* số bản sao của mảnh trong hệ thống */
Begin
Step 1 /* Khởi tạo giải pháp tốt nhất cho giao tác đọc */
For T
i
in T, F
j
in F, S
k
in S do
if (RM(T
i

,F
j
)*FREQ(T
i
,S
k
) > 0)
FAT(F
j
,S
k
) = 1;
Step 2 /* Kiểm tra có nên loại mảnh ra khỏi site */
For F
j
in F do
While (NumFragCopy(Fj) > 1)
begin
Gọi S
k
là site có FAT(F
j
,S
k
)=1 và giá trị của (Benefit(F
j
,S
k
) - Cost(F
j

,S
k
)) là lớn nhất;
if ((Benefit(F
j
,S
k
) - Cost(F
j
,S
k
)) > 0)
FAT(Fj,Sk) = 0
else
break;
end
Step 3 /* Nếu một mảnh chưa được cấp phát nhưng nó có bị cập nhật bởi một số giao tác, chọn site có độ
trễ thấp nhất để cấp phát mảnh. */
For F
j
in F do
if (NumFragCopy(F
j
) = 0 and UM(T
i
,F
j
) > 0)
begin
S

k
= MinDelay(F
j
)
FAT(F
j
,S
k
) = 1;
end
End
3.2 Thuật toán 2
Thuật toán thứ hai cũng có 3 bước. Bước đầu tiên và cuối cùng giống như thuật toán 1.
Trong bước 2, chúng ta sẽ quét qua tất cả các phần tử trong bảng cấp phát theo thứ tự
trọng số giảm dần thay vì quét từng hàng như thuật toán 1.
Trọng số của một phần tử được định nghĩa là lượng dữ liệu tiết kiệm được (truy xuất bởi
các yêu cầu cập nhật) khi loại bỏ bản sao ra khỏi site. Trọng số được tính dựa vào các ma
trận FREQ, UM, SEL và kích thước mảnh size(F
j
).
1
Trong mỗi lần chạy, ta sẽ chọn phần tử có giá trị trọng số lớn nhất trong số các phần tử
chưa được duyệt qua, và kiểm tra lợi ích có lớn hơn chi phí hay không. Nếu lớn hơn, loại
bỏ bản sao ra khỏi site, trừ khi bản sao này là duy nhất trong mạng WAN. Bước 2 được
lặp liên tục cho đến khi tất cả các phần tử đều đã được duyệt qua. Độ phức tạp thời gian
của thuật toán này cũng giống như thuật toán 1, O(nm
2
q). Chi tiết của giải thuật như sau:
Thuật toán 2:
Input:

RM(trans,frag); /* ma trận Đọc */
UM(trans,frag); /* ma trận Cập nhật */
SEL(trans,frag); /* ma trận Chọn */
FREQ(trans,site); /* ma trận Tần suất */
CTR(site,site); /* ma trận Chi phí thông tin */
Output:
FAT(frag,site); /* bảng cấp phát mảnh */
Variable:
WT(frag, site); /* bảng trọng số */
Function:
Benefit(frag,site); /* chi phí tiết kiệm khi loại bỏ mảnh khỏi site */
/* giống thuật toán 1 */
Function:
Cost(frag,site); /* chi phí tăng thêm khi loại bỏ mảnh khỏi site */
/* giống thuật toán 1 */
Function:
MinDelay(frag) ; /* site có độ trễ thấp nhất khi mảnh frag được cấp phát */
Function:
NumFragCopy(frag); /* số bản sao của mảnh trong hệ thống */
Begin
Step 1 /* giống bước 1 thuật toán 1 */
Khởi tạo giải pháp tốt nhất cho giao tác đọc
Step 2 /* Tính giá trị trọng số */
For F
j
in F do
For S
k
in S do
WT(F

j
,S
k
) =

Step 3 /* Kiểm tra xem có nên loại bỏ một mảnh khỏi site */
While (tồn tại phần tử chưa được duyệt qua trong WT) do
1
begin
Gọi WT(F
j
,S
k
) là phần tử chưa được duyệt qua và có trọng số lớn nhất;
if ((FAT(F
j
,S
k
) =1) and (Benefit(F
j
,S
k
) > Cost(F
j
,S
k
)) and (NumFragCopy(F
j
) > 1))
FAT(F

j
,S
k
) = 0;
end
Step 4 /* bước 3 trong thuật toán 1 */
Nếu một mảnh chưa được cấp phát nhưng nó có bị cập nhật bởi một số giao tác, chọn site có độ trễ thấp
nhất để cấp phát mảnh.
End
4. Một số kết quả thử nghiệm
Đầu tiên chúng ta tính các chi phí thông tin của phương án cấp phát tối ưu và 2 phương
án heuristic, sử dụng các công thức trong phần 2.3. Sau đó, chúng ta thẩm định khả năng
phản ánh chi phí thông tin trong thế giới thực của các công thức chi phí, bằng cách thực
hiện một số thí nghiệm.
4.1 Các số liệu kết quả
Trong phần 2 ta đã xác định ba thông số hằng, đó là:
- hằng số chi phí khởi tạo gói dữ liệu C
ini
- kích thước của gói dữ liệu p_size
- chi phí tạo mạch ảo VC
ini
Để phù hợp với môi trường thử nghiệm thực trong phần sau, các giá trị của các hằng số
này được cho như sau:
- C
ini
= 0.032 ms/byte
- p_size = 6250 bytes
- VC
ini
= 65.5676 ms

Ngoài ra, mô hình chúng ta xây dựng dựa trên mạng WAN với băng thông 50Kbps (tức
0.16ms/byte), do đó các phần tử của ma trận chi phí thông tin CTR là bội số của 0.16
Ta sử dụng hai môi trường giả định cho phân tích:
1) 3 giao tác, 3 mảnh, 4 site
1
2) 3 giao tác, 5 mảnh, 4 site
Mặc dù các môi trường giả định là rất đơn giản nhưng số phương án cấp phát của chúng
đã là 3375 trong môi trường 1 và 759375 trong môi trường 2. Thí nghiệm đã dùng 10
trường hợp dữ liệu ngẫu nhiên cho từng môi trường, và chi phí thông tin tương ứng của 2
môi trường như trong bảng 1 và 2:
Bảng 1: 3 giao tác, 3 mảnh, 4 site
Bảng 2: 3 giao tác, 5 mảnh, 4 site
1
Từ số liệu của các bảng, có thể thấy chi phí thông tin của cả 2 thuật toán heuristic gần với
cấp phát tối ưu, nhất là thuật toán 1. Một số trường hợp kết quả của giải thuật heuristic là
cấp phát tối ưu.
Giữa 2 thuật toán thì thuật toán 1 cho kết quả tốt hơn thuật toán 2 trong hầu hết các
trường hợp. Điểm khác biệt chính của 2 thuật toán là phương pháp duyệt để loại bỏ bản
sao khỏi site. Thuật toán 1 kiểm tra theo từng mảnh. Còn thuật toán 2 kiểm tra dựa vào số
lượng dữ liệu mà bản sao mảnh sẽ phải bị cập nhật tại một site, nghĩa là nếu bản sao có
càng nhiều dữ liệu sẽ bị cập nhật thì nó sẽ càng sớm bị loại bỏ khỏi site. Nói chung thuật
toán 1 sẽ cho kết quả xấu hơn thuật toán 2 nếu số lượng dữ liệu cập nhật của các mảnh sẽ
được duyệt sau nhiều hơn nhiều so với các mảnh đã được duyệt. Tuy nhiên điều này
không thường xảy ra, do đó có thể thuật toán 1 tốt hơn thuật toán 2. Để trực quan hơn về
kết quả của hai thuật toán gần với phương án tối ưu như thế nào, hãy xem hai biểu đồ
hình cột sau đây:
Hình 1: 3 giao tác, 3 mảnh, 4 site
1
Hình 2: 3 giao tác, 5 mảnh, 4 site
4.2 Các kết quả thí nghiệm

Do thiếu môi trường WAN nên thí nghiệm sau dùng mạng LAN để mô phỏng. Mạng
LAN gồm có 24 node máy SPARC 10s. Để giảm thời gian, thí nghiệm chỉ chọn một
trường hợp (trong 10 trường hợp trình bày ở phần trên) cho mỗi môi trường để chạy thử.
Thí nghiệm 1 khảo sát trường hợp 4 trong bảng 1, và thí nghiệm 2 khảo sát trường hợp 8
trong bảng 2.
So sánh kết quả tìm được từ các công thức chi phí và kết quả thu được từ thí nghiệm
(xem bảng 3 và 4), có thể thấy chi phí tính được dùng công thức khá gần so với chi phí
thực tế thí nghiệm.
Bảng 3: Thí nghiệm và công thức chi phí, trường hợp 4 bảng 1
1
Bảng 4: Thí nghiệm và công thức chi phí, trường hợp 4 bảng 1
5. Cài đặt
Thuật toán 1 đã được cài đặt thử bằng C# trong bài thu hoạch này. Chương trình đã hiện
thực một số giải thuật nhỏ chưa được đề cập chi tiết trong thuật toán 1, đó là:
- Độ trễ mạng thấp nhất
- MinDelay
Bản chất của hàm tính độ trễ mạng thấp nhất là tìm kiếm site S
B
trong số các site đã được
cấp phát mảnh F
i
, và chi phí truyền CTR từ site S
A
đến site S
B
là thấp nhất. Hàm nhận hai
thông số là site S
A
và mảnh F
i

. Hàm tính độ trễ mạng thấp nhất được dùng trong công
thức tính chi phí Cost.
Thuật toán 1 ở bước 3 có đề cập đến MinDelay là yếu tố dùng để lựa chọn site cấp phát.
Để hiện thực MinDelay, chương trình đã sử dụng lại hàm tính lợi ích Benefit dùng trong
bước 2. Hàm này tính mức độ tiết kiệm nếu loại bỏ một mảnh khỏi một site, nhờ vào việc
tiết kiệm được số lượng giao tác cấp nhật, và trong bước 2, thuật toán sẽ chọn site có
Benefit lớn (cụ thể là lớn hơn Cost). Tuy nhiên, trong bước 3, ta sẽ chọn Benefit nhỏ
nhất, bởi vì Benefit trong quy trình loại bỏ mảnh khỏi site sẽ trở thành Cost trong quy
trình ngược lại, quy trình chọn site để cấp phát mảnh.
Chương trình nhận dữ liệu đầu vào từ một tập tin văn bản inputData.txt đặt cùng thư mục
với chương trình. Tập tin này là một biểu mẫu với chú thích hướng dẫn để người dùng có
thể nhập tất cả thông số và ma trận dữ liệu phục vụ cho thuật toán.
Mẫu tập tin dữ liệu đầu vào:
##############
#Note:
1
#1-Lines begin with # is comment
#2-Parameter value follows equal sign (e.g trans=4)
#3-Start new line before typing in matrix entry. Matrix entry should be
#comma delimited, e.g:
#RM=
#2,3,0,0,0
#2,0,0,1,0
#0,0,3,0,0
#3,0,2,0,0
##############
#number of transactions
trans=4
#number of fragments
frag=5

#number of sites
site=4
#retrieval matrix RM(trans,frag)
RM=
2,3,0,0,0
2,0,0,1,0
0,0,3,0,0
3,0,2,0,0
#update matrix UM(trans,frag)
UM=
0,0,0,1,2
0,3,0,0,0
2,1,0,1,0
0,0,0,0,3
#selectivity matrix SEL(trans,frag)
SEL=
0.1,0.1,0,0.3,0.2
0.1,0.3,0,1,0
2,5,0.1,0.5,0
0.5,0,10,0,4
#frequency matrix FREQ(trans,site)
FREQ=
0,2,3,1
0,3,0,0
2,0,1,0
0,0,4,0
#cost of transmitting unit data from site to site CTR(site,site)
CTR=
0,0.32,0.48,0.16
0.32,0,0.64,0.32

0.48,0.64,0,0.64
0.16,0.32,0.64,0
Ứng với dữ liệu trong tập tin trên, chương trình xuất ra màn hình như sau:
Number of transactions: 4
Number of fragments: 5
Number of sites: 4
Retrieval Matrix RM(trans,frag):
1
F0 F1 F2 F3 F4
T0 2 3 0 0 0
T1 2 0 0 1 0
T2 0 0 3 0 0
T3 3 0 2 0 0
Update Matrix UM(trans,frag):
F0 F1 F2 F3 F4
T0 0 0 0 1 2
T1 0 3 0 0 0
T2 2 1 0 1 0
T3 0 0 0 0 3
Selectivity Matrix SEL(trans,frag):
F0 F1 F2 F3 F4
T0 0.1 0.1 0 0.3 0.2
T1 0.1 0.3 0 1 0
T2 2 5 0.1 0.5 0
T3 0.5 0 10 0 4
Frequency Matrix FREQ(trans,site):
S0 S1 S2 S3
T0 0 2 3 1
T1 0 3 0 0
T2 2 0 1 0

T3 0 0 4 0
Transmission Cost CTR(site,site):
S0 S1 S2 S3
S0 0 0.32 0.48 0.16
S1 0.32 0 0.64 0.32
S2 0.48 0.64 0 0.64
S3 0.16 0.32 0.64 0
Allocating fragments to sites
FAT table after step 1
FAT S0 S1 S2 S3
F0 0 1 1 1
F1 0 1 1 1
F2 1 0 1 0
F3 0 1 0 0
F4 0 0 0 0
FAT table after step 2
FAT S0 S1 S2 S3
F0 0 0 1 0
F1 0 0 0 1
F2 1 0 1 0
F3 0 1 0 0
F4 0 0 0 0
FAT table after step 3
FAT S0 S1 S2 S3
F0 0 0 1 0
F1 0 0 0 1
F2 1 0 1 0
F3 0 1 0 0
F4 0 0 1 0
1

Có thể thấy số lượng mảnh được cấp phát thay đổi qua từng bước. Sau bước 2, một số
mảnh đã bị loại bỏ để giảm chi phí cập nhật cho quá nhiều bản sao. Sau bước 3, mảnh F4
(chỉ có giao tác cập nhật truy xuất mảnh này) đã được cấp phát đến site S2.
6. Kết luận
Bải thu hoạch đã trình bày lại một mô hình cấp phát phân mảnh khá đơn giản, dễ hiểu và
có thể phản ánh được hành vi giao tác trong cơ sở dữ liệu phân bố. Dựa trên mô hình và
thông tin giao tác, hai giải thuật heuristic đã được phát triển để tìm ra phương án cấp phát
cận tối ưu sao cho chi phí thông tin được cắt giảm càng nhiều càng tốt. Các kết quả cho
thấy phương án tìm ra nhờ những giải thuật này là gần với phương án tối ưu. Một số thí
nghiệm khác cũng đã được tiến hành để kiểm tra các công thức chi phí có thể phản ánh
được chi phí thông tin trong thế giới thực. Để kiếm chứng, thuật toán và các công thức đã
được cài đặt và chạy thử bằng ngôn ngữ C#.
Tuy nhiên, mô hình này cũng còn khá nhiều khiếm khuyết như chưa xét đến sự phụ thuộc
lẫn nhau giữa các mảnh. Các thuật toán cũng cần được nghiên cứu kỹ hơn để có thể tìm
ra phương án tối ưu cho bài toán cấp phát.
7. Tài liệu tham khảo
[1] Yin-Fu Huang and Jyh-Her Chen – “Fragment Allocation in Distributed Database
Design” in Journal of Information Science and Engineering 17, 491-506 (2001)
[2] M.Tamer Özsu, Patrick Valduriez – “Principles of Distributed Database Systems”
3
rd
Edition

×