1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài toán cấp phát trong cơ sở dữ liệu phân tán PTIT

30 910 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- 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 1

Họ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 2

dữ 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 3

Cấ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 6

q2 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 7

Khi 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 9

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

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 10

MontealNew 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 11

Cô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 12

SELECT 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 19

Tươ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 20

TCU2 = [(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 21

Vậ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 23

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 xuất

Trang 24

Xij 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 25

Ma 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 26

Xé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:

Ngày đăng: 07/06/2016, 23:05

🧩 Sản phẩm bạn có thể quan tâm

w