Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
443,75 KB
File đính kèm
Bai toan cap phat.rar
(1 MB)
Nội dung
Học viện Công nghệ Bưu Viễn thông Khoa Công nghệ thông tin BÀI TẬP LỚN Môn: Cơ sở liệu phân tán Đề tài: Bài toán cấp phát GV: Phạm Thế Quế SV: Nhóm Lớp: D08CNTT2 Hà Nội, 2011 MỤC LỤC Giới thiệu cấp phát liệu Cấp phát liệu Thiết kế hệ sở liệu phân tán bao gồm việc phân mảnh liệu cấp phát liệu site Có hai phương pháp phân mảnh liệu phân mảnh ngang phân mảnh dọc, sau trình phân mảnh ta thu tập mảnh liệu công việc đặt mảnh liệu site nào? Đó việc cấp phát liệu Ví dụ ta có hệ thống xử lý phân tán hình vẽ Có ba site mạng, site có hệ sở liệu chứa mảnh liệu àm việc chứa mảnh thỏa điều kiện I Site21 Site11 Site31 Cấp phát liệu tùy thuộc vào ứng dụng cụ thể, với tập mảnh liệu với ứng dụng khác cách cấp phát liệu khác Các kiểu cấp phát Có kiểu cấp phát liệu là: nhân hoàn toàn, nhân phần phân hoạch Ví dụ ta có mảnh F1, F2, F3 Nhân hoàn toàn: toàn mảnh đặt tất vị trí Nghĩa site1, site2 site3 có mảnh F1, F2, F3 Nhân phần: mảnh có chép thành nhiều tất lưu tất vị trí VD: site1 có F1, F2 site2 có F1, F2 , F3 site3 có F3 Không nhân (phân hoạch): mảnh liệu mạng, tồn mảnh liệu mạng VD: site có F1, site2 có F2 site3 có F3 So sánh phương pháp nhân bản: Nhân hoàn toàn Nhân phần Phân hoạch Xử lý truy vấn Quản lý thư mục Dễ Dễ/ không tồn Điều khiển đồng thời Vừa phải Độ tin cậy Rất cao Tính thực tế Có thể áp dụng Cùng mức độ khó khăn Cùng mức độ khó khăn Khó cao Thực tế Dễ Thấp Có thẻ áp dụng - - - - II Xử lý truy vấn việc thiết kế thuật toán để phân tích truy vấn chuyển chúng thành dãy thao tác liệu Quản lý thư mục: thư mục nơi chứa thông tin mô tả vị trí mục liệu sở liệu Điều khiển đồng thời: giải việc đồng truy cập vào sở liệu phân tán, không quan tâm đến tính toàn vẹn mà giải tính quán nhiều Độ tin cậy: tính mát liệu độ xác thông tin Tính thực tế: việc áp dụng phương pháp nhân thực tế Bài toán cấp phát Bài toán cấp phát Giả sử có: tập mảnh liệu F={F1, F2,…,Fn} Một tập vị trí S={S1, S2,…, Sn} Một tập ứng dụng Q={q1, q2,….,qn} Bài toán cấp phát liệu phát biểu: “Tìm phân phối cho tập mảnh F cho vị trí S cho thực ứng dụng Q tối ưu” Vậy tối ưu? Tối ưu việc thỏa mãn: Chi phí nhỏ nhất: bao gồm chi phí lưu trữ mảnh Fi node Sj Chi phí truy vấn Fi vị trí Sj Chi phí cập nhật Fi tất node lưu trữ chi phí trao đổi thông tin Hiệu : Duy trì hiệu năng, làm giảm thời gian đáp ứng, tăng tối đa lưu lượng hệ thống node mạng Phát biểu lại toán Với lược đồ cấp phát cho trước toán trở thành tính hàm tổng chi phí ứng với lược đồ đó.Ta có: Đầu vào: Tập mảnh liêu: F={F1, F2,…,Fn} Tập vị trí : S={S1, S2,…, Sn} Tập ứng dụng: Q={q1, q2,….,qn} Thông tin sở liệu: Thông tin sở liệu cho toán cấp phát bao gồm: • Seli(Fj) : số lượng mảnh Fj cần truy xuất để xử lý câu truy vấn qi 2.1 Size(Fj) = card(Fj)*length(Fj): kích thước mảnh Fj (bytes) Length (Fj): chiều dài mảnh Fj Card(Fj): số mảnh Fj Thông tin ứng dụng • RRij: số lần truy xuất đọc truy vấn qi thực mảnh Fj • • • URij: số lần truy xuát cập nhật ghi mảnh Fj o (trong toán ví dụ coi ứng dụng có truy cập vào mảnh tần suất truy cập =1) Ma trận UM thể cập nhật mảnh F ứng dụng: ma trân chiều phần tử ma trận giá trị uij nhận giá trị Xét cho toán ứng dụng ta ma trận cập nhật ghi uij F1 F2 … Fn q1 u11 u12 … u1n q2 u21 u22 … u2n … … … … … qn un1 un2 … unn Ma trận RM thể đọc mảnh F ứng dụng: ma trận hai chiều nhận giá trị O Giá trị phần tử rij Xét cho toán ứng dụng ta có ma trận cập nhật đọc rij F1 F2 … Fn q1 r11 r12 … r1n q2 r21 r22 … r2n … … … … … qn rn1 rn2 … rnn Một vecto O gồm giá trị o(i) mô tả vị trí đưa ứng dụng qi VD: ứng dụng q3 đưa site1 ta có o(3)=1 Giả sử với toán ta có Vecto O(2,3, 1,1) Thông tin vị trí Trước toán cần cấp phát cần phải biết khả lưu trữ xử lý vị trí lưu trữ mạng Thông tin vị trí bao gồm: Chi phí để lưu trữ liệu vị trí Sk kí hiệu USCk USCml F1 F2 … Fl S1 USC11 USC12 … USC1l S2 USC21 USC22 … USC2l … … … … … Sm USCm1 USCm2 USCm1 Chi phí xử lý đơn vị công việc vị trí Sk kí hiệu LPCk LPCml S1 S2 … Sm F1 LPC11 LPC21 … LPCm1 F2 LPC12 LPC22 … LPCm2 … … … … Fl LPC1l LPC2l … LPCm1 Ma trận thông tin vị trí USCk LPCk … … S1 S2 … Sm Thông tin mạng Khi truyền liệu hai vị trí mạng liệu dạng khung (Frame) Chi phí truyền liệu tính theo đơn vị khung Ta kí hiệu g ij chi phí truyền khung hại vị trí S i Sj Và fsize() hàm kích thước tính theo byte khung liệu Ta có ma trận thể chi phí truyền khung liệu vị trí sau: gij S1 S2 … Sm S1 g11 g12 … g1m S2 g21 g22 … g2m … … … … … Sm gm1 gm2 … gm1 Ma trận cấp phát xij S1 S2 … Sm 2.2 F1 x11 x21 F2 x12 x22 xm1 xm2 … Fn x1n x2n xmn Đầu toán: Hàm tổng chi phí Tổng chi phí cấp phát bao gồm hai thành phần: Chi phí xử lý truy vấn chi phí lưu trữ Được biểu diễn sau : Trong : TOC : Tổng chi phí cấp phát liệu QPCi : Chi phí xử lý truy vấn ứng dụng qi STCjk : Chi phí lưu trữ mảnh Fj vị trí Sk Chi phí lưu trữ STC cần xét mảnh Fj vị trí Sk Chi phí xử lý truy vấn QPC toán cấp phát theo mô hình DAP chia thành hai thành phần: Chi phí xử lý (PC) chi phí truyền liệu (TC) Trong chi phí xử lý (PC) bao gồm ba thành phần: chi phí truy xuất (AC), chi phí trì toàn vẹn (IE) chi phí điều khiển đồng thời (CC) Với truy vấn qi ta có: QPCi = PCi + TCi PCi = ACi + IEi + CCi (1) TCi = TCUi +TCRi Phần trình bày phía tính giá trị 2.2.1 Tính chi phí lưu trữ STC - Tổng chi phí lưu trữ tất vị trí cho tất mảnh STCjk = USCk * Size(Fj) * xjk 2.2.2 Chi phí truy xuất AC Công thức tính: Hai số hạng đầu số truy nhập truy vấn q i đến mảnh Fj Biểu thức (URij + RRij) tổng số truy cập đọc cập nhật với giá thành xử lý Kí hiệu tổng cho biết tổng truy nhập cho tất mảnh q i tham chiếu Nhân với LPCk cho chi phí truy nhập vị trí S k Nhân xjk cho giá trị chi phí trạm lưu mảnh Chi phí truyền TC Chi phí cập nhật hàm truyền liệu TCU Công thức : 2.2.3 Số hạng thứ thông báo cập nhật từ vị trí gốc o(i) q i đến tất cần cập nhật Số hạng thứ hai thông báo xác nhận • • Chi phí đọc hàm truyền liệu TCR Công thức áp dụng: Số hạng thứ TCR biểu diễn chi phí truyền yêu cầu đọc đến vị trí có mảnh cần truy nhập Số hạng thứ hai truyền kết từ trạm đến trạm yêu cầu Phương trình khẳng định số trạm có mảnh, trạm sinh tổng chi phí truyền thấp chọn để thực thao tác Hướng giải toán: Một công ty có dự án đặt địa điểm khác nhau, công ty quản lý thông tin nhân viên dự án bao gồm: EMP (ENo, EName, Title) ASG (ENo, PNo, Resp, Dur) PROJ(PNo, PName, Budget, Loc) PAY (Title, Sal) III Sal: lương Loc: địa điểm ENo: mã nhân viên Title: chức vụ Dur: thời hạn EName: tên nhân viên Các bảng liệu PAY TITLE SAL Elect Eng 4000 Syst Anal 3400 Mech.Eng Progamme 2700 r 2400 PROJ PNO PNME BUDGE T LOC Budget: ngân sách cho DA Resp: trách nhiệm PNo: mã dự án P1 P2 P3 P4 ASG ENO E1 E2 E2 E3 E3 E4 E5 E6 E7 E8 Instrumentation Dabatase Develop CAD/ CAM Maintenance 150000 135000 250000 310000 EMP ENO PNO P1 P2 P3 P4 P2 P1 P3 P2 P1 P4 Monteal New York New York Paris ENAME TITLE RESPE1 J.Doe DUR Elect Eng Manager 12 Syst Anal E2 M Smith Analyst E3 A.lee 24 Mech.Eng Analyst E4 J.Mmith Programmer Consultant 10 E5 B.Casey Syst.Anal Engineer E6 L.Chu 48 Elect.Eng Programmer E7 R.Dvid18 Mech.Eng Manager E8 J.Jones24 Syst Anal Phân mảnh liệu Manager 48 Engineer 36 PROJ1= (LOC=Monteal)(PROJ) Manager 40BUDGE LOC PNO PNAME P1 T Instrumentation 150000 Monteal PROJ2=(LOC=NewYork)(PROJ) PNO PNAME BUDGE T LOC P2 Dabatase 135000 New York P3 DevelopCAD/ CAM 250000 New York BUDGE T LOC PROJ3=(LOC=Paris)(PROJ) PNO PNAME P4 Maintenance 310000 ASG1=ASG PNO(PROJ1) Paris ENO PNO RESP DUR E1 E4 E7 P1 P1 P1 Manager Programmer Engineer 12 18 36 + Tại S1: STC1 = STC11 + STC31 + STC41 + STC51 + STC61 + STC71 + STC81 STC1 = 2*240 + 2*25 + 2*50 + 2*25 + 2*120 + 2*200 + 2*80= 1480 dv + Tại S2: STC2 = STC12 + STC22 + STC72 STC2 = 1*240 + 1*80 + 1*200 = 520 dv + Tại S3 : STC3 = STC63 + STC73 + STC83 STC3 = 2*120 + 2*200 + 2*80 = 800 dv Vậy chi phí lưu trữ : STC = STC1 + STC2 + STC3 = 1480 + 520 + 800 = 2800 đơn vị lưu trữ ( Thường tính dung lượng) Tương tự tính toán với cách cấp phát ta tính chi phí lưu trữ STC’= STCj1 + STCj2 + STCj3 = 930+545+340 = 1815 (dv) a Tính chi phí truy vấn QPC b.1 Chi phí truy vấn Với truy vấn qi ta có: QPCi = PCi + TCi PCi = ACi + IEi + CCi TCi = TCUi +TCRi Suy : = ACi + IEi + CCi +TCUi + TCRi b.2 Chi phí xử lý Chi phí truy xuất AC - Công thức tính: Hai số hạng đầu số truy nhập truy vấn q i đến mảnh Fj Biểu thức (URij + RRij) tổng số truy cập đọc cập nhật với giá thành xử lý Kí hiệu tổng cho biết tổng truy nhập cho tất mảnh q i tham chiếu Nhân với LPC k cho chi phí truy nhập vị trí Sk Nhân xjk cho giá trị chi phí trạm lưu mảnh - Ví dụ: toán cấp phát xét tính theo ma trận 1với thông tin F1 F2 F3 F4 F5 F6 F7 F8 S1 S2 S3 1 U M q1 q2 q3 q4 F1 F2 F3 F4 F5 F6 F7 F8 0 0 0 0 0 0 0 1 0 0 0 F4 F5 F6 F7 RM q1 q2 q3 q4 1 0 F1 1 0 F2 0 F3 0 1 0 0 1 0 1 1 1 Vị trí USCk LSCk S1 S2 S3 2 3 1 1 F8 1 Ta có: toán tần xuất đọc cập nhật ứng dụng có cập nhật đọc mảnh * Với q1: Tính AC1 Xét site S1: có mảnh F1, F3, F4, F5, F6, F7, F8 AC11 = (0+1)*4 + (0+0)*4 + (0+0)*4 + (0+0)*4 + (0+0)*4+ (0+1)*4 + (0+0)*4 =8 - Xét site S2: có mảnh F1, F2, F7 AC12 = (0+1)*3 + (0+1)*3 + (0+1)*3 =9 - Xét site S3: có mảnh F6, F7, F8 AC13 = (0+0)*3 + (0+1)*3 + (0+0)*3 =3 AC1 = AC11 + AC12 + AC13 = 8+9+3 = 20 đơn vị truy xuất - * Với q2: Tính AC2: Xét site S1: có mảnh F1, F3, F4, F5, F6, F7, F8 AC21 = (0+0)*4 + (0+0)*4 + (0+0)*4 + (0+0)*4 + (1+1)*4+ (1+1)*4 + (1+1)*4 = 24 - Xét site S2: có mảnh F1, F2, F7 AC22 = (0+0)*3 + (0+0)*3 + (1+1)*3 =6 - Xét site S3: có mảnh F6, F7, F8 AC23 = (1+1)*3 + (1+1)*3 + (1+1)*3 = 18 AC2 = AC21 + AC22 + AC23 = 24+6+18 = 48 đơn vị truy xuất - * Với q3: Tính AC3 Xét site S1: có mảnh F1, F3, F4, F5, F6, F7, F8 AC31 = (0+1)*4 + (0+0)*4 + (0+0)*4 + (0+0)*4 + (0+1)*4+ (0+1)*4 + (0+1)*4 = 16 - Xét site S2: có mảnh F1, F2, F7 AC32 = (0+1)*3 + (0+0)*3 + (0+1)*3 =6 - Xét site S3: có mảnh F6, F7, F8 AC33 = (0+1)*3 + (0+1)*3 + (0+1)*3 =9 AC3 = AC31 + AC32 + AC33 - = 16+6+9 = 31 đơn vị truy xuất * Với q4: Tính AC4 Xét site S1: có mảnh F1, F3, F4, F5, F6, F7, F8 AC41 = (0+0)*4 + (1+1)*4 + (1+1)*4 + (1+1)*4 + (0+0)*4+ (0+0)*4 + (0+0)*4 = 24 - Xét site S2: có mảnh F1, F2, F7 AC42 = (0+0)*3 + (0+0)*3 + (0+0)*3 =0 - Xét site S3: có mảnh F6, F7, F8 AC33 = (0+0)*3 + (0+0)*3 + (0+0)*3 =0 AC4 = AC41 + AC42 + AC43 = 24+0+0 = 24 đơn vị truy xuất - Vậy tổng AC = AC1 + AC2 + AC3 + AC4 = 20+48+31+24= 123 đơn vị truy xuất Tương tự tính theo ma trận cấp phát thứ ta có AC’= AC’1 + AC’2 + AC’3 + AC’4 = 14+26+20+20=80 đơn vị truy xuất ( đơn vị truy xuất thường thời gian) Chi phí trì toàn vẹn IE Chi phí điều khiển đồng thời CC b.3 Chi phí truyền TC Chi phí cập nhật hàm truyền liệu TCU - Công thức : Số hạng thứ thông báo cập nhật từ vị trí gốc o(i) q i đến tất cần cập nhật Số hạng thứ hai thông báo xác nhận - Ví dụ: toán cấp phát xét tính theo ma trận 1với thông tin F1 1 S1 S2 S3 U M q1 q2 q3 q4 S1 S2 S3 F2 F3 0 F4 0 F5 0 F6 1 F7 1 F8 1 F1 F2 F3 F4 F5 F6 F7 F8 0 0 0 0 0 0 0 1 0 0 0 S1 S2 S3 Ta có: Vecto O(2,3, 1,1) - Xét câu truy vấn q1 TCU1 = - Xét câu truy vấn q2 TCU2 = [(1+1+1)*5 + 1*3 + (1+1+1)*0] + [(1+1+1)*4 + 1*9 + (1+1+1)*0] = 18 + 21 = 39 - Xét câu truy vấn q3 TCU3 = - Xét câu truy vấn q4 TCU4 = [(1+1+1)*0 + 0*6 + 0*4] + [(1+1+1)*0 + 0*4 + 0*5] =0 Vậy TCU = TCU1+ TCU2+ TCU3+ TCU4 = 0+39+0+0 = 39 đơn vị truyền liệu Tương tự tính theo ma trận ta tính chi phí TCU’= TCU’1+ TCU’2+ TCU’3+ TCU’4 = 0+21+0+19= 40 đơn vị truyền liệu Chi phí đọc hàm truyền liệu TCR - Công thức áp dụng: • Số hạng thứ TCR biểu diễn chi phí truyền yêu cầu đọc đến vị trí có mảnh cần truy nhập • Số hạng thứ hai truyền kết từ trạm đến trạm yêu cầu Phương trình khẳng định số trạm có mảnh, trạm sinh tổng chi phí truyền thấp chọn để thực thao tác Ví dụ: Xét toán cấp phát vởi ma trận cấp phát thông tin - F1 1 S1 S2 S3 RM q1 q2 q3 q4 S1 F1 1 F2 F3 0 F2 0 F3 0 F4 0 F4 0 F5 0 F5 0 F6 1 F7 1 F6 1 F7 1 S1 S2 S3 F8 1 F8 1 S2 S3 = aji Đặt Vecto O(2,3, 1,1) * Với ứng dụng q1 : - Tại mảnh F1 : + Tại S1: d1 = 4+6*a11 Sel1(F1) = Length(F1) = 30 => a11 = 8*30/20 = 12 Fsize = 20 Vậy : d1 = 4+6*12 = 76 + Tại S2: d2 = Min1 = - Tại mảnh F2 : + Tại S2: d = Min2 = - Tại mảnh F7 : + Tại S1: d1 = 4+6*a71 Sel1(F7) = Length(F7) = 40 => a71 = 5*40/20 = 10 Fsize = 20 Vậy : d1 = 4+6*10 = 64 + Tại S2 : d2 = + Tại S3 : d3 = 9+3*a71 = 9+3*10 = 39 Min3 = Tổng chi phí đọc: TCR1 = 0+0+0= * Với ứng dụng q2 - Tại mảnh F6 : + Tại S1: e1 = 5+4*a62 Sel2(F6) = Length(F6) = 40 => a62 = 1*40/20 = Fsize = 20 Vậy : e1 =5+4*2 = 13 + Tại S3: e3 = Min1 = - Tại mảnh F7 : + Tại S1: e1 = 5+4*a72 Sel2(F7) = Length(F7) = 40 => a72 = 2*40/20 = Fsize = 20 Vậy : e1 = 4+6*10 = 64 + Tại S2 : e2 = 3+9*a72 = 3+9*4 = 39 + Tại S3 : e3 = Min2 = - Tại mảnh F8 : + Tại S1: e1 = 5+4*a82 Sel2(F8) = Length(F8) = 40 Fsize = 20 Vậy : e1 = 5+4*2 = 13 + Tại S3 : e3 = => a82 = 1*40/20 = Min3 = Tổng chi phí đọc : TCR2 = 0+0+0= * Với ứng dụng q3 - Tại mảnh F1 : + Tại S1: f1 = + Tại S2: f2 =6+4*a13 Sel3(F1) = Length(F1) = 30 Fsize = 20 Vậy: f2 = 6+4*12= 54 Min1 = => a13 = 8*30/20 = 12 - Tại mảnh F6 : + Tại S1: f1 = + Tại S3: f3 = 4+5*a63 Sel3(F6) = Length(F6) = 40 => a72 = 1*40/20 = Fsize = 20 Vậy: f3 = 4+5*2= 14 Min2 = - Tại mảnh F7 : + Tại S1: f1 = + Tại S2 : f2 = 6+4*a73 Sel3(F7) = Length(F7) = 40 => a73 = 2*40/20 = Fsize = 20 Vậy: f2 = 6+4*4= 22 + Tại S3 : f3 = 4+5*a73 = 4+5*4 = 24 Min2 = - Tại mảnh F8 : + Tại S1: f1= + Tại S3 : f3 = 4+5*a83 Sel3(F8) = Length(F8) = 40 => a83= 1*40/20 = Fsize = 20 Vậy : f3 = 14 Min3 = Tổng chi phí đọc : TCR3 = 0+0+0= * Với ứng dụng q4 - Tại mảnh F3 : + Tại S1: h1 = Min1 = - Tại mảnh F4 : + Tại S1: h2 = Min2 = - Tại mảnh F5 : + Tại S1: h1 = Min3 = Tổng chi phí đọc :TCR4 = 0+0+0= Vậy : Tổng chi phí đọc hàm truyền liệu tất truy vấn : TCR = TCR1 + TCR2 + TCR3 + TCR4 = TCR’ = TCR’1 + TCR’2 + TCR’3 + TCR’4 = Vậy theo ma trận cấp phát TC = TCU + TCR = 39 đơn vị truyền liệu PC = AC + IE + CC = 123 + … Đơn vị truy xuất STC = 2800 đơn vị lưu trữ • Theo ma trận cấp phát TC = TCU + TCR = 40 đơn vị truyền liệu PC = AC + IE + CC = 80 + … Đơn vị truy xuất STC = 1815 đơn vị lưu trữ Kết luận: Theo hai kết tính với hai ma trận cấp phát khác ta có cách chọn mô hình cấp phát: Nếu ứng dụng quan tâm tới việc lưu trữ liệu ta xét theo chi phí lưu trữ chọn ma trận cấp phát thứ (vì 1815 < 2800) Ma trận cấp phát là: • Xij S1 S2 S3 F1 1 F2 F3 0 F4 0 F5 F6 1 F7 0 F8 Nếu ứng dụng quan tâm tới việc truyền liệu ta xét theo chi phí truyền liệu chọn ma trận cấp phát thứ (vì 39 < 40) Ma trận cấp phát là: S1 S2 S3 F1 1 F2 F3 0 F4 0 F5 0 F6 1 F7 1 F8 1 Nếu ứng dụng quan tâm tới việc truy xuất liệu ta xét theo chi phí truy xuất liệu chọn ma trận cấp phát thứ (vì 80 < 123) Ma trận cấp phát Xij S1 S2 S3 F1 1 F2 F3 0 F4 0 F5 F6 1 F7 0 F8 Xây dựng lược đồ cấp phát phương pháp Heuristic Bài toán cấp phát toán khó, có độ phức tạp NP đầy đủ nên có nhiều lời giải cho toán lại lời giải tối ưu nhất, phương pháp em sưu tầm đưa phương pháp Heuristic(gọi phương pháp heuristic toán có nhiều lời giải ta không kết luận đâu lời giải hay sai mà kết luận lời giải tối ưu - tối ưu theo khía cạnh mà ta quan tâm - mà ) sử dụng để đưa lược đồ cấp phát tối ưu Thuật toán có bước tất cả: Bước 1: Tạo ma trận khởi tạo ma trận tối ưu cho truy vấn đọc, cách: - Dựa vào ma trận đọc RM vector O (gồm giá trị o(i) mô tả vị trí đưa câu truy vấn qi) - Để ma trận tối ưu cho cấp phát đọc ta phải cấp phát mảnh đích mà truy vấn đọc đến site đưa truy vấn Ví dụ, ứng dụng ta có: Ma trận đọc RM F1 F2 F3 F4 F5 F6 F7 F8 q1 1 0 0 q2 0 0 1 q3 0 0 1 q4 0 1 0 Vector O(2,3, 1,1) Câu truy vấn q1 thực hiên truy vấn đọc đến mảnh F 1, F2, F7 mà theo O q1 lại đặt S2 nên mảnh F1, F2, F7 cấp phát S2 Tương tự với câu truy vấn lại, ta có ma trận cấp phát sau: Xij F1 F2 F3 F4 F5 F6 F7 F8 q3 , q S1 1 1 1 q1 S2 1 0 0 q2 S3 0 0 1 Ma trận ma trận kết bước Bước 2: Ta xét đến yêu cầu cập nhật Ta biết bảng cấp phát khởi tạo bước tốt cho yêu cầu đọc không chịu tổn thất chi phí giao tiếp Không có mảnh coppy cần thiết không thu lợi ích truy vấn đọc mà chí làm tăng chi phí giao tiếp cho yêu cầu cập nhật Do đó, vấn đề đặt bước làm để loại bỏ mảnh copy từ bảng cấp phát ban đầu mà từ giá chi phí giao tiếp giảm cho tất truy vấn Việc bỏ mảnh copy từ site ảnh hưởng lớn đến chi phí giao tiếp số yêu cầu: - - Một truy vấn đọc địa phương chịu thiệt hại giá giao tiếp mảnh copy đích bị loại bỏ site cục Một yêu cầu đọc từ xa không chịu thêm tổn thất chi phí giao tiếp, điều phụ thuộc vào liệu truy vấn có hay không truy cập mảnh copy bị loại bỏ Một yêu cầu cập nhật địa phương không bị ảnh hưởng không giá giao tiếp đến site để cập nhật mảnh bị loại bỏ Còn yêu cầu cập nhật từ xa, mảnh copy bị loại bỏ nên không bị tốn thêm chi phí giao tiếp Nói ngắn gọn là, loại bỏ mảnh copy từ site, yêu cầu đọc địa phương chịu tổn thất chi phí (ta gọi chi phí tổn thất Cost), câu truy vấn đọc từ xa chịu tổn thất ko Tuy nhiên yêu cầu update từ xa lại lợi (ta gọi điều lợi Benefit) copy bị loại bỏ không bị truy cập Bất kể lúc nào, Benefit thu lớn Cost phải mất, ta tiến hành loại bỏ mảnh copy khỏi site Quá trình loại bỏ tiếp tục lặp lại đến Benefit lớn Cost copy mạng Bước lặp đi, lặp lại liên tục đến tất mảnh cấp phát bước quét qua Ví dụ: Xét ma trận cấp phát bước 1, ta thấy mảnh F 2, F3, F4, F5 có cấp phát site mạng nên ta không xét đến khả loại bỏ mảnh Xét ma trận cập nhật UM: • UM F1 F2 F3 F4 F5 F6 F7 F8 q1 0 0 0 0 q2 0 0 1 q3 0 0 0 0 q4 0 1 0 Xét mảnh F1: F1 cấp phát đến site S1, S2 nên ta xét hai site Tại S1: giả sử loại bỏ mảnh F1 S1, tức đặ X11=0 o Cost(chi phí đọc phải mất): F 1(S1) đọc q1(S2) q3(S1) => bỏ F1(S1) q1 q3 phải đến S2 đọc => q3 tốn thêm chi phí truyền từ S2 S1: C = g(1,2) + ((sel3(F1)*length(F1))/fsize)*g(2,1) = + (8*30/20)*4 = 54 o Benefit(chi phí cập nhật lợi): câu truy vấn cập cập F 1=> không lợi chi phí cập nhật B=0 B-C=0-54 không bỏ F1(S1) Tại S2: o Cost(chi phí đọc phải mất): F1(S2) đọc q1(S2) q3(S1) => bỏ F1(S2) q1 q3 phải đến S1 đọc => q1 tốn thêm chi phí truyền từ S1 S2: C = g(2,1) + ((sel3(F1)*length(F1))/fsize)*g(1,2) = + (8*30/20)*6 = 76 Benefit(chi phí cập nhật lợi): câu truy vấn cập cập F1=> không lợi chi phí cập nhật o B=0 B-C=0-76 không bỏ F1(S2) • Xét mảnh F6: Tại S1: giả sử loại bỏ mảnh F6 S1, tức đặ X16=0 Cost(chi phí đọc phải mất): F6(S1) đọc q2(S3) q3(S1) => bỏ F6(S1) q2 q3 phải đến S3 đọc => q3 tốn thêm chi phí truyền từ S3 S1: o C = g(1,3) + ((sel3(F6)*length(F6))/fsize)*g(3,1) = + (1*40/20)*5 = 14 o Benefit(chi phí cập nhật lợi): q2(S3) cập nhật F6(S1) => bỏ F6(S1) q2 không bị chi phí cập nhật đến F6 nữa, chi phí lợi là: B = g(3,1) + g(1,3) = 5+4=9 B-C=9-14 không bỏ F6(S1) Tại S3: giả sử loại bỏ mảnh F6 S3, tức đặ X36=0 Cost(chi phí đọc phải mất): F6(S3) đọc q2(S3) q3(S1) => bỏ F6(S3) q2 q3 phải đến S1 đọc => q2 tốn thêm chi phí truyền từ S1 S3: o C = g(3,1) + ((sel2(F1)*length(F1))/fsize)*g(1,3) = + (0*40/20)*4 = o Benefit(chi phí cập nhật lợi): q2(S3) cập nhật F6(S3) => bỏ F6(S3) q2 không lợi chi phí cập nhật: B=0 B-C=0-5 không bỏ F6(S3) • Xét mảnh F7: Tại S1: giả sử loại bỏ mảnh F7 S1, tức đặ X17=0 Cost(chi phí đọc phải mất): F7(S1) đọc q1(S2), q2(S3) q3(S1) => bỏ F7(S1) q1, q2 q3 phải đến S2 S3 đọc => q3 tốn thêm chi phí truyền từ S3 S1 từ S2 S1: o C1 = g(1,3) + ((sel3(F7)*length(F7))/fsize)*g(3,1) = + (2*40/20)*5 = 24 C2 = g(1,2) + ((sel3(F7)*length(F7))/fsize)*g(2,1) = + (2*40/20)*4 = 22 C = min(C1, C2) = 22 o Benefit(chi phí cập nhật lợi): F7(S1) cập nhật q2(S3) =>nếu bỏ F7(S1) , chi phí lợi là: B = g(3,1) + g(1,3) = 5+4=9 B-C=9-22 không bỏ F7(S1) Tại S2: giả sử loại bỏ mảnh F7 S2, tức đặ X27=0 Cost(chi phí đọc phải mất): F7(S2) đọc q1(S2), q2(S3) q3(S1) => bỏ F7(S2) q1, q2 q3 phải đến S2 S3 đọc => q1 tốn thêm chi phí truyền từ S3 S2 từ S1 S2: o C1 = g(2,3) + ((sel1(F7)*length(F7))/fsize)*g(3,2) = + (5*40/20)*3 = 39 C2 = g(2,1) + ((sel1(F7)*length(F7))/fsize)*g(1,2) = + (5*40/20)*6 = 64 C = min(C1, C2) = 39 o Benefit(chi phí cập nhật lợi): F7(S2) cập nhật q2(S3) =>nếu bỏ F7(S2) , chi phí lợi là: B = g(3,2) + g(2,3) = 3+9=11 B-C=11-39 không bỏ F7(S2) Tại S3: giả sử loại bỏ mảnh F7 S3, tức đặ X37=0 Cost(chi phí đọc phải mất): F7(S3) đọc q1(S2), q2(S3) q3(S1) => bỏ F7(S3) q1, q2 q3 phải đến S1 S2 đọc => q2 tốn thêm chi phí truyền từ S1 S3 từ S2 S3: o C1 = g(3,1) + ((sel2(F7)*length(F7))/fsize)*g(1,3) = + (0*40/20)*4 = C2 = g(3,2) + ((sel2(F7)*length(F7))/fsize)*g(2,3) = + (0*40/20)*9 = C = min(C1, C2) = o Benefit(chi phí cập nhật lợi): F7(S3) cập nhật q2(S3) =>nếu bỏ F7(S3) không lợi chi phí cập nhật B=0 B-C=0-3 không bỏ F7(S3) • Xét mảnh F8: Tại S1: giả sử loại bỏ mảnh F8 S1, tức đặ X18=0 Cost(chi phí đọc phải mất): F8(S1) đọc q2(S3) q3(S1) => bỏ F8(S1) q2 q3 phải đến S3 đọc => q3 tốn thêm chi phí truyền từ S3 S1: o C1 = g(1,3) + ((sel3(F8)*length(F8))/fsize)*g(3,1) = + (1*40/20)*5 = 14 o Benefit(chi phí cập nhật lợi): F8(S1) cập nhật q2(S3) =>nếu bỏ F8(S1) , chi phí lợi là: B = g(3,1) + g(1,3) = 5+4=9 B-C=9-14 không bỏ F8(S1) Tại S3: giả sử loại bỏ mảnh F8 S3, tức đặ X38=0 o Benefit(chi phí cập nhật lợi): F8(S) cập nhật q2(S3) =>nếu bỏ F8(S1) không lợi từ chi phí cập nhật =>B=0 không bỏ F8(S3) Ma trận cấp phát kết sau bước 2: Xij F1 F2 F3 F4 F5 F6 F7 F8 S1 1 1 1 S2 1 0 0 S3 0 0 1 Bước 3: Đây bước cuối Ở bước mảnh chưa cấp phát đến site mà mảnh lại cập nhật số truy vấn, tìm site ứng cử dựa vào ma trận cập nhật UM Trong site ứng cử này, ta chọn site mà có chi phí giao tiếp nhỏ để cấp phát cho mảnh Trong ma trận kết sau bước hai ta thấy không tồn mảnh thỏa mãn điều kiện nên ma trận cấp phát cuối ma trận Thuật toán có độ phức tạp lớn: Độ phức tạp thuật toán O(nm2q), đó: n=|F|: số phân mảnh m=|S|: số site q=|T|: số truy vấn Nên việc áp dụng thuật toán khó khăn hệ phân tán lớn, có nhiều mảnh, nhiều câu truy vấn nhiều site khác phân tán mạng [...]... thông tin và công thức để tính toán chi phí tìm ra một mô hình cấp phát tốt nhất có thể IV Hướng giải quyết bài toán 1 Đầu vào bài toán 1.1 Thông tin về cơ sở dữ liệu: Thông tin về cơ sở dữ liệu cho bài toán cấp phát bao gồm: • Seli(Fj) : số lượng các bộ của mảnh Fj cần được truy xuất để xử lý câu truy vấn qi Xét cho bài toán trên: -Ứng dụng q1 khi thực hiện truy xuất dữ liệu trên 3 mảnh EMP, PAY và... ma trận cấp phát khác nhau ta có cách chọn mô hình cấp phát: 1 Nếu ứng dụng quan tâm tới việc lưu trữ dữ liệu ta xét theo chi phí lưu trữ và chọn ma trận cấp phát thứ 2 (vì 1815 < 2800) Ma trận cấp phát là: • Xij S1 S2 S3 F1 1 1 0 F2 0 1 0 F3 1 0 0 F4 0 0 1 F5 0 1 0 F6 0 1 1 F7 1 0 0 F8 0 1 0 2 Nếu ứng dụng quan tâm tới việc truyền dữ liệu ta xét theo chi phí truyền dữ liệu và chọn ma trận cấp phát thứ... trận cấp phát là: S1 S2 S3 F1 1 1 0 F2 0 1 0 F3 1 0 0 F4 1 0 0 F5 1 0 0 F6 1 0 1 F7 1 1 1 F8 1 0 1 3 Nếu ứng dụng quan tâm tới việc truy xuất dữ liệu ta xét theo chi phí truy xuất dữ liệu và chọn ma trận cấp phát thứ 2 (vì 80 < 123) Ma trận cấp phát Xij S1 S2 S3 F1 1 1 0 F2 0 1 0 F3 1 0 0 F4 0 0 1 F5 0 1 0 F6 0 1 1 F7 1 0 0 F8 0 1 0 3 Xây dựng lược đồ cấp phát bằng phương pháp Heuristic Bài toán cấp phát. .. 0 Mô hình cấp phát Ma trận 1 F1 1 1 0 S1 S2 S3 F2 0 1 0 F3 1 0 0 F4 1 0 0 F5 1 0 0 F6 1 0 1 F7 1 1 1 F8 1 0 1 Ma trận 2 Xij S1 S2 S3 F1 1 1 0 F2 0 1 0 F3 1 0 0 F4 0 0 1 F5 0 1 0 F6 0 1 1 F7 1 0 0 F8 0 1 0 Mục đích của chúng ta sẽ sử dụng các công thức tính chi phí để so sánh giữ hai cách cấp phát tìm ra cách cấp phát có chi phí nhỏ hơn nó sẽ được chọn cho việc cấp phát dữ liệu 2 Đầu ra bài toán 2.1... để cấp phát cho mảnh đó Trong ma trận kết quả sau bước hai ta thấy không tồn tại một mảnh nào thỏa mãn điều kiện trên nên ma trận cấp phát cuối cùng chính là ma trận này Thuật toán này có độ phức tạp lớn: Độ phức tạp của thuật toán này là O(nm2q), trong đó: n=|F|: là số các phân mảnh m=|S|: số các site q=|T|: số các truy vấn Nên việc áp dụng thuật toán là khó khăn nhất là đối với những hệ phân tán. .. Vậy : Tổng chi phí đọc của hàm truyền dữ liệu đối với tất cả các truy vấn là : TCR = TCR1 + TCR2 + TCR3 + TCR4 = 0 TCR’ = TCR’1 + TCR’2 + TCR’3 + TCR’4 = 0 Vậy theo ma trận cấp phát 1 TC = TCU + TCR = 39 đơn vị truyền dữ liệu PC = AC + IE + CC = 123 + … Đơn vị truy xuất STC = 2800 đơn vị lưu trữ • Theo ma trận cấp phát 2 TC = TCU + TCR = 40 đơn vị truyền dữ liệu PC = AC + IE + CC = 80 + … Đơn vị truy... tất cả các vị trí cho tất cả các mảnh STCjk = USCk * Size(Fj) * xjk - Ví dụ : bài toán cấp phát trên : Dựa vào ma trận cấp phát và ma trận kích thước mảnh Size(F j), chi phí lưu trữ dữ liệu USCk : S1 S2 S3 Size F1 F2 F3 F4 F5 F6 F7 F8 1 1 0 240 0 1 0 80 1 0 0 25 1 0 0 50 1 0 0 25 1 0 1 120 1 1 1 200 1 0 1 80 Theo cách cấp phát 1 Ta có : US C 2 1 2 + Tại S1: STC1 = STC11 + STC31 + STC41 + STC51 + STC61... có các ứng dụng khác nhau Chúng ta sẽ xét việc cần những thông tin gì để có thể tiến hành cấp phát dữ liệu Vậy với bài toán được đưa ra ở trên ta có tập mảnh dữ liệu là: F={EMP, PAY, PROJ1, PROJ2, PROJ3, ASG1, ASG2, ASG3} Tập các vị trí S={S1, S2, S3} Tập các ứng dụng: Q1: Lấy ra thông tin các nhân viên làm việc trong các dự án ở NewYok có lương > 3000 SELECT EMP.ENO, EMP.ENAME, EMP.TITLE FROM EMP, ASG2,... ra một lược đồ cấp phát là tối ưu nhất Thuật toán có 3 bước tất cả: Bước 1: Tạo ma trận khởi tạo là ma trận tối ưu cho truy vấn chỉ đọc, bằng cách: - Dựa vào ma trận chỉ đọc RM và vector O (gồm các giá trị o(i) mô tả vị trí đưa ra câu truy vấn qi) - Để ma trận là tối ưu cho cấp phát chỉ đọc thì ta phải cấp phát các mảnh đích mà nó truy vấn đọc đến tại site đưa ra truy vấn đó Ví dụ, trong ứng dụng trên... 0 0 0 0 1 1 1 q3 0 0 0 0 0 0 0 0 q4 0 0 1 1 1 0 0 0 Ma trận RM Xét cho bài toán ứng dụng ở trên ta có ma trận cập nhật đọc RM F1 F2 F3 F4 F5 F6 F7 F8 q1 1 1 0 0 0 0 1 0 q2 0 0 0 0 0 1 1 1 q3 1 0 0 0 0 1 1 1 q4 0 0 1 1 1 0 0 0 Giả sử với bài toán trên ta có Vecto O(2,3, 1,1) 1.3 Thông tin về vị trí Trước mỗi bài toán cần cấp phát chúng ta cần phải biết khả năng lưu trữ và xử lý của mỗi một vị trí