- Xử lý truy vấn là việc thiết kế các thuật toán để phân tích truy vấn và chuyểnchúng thành một dãy các thao tác dữ liệu.- Quản lý thư mục: thư mục là nơi chứa các thông tin về mô tả và
Trang 1Học viện Công nghệ Bưu chính Viễn thông
Khoa Công nghệ thông tin
BÀI TẬP LỚN
Môn: Cơ sở dữ liệu phân tán
Đề tài: Bài toán cấp phát
GV: Phạm Thế QuếSV: Nhóm 4
Lớp: D08CNTT2
Hà Nội, 2011
Trang 2dữ liệu.
Ví dụ ta có một hệ thống xử lý phân tán như hình vẽ Có ba site trên mạng, tại mỗi site
có một hệ cơ sở dữ liệu chứa các mảnh dữ liệu àm việc chứa các mảnh đó thỏa mộtđiều kiện nào đó
Trang 3Cấp phát dữ liệu tùy thuộc vào từng ứng dụng cụ thể, với cùng một tập các mảnh dữliệu nhưng với mỗi ứng dụng khác nhau thì cách cấp phát dữ liệu là khác nhau.
2. Các kiểu cấp phát
Có 3 kiểu cấp phát dữ liệu là: nhân bản hoàn toàn, nhân bản một phần và phân hoạch
Ví dụ ta có 3 mảnh F1, F2, F3
Nhân bản hoàn toàn: toàn bộ các mảnh đều được đặt ở tất cả các vị trí
Nghĩa là ở site1, site2 và site3 đều có cả 3 mảnh F1, F2, F3
Nhân bản một phần: các mảnh có được sao chép thành nhiều bản nhưng không phải tất cả các bản được lưu tại tất cả các vị trí
VD: site1 có F1, F2 site2 có F1, F2 , F3 và ở site3 có F3
Không nhân bản (phân hoạch): không có bất kì một bản sao của bất kì mảnh
dữ liệu nào trên mạng, sự tồn tại của một mảnh dữ liệu trên mạng là duy nhất.VD: site có F1, site2 có F2 và site3 có F3
So sánh giữa các phương pháp nhân bản:
Nhân bản hoàn toàn Nhân bản một phần Phân hoạch
Quản lý thư mục Dễ/ không tồn tại Cùng mức độ khó khăn
Site11
Site21
Site31
Trang 4- Xử lý truy vấn là việc thiết kế các thuật toán để phân tích truy vấn và chuyểnchúng thành một dãy các thao tác dữ liệu.
- Quản lý thư mục: thư mục là nơi chứa các thông tin về mô tả và các vị trí vềcác mục dữ liệu trong cơ sở dữ liệu
- Điều khiển đồng thời: giải quyết việc đồng bộ truy cập vào cơ sở dữ liệu phântán, không chỉ quan tâm đến tính toàn vẹn mà còn giải quyết tính nhất quántrong nhiều bản sao
- Độ tin cậy: tính mất mát dữ liệu và độ chính xác của thông tin
- Tính thực tế: việc áp dụng các phương pháp nhân bản trong thực tế
II.Bài toán cấp phát
1. Bài toán cấp phát
Giả sử có: một tập các mảnh dữ liệu F={F1, F2,…,Fn}
Một tập các vị trí S={S1, S2,…, Sn}
Một tập các ứng dụng Q={q1, q2,….,qn}
Bài toán cấp phát dữ liệu được phát biểu:
“Tìm một phân phối cho tập các mảnh F cho các vị trí S sao cho khi thực hiện các ứng dụng Q là tối ưu”
Vậy như thế nào là tối ưu? Tối ưu chính là việc thỏa mãn:
- Chi phí nhỏ nhất: bao gồm chi phí lưu trữ mảnh Fi tại node Sj Chi phí truy
vấn Fi tại vị trí Sj Chi phí cập nhật Fi tại tất cả các node lưu trữ nó và chi phítrao đổi thông tin
- Hiệu năng : 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 tại mỗi node mạng
2. Phát biểu lại bài toán
Với một lược đồ cấp phát cho trước bài toán trở thành tính hàm tổng chi phí ứngvới lược đồ đó.Ta có:
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ấnqi
Trang 5• Size(Fj) = card(Fj)*length(Fj): kích thước của mảnh Fj (bytes)
Length (Fj): chiều dài của một bộ trong mảnh Fj
Card(Fj): số bộ của mảnh Fj
Thông tin về ứng dụng
• RRij: số lần truy xuất đọc do truy vấn qi thực hiện trên mảnh Fj
• URij: số lần truy xuát cập nhật ghi trên mảnh Fj
o (trong bài toán ví dụ ở trên coi nếu ứng dụng có truy cập vào mảnh thìtần suất truy cập =1)
• Ma trận UM thể hiện sự cập nhật mảnh F của các ứng dụng: là một ma trân 2chiều các phần tử trong ma trận là các giá trị uij nhận các giá trị
Xét cho bài toán ứng dụng ở trên ta được ma trận cập nhật ghi
Trang 6q2 r21 r22 … r2n
Một vecto O gồm các giá trị o(i) mô tả vị trí đưa ra ứng dụng qi
VD: ứng dụng q3 được đưa ra tại site1 ta có o(3)=1
Giả sử với bài toán trên ta có Vecto O(2,3, 1,1)
Chi phí xử lý một đơn vị công việc tại vị trí Sk kí hiệu LPCk
Sm
Thông tin về mạng
Trang 7Khi truyền dữ liệu giữa hai vị trí trên mạng dữ liệu ở dạng khung (Frame) Chiphí truyền dữ liệu cũng được tính theo đơn vị trên một khung Ta kí hiệu gij là chiphí truyền một khung giữa hại vị trí Si và Sj Và fsize() là hàm kích thước tínhtheo byte của một khung dữ liệu.
Ta có ma trận thể hiện chi phí truyền khung dữ liệu giữa các vị trí như sau:
TOC : Tổng chi phí cấp phát dữ liệu
QPCi : Chi phí xử lý truy vấn của ứng dụng qi
STCjk : Chi phí lưu trữ mảnh Fj tại vị trí Sk
Chi phí lưu trữ STC cần xét mảnh Fj tại vị trí Sk
Chi phí xử lý truy vấn QPC trong bài toán cấp phát theo mô hình DAP được chiathành hai thành phần: Chi phí xử lý (PC) và chi phí truyền dữ liệu (TC) Trong
Trang 8đó chi phí xử lý (PC) bao gồm ba thành phần: chi phí truy xuất (AC), chi phí duytrì toàn vẹn (IE) và chi phí điều khiển đồng thời (CC).
2.2.3. Chi phí truyền TC
Chi phí cập nhật của hàm truyền dữ liệu TCU
- Công thức :
cả các bản sao cần cập nhật Số hạng thứ hai là thông báo xác nhận.
Chi phí chỉ đọc của hàm truyền dữ liệu TCR
Trang 9Phương trình này khẳng định rằng trong số các trạm có bản sao của cùng một mảnh, chỉ trạm sinh ra tổng chi phí truyền thấp nhất mới được chọn để thực hiện thao tác này
III. Hướng giải quyết bài toán:
Một công ty có các dự án đặt ở các địa điểm khác nhau, công ty quản lý các thông tin của nhân viên và của dự án bao gồm:
EMP (ENo, EName, Title)
ASG (ENo, PNo, Resp, Dur)
PROJ(PNo, PName, Budget, Loc)
PAY (Title, Sal)
Sal: lương Title: chức vụ Budget: ngân sách cho DA Loc: địa điểm Dur: thời hạn Resp: trách nhiệm
ENo: mã nhân viên EName: tên nhân viên PNo: mã dự án
PROJ
T
LOC
Trang 10MontealNew YorkNew YorkParis
Phân mảnh dữ liệu
PROJ1=(LOC=Monteal)(PROJ)
T
LOCP1 Instrumentation 150000 Monteal
PROJ2=(LOC=NewYork)(PROJ)
T
LOC
P2P3
Dabatase DevelopCAD/
CAM
135000250000
New YorkNew York
PROJ3=(LOC=Paris)(PROJ)
1224610481824483640
EMP
E1E2E3E4E5E6E7E8
J.Doe
M SmithA.leeJ.MmithB.CaseyL.ChuR.DvidJ.Jones
Elect EngSyst AnalMech.EngProgrammerSyst.Anal Elect.Eng Mech.EngSyst Anal
E1E4E7
P1P1P1
ManagerProgrammerEngineer
121836
Trang 11Công ty có các 3 trang web khác nhau và tại mỗi trang web có các ứng dụng khácnhau 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ệuVậ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}
E2 E2E3E5E6
P2P3P2P3P2
AnalystAnalystEngineerManagerManager
246482448
E3E8
P4P4
ConsultantManager
1040
Trang 12SELECT EMP.ENO, EMP.ENAME, EMP.TITLE
FROM EMP, ASG2, PAY
WHERE EMP.ENO=ASG2.ENO AND EMP.TITLE=PAY.TITLE AND PAL>3000 ASG2 ENO ( EMP TITLE (TITLE((PAL>3000)(PAY))))
Q2: Đổi chức danh của nhân viên làm Manager tất cả các dự án thành Analyst
UPDATE ASG1, ASG2, ASG3
SET RESP=” Analyst”
WHERE RESP=”Manager ”
Q3: Lấy danh sách các nhân viên có thời gian làm việc nhiều hơn 2 năm
SELECT EMP.ENO, EMP.ENAME, EMP.TITLE
FROM EMP, ASG1
WHERE EMP.ENO=ASG1.ENO AND DUR>24
SELECT EMP.ENO, EMP.ENAME, EMP.TITLE
FROM EMP, ASG2
WHERE EMP.ENO=ASG2.ENO AND DUR>24
SELECT EMP.ENO, EMP.ENAME, EMP.TITLE
FROM EMP, ASG3
WHERE EMP.ENO=ASG3.ENO AND DUR>24
( EMP ENO σDUR>24 (ASG1)) V (EMP ENO σDUR>24 (ASG2)) V (EMP ENO σDUR>24(ASG3))
Q4: Tăng kinh phí của các dự án có kinh phí <200000 thêm 1000
UPDATE PNO1, PROJ2, PROJ3
SET BUDGET = BUDGET+1000
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 qiXé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à ASG2
Trang 13• Size(Fj) = card(Fj)*length(Fj): kích thước của mảnh Fj (bytes)
Length (Fj): chiều dài của một bộ trong mảnh Fj
Size= 4*20=80(bytes)
Xét cho bài toán trên ta có size của các mảnh như sau:
4 bộ
Trang 15- 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(Fj), chi phí lưu trữ dữliệu USCk :
Trang 16+ 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:
( Thường tính bằng dung lượng)
Tương tự tính toán với cách cấp phát 2 ta tính được chi phí lưu trữ
- Ví dụ: trong bài toán cấp phát đang xét tính theo ma trận 1với các thông tin
Trang 17 AC1 = AC11 + AC12 + AC13
= 8+9+3 = 20 đơn vị truy xuất
Trang 18* Với q2: Tính AC2:
- Xét tại site S1: có cá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
AC2 = AC21 + AC22 + AC23
= 24+6+18 = 48 đơn vị truy xuất
* Với q3: Tính AC3
- Xét tại site S1: có cá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
AC3 = AC31 + AC32 + AC33
= 16+6+9 = 31 đơn vị truy xuất
* Với q4: Tính AC4
- Xét tại site S1: có cá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
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
Trang 19Tương tự tính theo ma trận cấp phát thứ 2 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 là thời gian)
Chi phí duy trì toàn vẹn IE
Chi phí điều khiển đồng thời CC
Trang 20TCU2 = [(1+1+1)*5 + 1*3 + (1+1+1)*0] + [(1+1+1)*4 + 1*9 +(1+1+1)*0] = 18 + 21 = 39
• Số hạng thứ hai là truyền các kết quả từ trạm này đến trạm yêu cầu
Phương trình này khẳng định rằng trong số các trạm có bản sao của cùng một mảnh, chỉ trạm sinh ra tổng chi phí truyền thấp nhất mới được chọn để thực hiện thao tác này
- Ví dụ: Xét bài toán cấp phát trên vởi ma trận cấp phát 1 và các thông tin
Trang 21Vậy : d1 = 4+6*10 = 64+ Tại S2 : d2 = 0
+ Tại S3 : d3 = 9+3*a71 = 9+3*10 = 39
Vậy : e1 =5+4*2 = 13 + Tại S3: e3 = 0
Min1 = 0
- Tại mảnh F7 : + Tại S1: e1 = 5+4*a72
Sel2(F7) = 2Length(F7) = 40 => a72 = 2*40/20 = 4Fsize = 20
Vậy : e1 = 4+6*10 = 64+ Tại S2 : e2 = 3+9*a72 = 3+9*4 = 39+ Tại S3 : e3 = 0
Trang 22 Min2 = 0
- Tại mảnh F8 : + Tại S1: e1 = 5+4*a82
Sel2(F8) = 1Length(F8) = 40 => a82 = 1*40/20 = 2Fsize = 20
Vậy : e1 = 5+4*2 = 13+ Tại S3 : e3 = 0
Vậy: f3 = 4+5*2= 14
Min2 = 0
- Tại mảnh F7 : + Tại S1: f1 = 0
+ Tại S2 : f2 = 6+4*a73 Sel3(F7) = 2
Length(F7) = 40 => a73 = 2*40/20 = 4 Fsize = 20
Length(F8) = 40 => a83= 1*40/20 = 2Fsize = 20
Vậy : f3 = 14
Min3 = 0
Tổng chi phí đọc : TCR 3 = 0+0+0= 0
* Với ứng dụng q4
Trang 23TC = 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 xuất
Trang 24Xij F1 F2 F3 F4 F5 F6 F7 F8
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 là một bài toán khó, có độ phức tạp là NP đầy đủ nên có rất nhiềulời giải cho bài toán này nhưng lại không có lời giải tối ưu nhất, phương pháp em sưutầm đưa ra dưới đây là một trong những phương pháp Heuristic(gọi là phương phápheuristic vì đây là bài toán có nhiều lời giải và ta không kết luận được đâu là lời giảiđúng hay sai mà chỉ có thể kết luận được lời giải nào tối ưu - tối ưu theo khía cạnh nào
đó mà ta quan tâm - hơn mà thôi ) được sử dụng để đưa 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 đó
Trang 25Ma trận này chính là ma trận kết quả của bước 1.
Bước 2: Ta xét đến các yêu cầu cập nhật.
Ta biết rằng bảng cấp phát được khởi tạo ở bước 1 là tốt nhất cho các yêu cầu chỉ đọc
vì nó không chịu bất kỳ tổn thất về chi phí giao tiếp nào Không có mảnh coppy nào làcần thiết hơn nữa vì nó sẽ không những không thu được lợi ích của truy vấn chỉ đọc
mà thậm chí còn làm tăng chi phí giao tiếp cho các yêu cầu cập nhật
Do đó, vấn đề đặt ra trong bước này là làm thế nào để loại bỏ các mảnh copy từ bảngcấp phát ban đầu mà từ đó giá chi phí giao tiếp sẽ được giảm cho tất cả các truy vấn Việc bỏ đi một mảnh copy từ một site sẽ ảnh hưởng lớn đến chi phí giao tiếp của một
số yêu cầu:
- Một truy vấn chỉ đọc địa phương sẽ chịu thiệt hại về giá giao tiếp vì mảnh copyđích đã bị loại bỏ đi ở site cục bộ này Một yêu cầu chỉ đọc từ xa sẽ có thể hoặckhông chịu thêm tổn thất về chi phí giao tiếp, điều này phụ thuộc vào liệu truyvấn có hay không truy cập và mảnh copy đã bị loại bỏ này
- Một yêu cầu cập nhật địa phương không bị ảnh hưởng vì nó sẽ không mất giágiao tiếp nào đến site này để cập nhật mảnh đã bị loại bỏ nữa Còn đối với mộtyêu cầu cập nhật từ xa, vì mảnh copy đã bị loại bỏ nên cũng không bị tốn thêmchi phí giao tiếp nào
Nói ngắn gọn hơn là, khi loại bỏ một mảnh copy từ một site, một yêu cầu chỉ đọc địaphương sẽ chịu tổn thất về chi phí (ta gọi chi phí tổn thất này là Cost), và một câu truyvấn chỉ đọc từ xa thì có thể chịu tổn thất hoặc ko Tuy nhiên một yêu cầu update từ xalại được lợi (ta gọi điều được lợi này là Benefit) vì những bản copy đã bị loại bỏ sẽkhông bị truy cập nữa Bất kể lúc nào, Benefit thu được là lớn hơn Cost phải mất, thì
ta sẽ tiến hành loại bỏ mảnh copy ra khỏi site đó Quá trình loại bỏ này sẽ được tiếptục lặp lại đến khi không có Benefit nào lớn hơn Cost hoặc bản copy hiện tại là duynhất trong mạng
Bước 2 được lặp đi, lặp lại liên tục đến khi tất cả các mảnh được cấp phát ở bước 1 đãđược quét qua
Trang 26Xét ma trận cấp phát ở bước 1, ta thấy các mảnh F2, F3, F4, F5 chỉ có được cấp phát tạimột site trên mạng nên ta không xét đến khả năng có thể loại bỏ những mảnh này.Xét ma trận cập nhật UM:
này
Tại S1: giả sử loại bỏ mảnh F1 tại S1, tức là đặ X11=0
o Cost(chi phí chỉ đọc phải mất): F1(S1) được đọc bởi q1(S2) và q3(S1) => bỏF1(S1) thì q1 và q3 phải đến S2 đọc => q3 tốn thêm chi phí truyền từ S2 về S1:
C = g(1,2) + ((sel3(F1)*length(F1))/fsize)*g(2,1) = 6 + (8*30/20)*4 = 54
o Benefit(chi phí cập nhật được lợi): không có câu truy vấn nào cập cập F1=>không được lợi về chi phí cập nhật
Trang 27 Tại S1: giả sử loại bỏ mảnh F6 tại S1, tức là đặ X16=0
o Cost(chi phí chỉ đọc phải mất): F6(S1) được đọc bởi q2(S3) và q3(S1) => bỏ F6(S1) thì q2 và q3 phải đến S3 đọc => q3 tốn thêm chi phí truyền từ S3 về S1:
C = g(1,3) + ((sel3(F6)*length(F6))/fsize)*g(3,1) = 4 + (1*40/20)*5 = 14
o Benefit(chi phí cập nhật được lợi): q2(S3) cập nhật F6(S1) => bỏ F6(S1) thì q2 không bị mất chi phí cập nhật đến F6 nữa, chi phí được lợi sẽ là:
B = g(3,1) + g(1,3) = 5+4=9
B-C=9-14<0 => không bỏ F6(S1)
Tại S3: giả sử loại bỏ mảnh F6 tại S3, tức là đặ X36=0
o Cost(chi phí chỉ đọc phải mất): F6(S3) được đọc bởi q2(S3) và q3(S1) => bỏ F6(S3) thì q2 và q3 phải đến S1 đọc => q2 tốn thêm chi phí truyền từ S1 về S3:
C = g(3,1) + ((sel2(F1)*length(F1))/fsize)*g(1,3) = 5 + (0*40/20)*4 = 5
o Benefit(chi phí cập nhật được lợi): q2(S3) cập nhật F6(S3) => bỏ F6(S3) thì q2 không được lợi gì về chi phí cập nhật: