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

MÔ HÌNH PHÂN BỔ 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 (249.05 KB, 15 trang )

Nguyễn Thị Phương Thủy - CH1101046
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn thầy Phó Giáo sư Tiến sĩ Đỗ Phúc đã tận tình
hướng dẫn tôi trong suốt quá trình học tập và thực hiện bài thu hoạch.
1
Nguyễn Thị Phương Thủy - CH1101046
 MỤC LỤC
B. PHẦN MỞ ĐẦU 4
C. PHẦN NỘI DUNG 5
I. MÔ HÌNH PHÂN BỔ CƠ SỞ DỮ LIỆU PHÂN TÁN 5
1. Bài toán phân bổ phân mảnh 5
2. Các thông tin yêu cầu 5
3. Công thức tính chi phí 8
II. THUẬT GIẢI HEURISTIC 9
1. Giải thuật Heuristic 9
2. Nhận xét 11
III. CHƯƠNG TRÌNH PHÂN BỔ PHÂN MẢNH 12
D. PHẦN KẾT LUẬN 14
E. PHẦN TÀI LIỆU THAM KHẢO 15
2
Nguyễn Thị Phương Thủy - CH1101046
MỤC LỤC HÌNH
Hình 1: Ma trận RM, UM 6
Hình 2: Ma trận SEL, FREQ 6
Hình 3: Ma trận CTR 7
Hình 4: Chương trình phân bổ phân mảnh của cơ sở dữ liệu phân tán 13
3
Nguyễn Thị Phương Thủy - CH1101046
B. PHẦN MỞ ĐẦU
Việc phân bổ các mảnh trên các site của một mạng WAN là một bài toán
phức tạp. Nó liên quan tới hiệu suất của toàn bộ hệ thống cơ sở dữ liệu phân


mảnh.
Bài thu hoạch này, tôi xin giới thiệu về một mô hình đơn giản và toàn diện
phản ảnh toàn bộ hành vi giao dịch của hệ thống cơ sở dữ liệu phân tán, và dựa
vào mô hình này, trình bày một giải thuật heuristic để tìm ra một phân bổ mảnh
gần như tối ưu mà chi phí giao dịch được giảm gần như tối thiểu.
4
Nguyễn Thị Phương Thủy - CH1101046
C. PHẦN NỘI DUNG
I. MÔ HÌNH PHÂN BỔ CƠ SỞ DỮ LIỆU PHÂN TÁN
1. Bài toán phân bổ phân mảnh
Giả sử mô hình mạng WAN ta có:
 Tập site: S = {S
1
, S
2
, …, S
m
} (biến đếm k)
 Tập giao dịch (transaction): T = {T
1
, T
2
, , T
q
} (biến đếm i)
 Tập phân mảnh (fragment): F = {F
1
, F
2
, , F

n
} (biến đếm j)
Một thiết kế bố trí các phân mảnh F
j
lên các site S
k
là tối ưu sao cho:
- 1. Giảm tối thiểu chi phí: các chi phí bao gồm chi phí lưu trữ mỗi F
j
trên
mỗi site S
k
, chi phí truy vấn và cập nhật F
j
trên S
k
trên toàn bộ hệ thống,
chi phí truyền thông dữ liệu
- 2. Hiệu suất: giảm thiểu thời gian đáp ứng, và tối đa hóa hệ thống
Mô hình được xây dựng trong bài thu hoạch là mô hình phân bổ nhằm giảm
tối thiểu chi phí.
Đối với mạng WAN băng thông hạn chế 50 Kbps, thì chi phí hệ thống như
thời gian truy cập các thiết bị ngoại vi I/O và thời gian xữ lý của CPU không phải
là yếu tố chính được xem xét. Vì vậy, bài toán được đơn giản hóa thành bài toán
phân bổ mảnh để giảm tối thiểu chi phí truyền thông .
2. Các thông tin yêu cầu
a. Thông tin về dữ liệu
Kích thước dữ liệu của các phân mảnh: size(F
j
)

5
Nguyễn Thị Phương Thủy - CH1101046
b. Thông tin về các giao dịch
 Ma trận RM (Retrieval matrix), UM (Update matrix):
Ma trận RM mô tả hành vi truy vấn (read) và ma trận UM mô tả hành vi cập
nhật (update) của giao dịch. Mỗi phần tử r
ij
của ma trận phản ánh tần số truy cập
của phân mảnh F
j
trong giao dịch T
i
Hình 1: Ma trận RM, UM
Theo hình thì, giao dịch T
3
truy vấn mảnh F
3
3 lần và cập nhật mảnh F
1
2 lần,
F
2
1 lần, F
4
1 lần cho một lần thực hiện
 Ma trận SEL (Selectivity matrix):
Khi một giao dịch truy cập một phân mảnh thì không phải toàn bộ phân
mảnh đó được truy vấn hay cập nhật. Ma trận SEL thể hiện tỉ lệ phần trăm của
mảnh khi được giao dịch truy cập
 Ma trận FREQ (Frequency matrix):

Ma trận FREQ thể hiện tần xuất thực hiện của giao dịch T
i
trên S
k
Hình 2: Ma trận SEL, FREQ
6
Nguyễn Thị Phương Thủy - CH1101046
c. Thông tin về site
Thông tin về khả năng lưu trữ và xữ lý của mỗi site. Để đơn giản thì mô hình
sẽ không xem xét vấn đề này
d. Thông tin về mạng
Chi phí truyền thông trên mạng WAN được quyết định bởi 2 yếu tố chính
 C
ini
: chi phí tạo 1 gói dữ liệu có kích thước p_size
 Ma trận CTR (Communication cost matrix): với CTRi là chi phí truyền
một đơn vị dữ liệu từ site S
i
tới site S
j
Theo đó, ta có chi phí truyền tin của m_size dữ liệu từ site S
i
tới site S
j

Để đơn giản hóa mô hình, ta xem ma trận CTR là đối xứng
Hình 3: Ma trận CTR
Trong một mạng WAN, trước khi một giao dịch yêu cầu dữ liệu của phân
mảnh từ xa thì nó phải tạo ra ảo mạch (virtual circuit) để kết nối với site chứa
phân mảnh đó. Trong suốt thời gian giao dịch, ảo mạch được sử dụng để gửi các

yêu cầu và nhận trả lời. Khi kết thúc giao dịch, ảo mạch sẽ được đóng lại.
Chi phí xây dựng ảo mạch là VC
ini
7
Nguyễn Thị Phương Thủy - CH1101046
e. Thông tin phân bổ
Ma trận FAT phản ảnh sự phân bổ của các phân mảnh trên các site, với
1 nếu F
j
∈ S
k
FAT
j,k
=
0
3. Công thức tính chi phí
Dựa vào những thông tin được cung cấp bởi mục 2, ta sẽ tìm ra một phân bổ
tối ưu với tổng chi phí truyền thông là tối thiểu có thể được.
Công thức tính tối thiểu tổng chi phí truyền thông là:
Min(CC
load
+ CC
proc
) (2)
 CC
load
chi phí nạp bản sao của mảnh trước khi giao dịch được xử lý
SI tải các bản sao trên toàn bộ mạng
 CC
proc

chi phí truyền thông cho việc xử lý giao dịch
• TR
i
: chi phí cho hành vi truy vấn của giao dịch
Do một phân mảnh ở nhiều site khác nhau, nên khi một giao dịch T
i
thực
hiện ở site S
k
truy vấn tới phân mảnh F
j
thì sẽ chọn tải F
j
từ một site nào đó trong
hệ thống sao cho chi phí truyền thông là tối thiểu.
8
Nguyễn Thị Phương Thủy - CH1101046
• TU
i
: chi phí cho hành vi cập nhật của giao dịch
Ngược lại với hành vi truy vấn, hành vi cập nhật phân mảnh F
j
của một giao
dịch T
i
phải được cập nhật trên tất cá các site mà có phân mảnh F
j
• VC
ini
: Chi phí xây dựng ảo mạch

II. THUẬT GIẢI HEURISTIC
1. Giải thuật Heuristic
Đầo vào:
RM(trans,frag); /* Retrieval matrix nxq*/
UM(trans,frag); /* Update matrix nxq*/
SEL(trans,frag); /* Selectivity matrix nxq */
FREQ(trans,site); /* Frequency matrix mxq */
CTR(site,site); /* Communication cost matrix mxm*/
size(frag) /* n */
(p_size, Cinit)
Đầu ra:
FAT(frag,site); /* Fragment allocation table nxm */
Function:
Benefit(frag,site); /* Chi phí tiết kiệm được khi bỏ frag từ site */
Begin
return Benefit;
End
Function:
Cost(frag,site); /* Chi phí tăng lên khi bỏ frag từ site */
Begin
For Sk in S do
begin
9
Nguyễn Thị Phương Thủy - CH1101046
n = LeastNetworkDelay(frag,Sk);
if ( n = site )
/* Nếu ở Sk mà frag không được truy vấn từ site thì không
phát sinh chi phí tăng lên nếu ta bỏ frag đó ra khỏi site */
begin
/* chi phí truy vấn frag ở site Sk khi mà frag chưa bỏ ra khỏi site */

n1 = NextLeastNetworkDelay(frag,site,Sk);
/* chi phí truy vấn frag ở site Sk khi mà frag bỏ ra khỏi site */
Cost = Cost + (T2 - T1);
end
end
return Cost;
End
Function:
LeastNetworkDelay(frag,Sk)
/* Trả về Site mà truy vấn frag về cho site Sk cho trước mà tốn chi phí truyền
thông thấp nhất */
/* */
Function:
NextLeastNetworkDelay(frag,site,Sk)
/* Trả về Site mà truy vấn frag về cho site Sk cho trước mà tốn chi phí truyền
thông thấp nhất khi ta đã bỏ frag ra khỏi site */
/* */
Function:
MinDelay(frag) ;
/* Trả về site mà frag sẽ được phân bổ với chi phí cập nhật là thấp nhất */
/* */
Function:
NumFragCopy(frag); /* Trả về số lượng frag trên hệ thống */
/* */
Begin
10
Nguyễn Thị Phương Thủy - CH1101046
Bước 1 /* Khởi tạo FAT mà có chi phí truyền thông tốt nhất cho hành vi truy vấn
của giao dịch*/
For Ti in T, Fj in F, Sk in S do

if (RM(Ti,Fj)*FREQ(Ti,Sk) > 0)
FAT(Fj,Sk) = 1;
Bước 2 /* Kiểm tra phân mảnh nào có thể bỏ ra được khỏi site */
For Fj in F do
While (NumFragCopy(Fj) > 1)
begin
Chọn site Sk mà FAT(Fj,Sk)=1và chi phí giảm được
là tối đa max(S)(Benefit(Fj,Sk)-Cost(Fj,Sk));
if ((Benefit(Fj,Sk) _ Cost(Fj,Sk)) > 0)
FAT(Fj,Sk) = 0
else
break;
/* khi không còn site nào mà bỏ frag ra sẽ giảm được chi phí */
end
Bước 3 /* Nếu phân mảnh chưa được phân bố vì không có thao tác truy vấn,
nhưng có thao tác cập nhật bởi một số giao dịch thì sẽ được phân bổ với chi phí
cập nhật thấp nhất */
For Fj in F do
if (NumFragCopy(Fj) = 0 and UM(Ti,Fj) > 0)
begin
Sk = MinDelay(Fj)
FAT(Fj,Sk) = 1;
end
End
2. Nhận xét
 Độ phức tạp của thuật toán là O(nqm
2
)
 Thuật giải gồm 3 bước:
Bước 1: Khởi tạo ma trận FAT mà không tốn chi phí cho các hành vi truy

