Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
271 KB
Nội dung
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 là Để đơ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 [...]... (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... 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... Ta có thế tính đệm trước minsize(Ti,Fj) 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... 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... 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)... đó 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... 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... 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(nqm2) 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 . 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. 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. 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