Tải bản đầy đủ (.docx) (30 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (461.83 KB, 30 trang )

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


MỤC LỤC

Giới thiệu về cấp phát dữ liệu
1. Cấp phát dữ liệu
Thiết kế hệ cơ sở dữ liệu phân tán bao gồm việc phân mảnh dữ liệu và cấp phát dữ
liệu trên các site. Có hai phương pháp phân mảnh dữ liệu là phân mảnh ngang và phân
mảnh dọc, sau quá trình phân mảnh ta thu được một tập các mảnh dữ liệu và công việc
tiếp theo là đặt các mảnh dữ liệu trên các site như thế nào? Đó chính là việc cấp phát
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 đó
I.


Site21
Site11



Site31

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.
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
2.

Xử lý truy vấn
Quản lý thư mục

Dễ
Dễ/ không tồn tại

Đ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 là việc thiết kế các thuật toán để phân tích truy vấn và chuyển
chú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ân
tá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án

trong 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ế.

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í ứng
với lược đồ đó.Ta có:

Đầu vào:
 Tập mảnh dữ liêu:
F={F1, F2,…,Fn}
 Tập vị trí :
S={S1, S2,…, Sn}
 Tập các ứng dụng:
Q={q1, q2,….,qn}
 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
2.1.


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 2
chiề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
uij

F1


F2

….

Fn

q1

u11

u12



u1n

q2

u21

u22



u2n












qn

un1

un2



unn

Ma trận RM thể hiện sự đọc mảnh F của các ứng dụng: là một ma trận hai
chiều chỉ nhận giá trị O và 1. Giá trị của phần tử rij

Xét cho bài toán ứng dụng ở trên 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 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)
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í lưu trữ trên mạng. Thông tin về vị trí bao gồm:
 Chi phí để lưu trữ dữ liệu tại 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ý một đơn vị công việc tại 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ề vị trí
USCk

LPCk





S1

S2

Sm



Thông tin về mạng


Khi truyền dữ liệu giữa hai vị trí trên mạng dữ liệu ở dạng khung (Frame). Chi
phí truyền dữ liệu cũng được tính theo đơn vị trên một khung. Ta kí hiệu g ij là chi
phí truyền một khung giữa hại vị trí S i và Sj. Và fsize() là hàm kích thước tính
theo 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:



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 ra bài 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 và chi phí
lưu trữ. Được biểu diễn như sau :

Trong đó :
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 chia
thành hai thành phần: Chi phí xử lý (PC) và chi phí truyền dữ 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í duy
trì toàn vẹn (IE) và chi phí điều khiển đồng thời (CC).
Với truy vấn qi bất kỳ ta có:
QPCi = PCi + TCi.
PCi = ACi + IEi + CCi
(1)

TCi = TCUi +TCRi
Phần trình bày phía dưới đây sẽ tính các giá trị trên
2.2.1.
Tính chi phí lưu trữ STC
- Tổng chi phí lưu trữ tại tất cả các vị trí cho tất cả các 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 là số truy nhập của truy vấn q i đến mảnh Fj .Biểu thức (URij +
RRij) tổng số các truy cập đọc và cập nhật với giá thành xử lý là như nhau. Kí hiệu
tổng cho biết tổng các truy nhập cho tất cả các mảnh được q i tham chiếu. Nhân với
LPCk sẽ cho chi phí truy nhập tại vị trí S k . Nhân xjk cho các giá trị chi phí các
trạm lưu các mảnh.
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 :

2.2.3.


Số hạng thứ nhất thông báo cập nhật từ vị trí gốc o(i) của q i đến tất
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
Công thức áp dụng:

Số hạng thứ nhất trong TCR biểu diễn chi phí truyền yêu cầu chỉ đọc đến
những vị trí có bản sao của mảnh cần truy nhập.
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
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)
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 dữ liệu


PAY
TITLE

SAL

Elect. Eng. 4000
0
Syst. Anal.
3400
Mech.Eng
0
Progamme
2700
r
0
2400
0

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


ASG2=ASGPNO(PROJ2)
ENO
PNO
RESP
E2
P2
Analyst
E2
P3

Analyst
E3
P2
Engineer
E5
P3
Manager
E6
P2
Manager

DUR
24
6
48
24
48

ASG3=ASGPNO(PROJ3)
ENO

PNO

RESP

DUR

E3

P4


Consultant

10

E8

P4

Manager

40

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á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, 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
WHERE BUDGET<200000
Để đơn giản ta quy về các kí hiệu tương đương
F={F1, F2, F3, F4, F5, F6, F7, F8}
S={S1, S2, S3}
Q={q1, q2,q3, q4}
Phần tiếp theo chúng ta cùng tìm hiểu các 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à ASG2


Sel1(F1)=8
Sel1(F2)=2
Sel1(F6)=5
-Ứng dụng q3 khi thực hiện truy xuất các mảnh EMP, ASG1, ASG2 ASG3
Sel3(F1)=8
Sel3(F6)=1
Sel3(F7)=2
Sel3(F8)=1
• 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
VD:

