Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
1,36 MB
Nội dung
ĐẠ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 [...]... 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à... 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:... 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... 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 Cini - kích thước của gói dữ liệu p_size - chi phí tạo mạch ảo VCini Để 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: - Cini = 0.032 ms/byte - p_size = 6250 bytes - VCini = 65.5676 ms Ngoài ra, mô hình chúng... 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. .. 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 Fj in F do if (NumFragCopy(Fj) = 0 and UM(Ti,Fj) > 0) begin Sk = MinDelay(Fj) FAT(Fj,Sk) = 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. .. 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à... Để 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... 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... độ 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 . 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. 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. 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