vấn của giao dịch, bằng cách cho các mảnh được phân bố trên tất cả những site
mà có giao dịch truy vấn mảnh đó trên site đó. Như vậy ở bất kì site nào khi có
giao dịch truy vấn của phân mảnh nào đó, thì phân mảnh đó cũng đã ở trên site,
do đó chi phí truyền thông cho hành vi truy vấn của giao dịch bằng không nhưng
như vậy sẽ tăng chi phí truyền thông cho hành vi cập nhật của giao dịch.
11
Nguyễn Thị Phương Thủy - CH1101046
Bước 2: Lần lượt loại bỏ các mảnh đã được phân bố trên các site ở ma trận
FAT xây dựng ở bước 1, sao cho giảm được tối đa chi phí phát sinh sau khi loại
bỏ, hoặc chỉ còn duy nhất một phân bổ của mảnh đó trên hệ thống
Khi loại bỏ một mảnh ra khỏi một site thì ta sẽ giảm được chi phí cập nhật
của tất cả các giao dịch ở site khác lên site đó, nhưng lại tăng chi phí truy vấn
nếu có từ các giao dịch mà có truy vấn tới phân mảnh này. Chi phí truy vấn phát
sinh thêm của những giao dịch trên một site tới phân mảnh đang xét tùy thuộc
vào truy vấn phân mảnh đó sẽ thực hiện truy vấn từ site nào (site được chọn là
site có chi phí truyền thông tối thiểu từ site đó đến site đang xét). Nếu là site mà
ta đang xét để loại bỏ phân mảnh ra khỏi thì sẽ phát sinh thêm chi phí, còn ngược
lại thì không phát sinh thêm chi phí.
Bước 3: Nếu có những phân mảnh không được truy vấn mà được cập nhật
bởi giao dịch, thì phân bổ phân mảnh đó trên một site sao cho chi phí truyền
thông của hành vi cập nhật của tất cả các giao dịch (benifit) là ít nhất.
 Ta có thể cải tiến thuật giải ở một số chi tiết như:
• Nếu S
k
= site thì ta cho luôn T1 = 0
• Ta có thế tính đệm trước minsize(T
i
,F
j
)

III. CHƯƠNG TRÌNH PHÂN BỔ PHÂN MẢNH
Chương trình viết bằng Visual Studio 2012 nên cần cài đặt .NET Framework
4.0 để chạy.
Nhập các ma trận RM(TxF), UM(TxF), SEL(TxF), FREQ(TxS), CTR(SxS),
và size(1xF) tương ứng vào các file text trong cùng thư mục của chương trình.
Sau khi nhập xong, nút LOAD để tải lại dữ liệu từ file .
Sau đó nhấn nút TÍNH để chương trình tính ra ma trận FAT(FxS) cần tìm.
12
Nguyễn Thị Phương Thủy - CH1101046
Mặc định Cini = 1, p_size = 1 trong code (có thể thay đổi cho phép nhập liệu
nếu thích)
Hình 4: Chương trình phân bổ phân mảnh của cơ sở dữ liệu phân tán
13
Nguyễn Thị Phương Thủy - CH1101046
D. PHẦN KẾT LUẬN
Bài toán thiết kế phân bổ phân mảnh trong cơ sở dữ liệu phân tán là một bài
toán phức tạp, có rất nhiều cách giải tiệm cận tối ưu như giải thuật heuristic, giải
thuật di truyền
Giải thuật heuristic trên mô hình đơn giản hóa vừa được trình bày gần như
cho ra một kết quả tối ưu. Tuy nhiên, có những khía cạnh ta chưa đề cập tới như
phân mảnh được truy vấn bởi giao dịch chưa xét tới sự ảnh hưởng của thế giới
thực, hiệu quả, độ phức tạp của giải thuật
14
Nguyễn Thị Phương Thủy - CH1101046
E. PHẦN TÀI LIỆU THAM KHẢO
[1] PGS.TS Đỗ Phúc, các bài giảng về Cơ sở dữ liệu phân tán, Thiết kế và tối
ưu
[2] M. Tamer Özsu, Patrick Valduriez, Principles of Distributed Database
Systems, 2011
[3] Yin-Fu Huang, Jyh-Her Chen, Fragment Allocation in Distributed

Database Design, 2001
[4] Wikipedia, Distributed Database,

[5] Andrey Popov Hamburg, Genetic Algorithms For Optimization, 2005
15

×