TITLE

SAL

Elect. Eng. 4000
0
Syst. Anal.
3400
Mech.Eng 0
Progamme 2700
r
0


Kích thước
1 bộ là 20
bytes

4 bộ

2400
0
 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:
Mảnh
F1
F2
F3
F4
F5
F6
F7
F8
1.2.

length
30
20
25
25
25
40

40
40

Card
8
4
1
2
1
3
5
2

Thông tin về ứng dụng

size
240
80
25
50
25
120
200
80


Ma trận UM




Xét cho bài toán ứng dụng ở trên ta được ma trận cập nhật ghi
UM

F1

F2

F3

F4

F5

F6

F7

F8

q1

0

0

0

0

0


0

0

0

q2

0

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í lưu trữ trên mạng. Thông tin về vị trí bao gồm
Vị trí

USCk

LSCk

S1

2

4

S2

1

3


S3

2

3

1.4.

Thông tin về mạng
S1

S2

S3


S1

0

4

5

S2

4

0


3

S3

5

3

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.

Tính chi phí lưu trữ STC

- Tổng chi phí lưu trữ tại 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 + 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 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ữ
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 bất kỳ ta có:
QPCi = PCi + TCi.
PCi = ACi + IEi + CCi
TCi = TCUi +TCRi
Suy ra :

= 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 là số truy nhập của truy vấn q i đến mảnh Fj .Biểu thức (URij + RRij)
tổng số các truy cập đọc và cập nhật với giá thành xử lý là như nhau. Kí hiệu tổng cho
biết tổng các truy nhập cho tất cả các mảnh được q i tham chiếu. Nhân với LPC k sẽ
cho chi phí truy nhập tại vị trí Sk . Nhân xjk cho các giá trị chi phí các trạm lưu các
mảnh.
- 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
F1

F2

F3

F4

F5

F6

F7

F8


S1

S2
S3

1
1
0

U
M
q1
q2
q3
q4

F1

F2

F3

F4

F5

F6

F7

F8


0
0
0
0

0
0
0
0

0
0
0
1

0
0
0
1

0
0
0
1

0
1
0
0


0
1
0
0

0
1
0
0

F4

F5

F6

F7

RM
q1
q2
q3
q4

0
1
0

1
0

0

F1
1
0
1
0

1
0
0

F2
1
0
0
0

F3
0
0
0
1

1
0
0

0
0

0
1

1
0
1

0
0
0
1

1
1
1

0
1
1
0

Vị trí

USCk

LSCk

S1
S2
S3


2
1
2

4
3
3

1
0
1

1
1
1
0

F8
0
1
1
0

Ta có: trong bài toán này tần xuất đọc và cập nhật là bằng 1 nếu ứng dụng đó
có cập nhật hoặc đọc tại mảnh đó.
* Với q1: Tính AC1
Xét tại site S1: có cá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 tại site S2: có các mảnh F1, F2, F7
AC12 = (0+1)*3 + (0+1)*3 + (0+1)*3
=9
- Xét tại site S3: có cá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 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
= 24
- Xét tại site S2: có các mảnh F1, F2, F7
AC22 = (0+0)*3 + (0+0)*3 + (1+1)*3
=6
- Xét tại site S3: có cá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 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
= 16
- Xét tại site S2: có các mảnh F1, F2, F7
AC32 = (0+1)*3 + (0+0)*3 + (0+1)*3
=6
- Xét tại site S3: có cá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 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
= 24
- Xét tại site S2: có các mảnh F1, F2, F7
AC42 = (0+0)*3 + (0+0)*3 + (0+0)*3
=0
- Xét tại site S3: có cá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ứ 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.

b.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 :

Số hạng thứ nhất thông báo cập nhật từ vị trí gốc o(i) của q i đến tất 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.
-

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

S1
S2
S3
U
M
q1
q2

q3
q4

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

F1

F2

F3

F4

F5

F6

F7

F8

0
0

0
0

0
0
0
0

0
0
0
1

0
0
0
1

0
0
0
1

0
1
0
0

0
1

0
0

0
1
0
0

S1

S2

S3

0
4
5

6
0
3

4
9
0

Ta có: Vecto O(2,3, 1,1)
- Xét câu truy vấn q1
TCU1 = 0
- 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 = 0
- 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 dữ liệu
Tương tự tính theo ma trận 2 ta tính được chi phí
TCU’= TCU’1+ TCU’2+ TCU’3+ TCU’4 = 0+21+0+19= 40 đơn vị truyền
dữ liệu
 Chi phí chỉ đọc của hàm truyền dữ liệu TCR
- Công thức áp dụng:


Số

hạng thứ
nhất trong TCR biểu
diễn chi phí truyền yêu cầu chỉ đọc đến những vị trí có bản sao của mảnh cần
truy nhập.
• 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


-

F1
1
1
0

S1
S2
S3
RM
q1
q2
q3
q4

S1

F1
1
0
1
0

F2
0
1
0

F3

1
0
0

F2
1
0
0
0

F3
0
0
0
1

F4
1
0
0
F4
0
0
0
1

F5
1
0
0

F5
0
0
0
1

F6
1
0
1

F7
1
1
1

F6
0
1
1
0

F7
1
1
1
0

S1


S2

S3

0

6

4

F8
1
0
1
F8
0
1
1
0


S2
S3

4
5

0
3


9
0

= aji

Đặt

và 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) = 8
Length(F1) = 30

=> a11 = 8*30/20 = 12

Fsize = 20
Vậy : d1 = 4+6*12 = 76
+ Tại S2: d2 = 0
 Min1 = 0

- Tại mảnh F2 : + Tại S2: d = 0
 Min2 = 0
- Tại mảnh F7 : + Tại S1: d1 = 4+6*a71
Sel1(F7) = 5
Length(F7) = 40
=> a71 = 5*40/20 = 10
Fsize = 20
Vậy : d1 = 4+6*10 = 64

+ Tại S2 : d2 = 0
+ Tại S3 : d3 = 9+3*a71
= 9+3*10 = 39
 Min3 = 0
Tổng chi phí đọc: TCR1 = 0+0+0= 0
* Với ứng dụng q2
- Tại mảnh F6 : + Tại S1: e1 = 5+4*a62
Sel2(F6) = 1
Length(F6) = 40
=> a62 = 1*40/20 = 2
Fsize = 20
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) = 2
Length(F7) = 40
=> a72 = 2*40/20 = 4
Fsize = 20
Vậy : e1 = 4+6*10 = 64
+ Tại S2 : e2 = 3+9*a72
= 3+9*4 = 39
+ Tại S3 : e3 = 0


 Min2 = 0


- Tại mảnh F8 : + Tại S1: e1 = 5+4*a82
Sel2(F8) = 1
Length(F8) = 40
Fsize = 20
Vậy : e1 = 5+4*2 = 13
+ Tại S3 : e3 = 0

=> a82 = 1*40/20 = 2

 Min3 = 0

Tổng chi phí đọc : TCR2 = 0+0+0= 0
* Với ứng dụng q3
- Tại mảnh F1 : + Tại S1: f1 = 0
+ Tại S2: f2 =6+4*a13
Sel3(F1) = 8
Length(F1) = 30
Fsize = 20
Vậy: f2 = 6+4*12= 54
 Min1 = 0

=> a13 = 8*30/20 = 12

- Tại mảnh F6 : + Tại S1: f1 = 0
+ Tại S3: f3 = 4+5*a63
Sel3(F6) = 1
Length(F6) = 40
=> a72 = 1*40/20 = 2
Fsize = 20
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
Vậy: f2 = 6+4*4= 22
+ Tại S3 : f3 = 4+5*a73
= 4+5*4 = 24
 Min2 = 0

- Tại mảnh F8 : + Tại S1: f1= 0
+ Tại S3 : f3 = 4+5*a83
Sel3(F8) = 1
Length(F8) = 40
=> a83= 1*40/20 = 2
Fsize = 20
Vậy : f3 = 14
 Min3 = 0
Tổng chi phí đọc : TCR3 = 0+0+0= 0
* Với ứng dụng q4


- Tại mảnh F3 : + Tại S1: h1 = 0
 Min1 = 0

- Tại mảnh F4 : + Tại S1: h2 = 0
 Min2 = 0
- Tại mảnh F5 : + Tại S1: h1 = 0

 Min3 = 0
Tổng chi phí đọc :TCR4 = 0+0+0= 0


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 xuất
STC = 1815 đơn vị lưu trữ.
Kết luận: Theo hai kết quả tính được với hai 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ứ 1 (vì 39 < 40)
Ma 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 là một bài toán khó, có độ phức tạp là NP đầy đủ nên có rất nhiều
lờ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ưu
tầm đưa ra dưới đây là một trong những phương pháp Heuristic(gọi là phương pháp
heuristic 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 đó

Ví dụ, trong ứng dụng trên ta có:
 Ma trận chỉ đọ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

Vector O(2,3, 1,1)
 Câu truy vấn q1 thực hiên truy vấn đọc đến các mảnh F 1, F2, F7 mà theo O thì q1

lại được đặt tại S2 nên các mảnh F1, F2, F7 sẽ được cấp phát tại S2. Tương tự với
các câu truy vấn còn lại, ta có ma trận cấp phát sau:


Xij

F1

F2

F3

F4

F5


F6

F7

F8

q3 , q 4

S1

1

0

1

1

1

1

1

1

q1

S2


1

1

0

0

0

0

1

0

q2

S3

0

0

0

0

0


1

1

1

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ảng
cấ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ặc
khô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 truy
vấ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ột
yê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êm
chi 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 địa
phươ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 truy
vấ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ừ xa
lạ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ếp
tụ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à duy
nhấ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.
Ví dụ:


×