Tải bản đầy đủ (.ppt) (28 trang)

Yêu cầu và đăng ký từ xa trong hệ phân tán

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 (173.77 KB, 28 trang )


Bài tập : Thuật toán cập nhật thông tin vào cơ sở dữ
liệu trong mô hình Client/Server.
Giáo viên hướng dẫn : PGS.TS. Lê Văn Sơn
Học viên thực hiện : Nguyễn Công Kha
TIỂU LUẬN MÔN HỌC
HỆ TIN HỌC PHÂN TÁN
ĐẠI HỌC ĐÀ NẴNG
Lý thuyết: Yêu cầu và đăng ký từ xa trong hệ phân tán.
Đề tài

Nội dung
Chương I Yêu cầu và đăng ký từ xa trong hệ phân tán
I. Yêu cầu từ xa
II. Đăng ký từ xa
Chương II. Thuật toán về quá trình cập nhật thông tin
vào csdl trong mô hình client/server
I. Cơ sở dữ liệu phân tán trong mô hình client/server
II. Giao tác
III. Giới thiệu vấn đề
VI. Giải thuật cập nhật dữ liệu
V. Kết luận

Yêu cầu và đăng ký từ xa trong hệ phân tán
Giả sử có một khách hàng ở thành phố A muốn biết
thông tin về giá cả của một mặt hàng tại thành phố B ở
xa và thể hiện một yêu cầu nào đó qua một truy vấn.
Để đáp ứng được yêu cầu này, hệ thống phải có khả
năng thực hiện hàng loạt các thao tác xác định.
1. Trước hết, hệ phải có khả năng nhận biết thông tin
cần thiết.


I. Yêu cầu từ xa
I.1. Khái quát vấn đề

Yêu cầu và đăng ký từ xa trong hệ phân tán
2. Sau khi đã trỏ đúng vào địa chỉ chứa thông tin, hệ
phải có khả năng tiếp nhận và ghi lại các yêu cầu chỉ
dẫn.
3. Biên dịch các yêu cầu này thành dạng lệnh có thể thực
hiện được để có thể truy tìm thông tin.
4. Thực hiện các công việc mang tính chất cục bộ của hệ
thống cục bộ (kiểm tra quyền truy cập, thống kê,…).
5. Nếu tìm được thông tin theo yêu cầu thì gửi nó cho hệ
thống yêu cầu.
I. Yêu cầu từ xa

Yêu cầu và đăng ký từ xa trong hệ phân tán
I.2. Giải thuật tổng quát
Hệ thống A
phatyeucau(B,yc)
nhanlai(ketqua)
Hệ thống B
Lặp lại
Nhanyeucau(s,nh)
Nếu (hợp thức) thì
Bắt đầu
tracuucsdl
phatketqua(s,kq)
Kết thúc
Nếu không
guitbao(s,thong bao)

Cho đến khi đúng

Yêu cầu và đăng ký từ xa trong hệ phân tán
Giả sử có khách hàng từ A muốn hợp đồng mua hàng
hoá H tại B và đăng ký phương tiện để chuyên chở đến
C theo yêu cầu càng sớm càng tốt và thực hiện trong
một khoảng thời gian xác định.
II. Đăng ký từ xa
II.1. Khái quát vấn đề

Yêu cầu và đăng ký từ xa trong hệ phân tán
Hình I.1 Đăng ký từ xa
C
Chứa
bảng
phương
tiện vận
chuyển
Chứa bảng hàng hóa
CSDL
CSDL
CSDL CSDL
A
B

Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2. Giải thuật tổng quát
Tại A
t:=ngay_dau_tien
Ok:=False

Chừng nào (t<=Ngay_cuoi_cung) và (Not Ok) thực hiện
Bắt dầu
Dang_ky_hang_hoa(AB,t) {Đăng ký sơ bộ}
Nếu (thanh_cong) thì
Bắt đầu
Dang_ky_cho_hang(C,t) {Đăng ký chuyên chở}
Ok:=True
Kết thúc
Nếu không huy_dang_ky(AB,t)
t:=sau(t)
Kết thúc

Yêu cầu và đăng ký từ xa trong hệ phân tán
Đoạn chương trình trên cho thấy rằng sau khi nhận
được thông tin về trạng thái hàng hoá tại A và phương
tiện vận tải tại C chương trình sẽ lần lượt thực hiện các
lệnh sau:
1. Đăng ký sơ bộ mua hàng tại A trong ngày t.
2. Nếu việc đăng ký đó thành công thì đăng ký tiếp
phương tiện vận tải tại C.
3. Lặp lại cho đến khi hết thời hạn cho phép.
II.2. Giải thuật tổng quát

Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2. Giải thuật cải tiến
de_nghi(B,DS(hh,t),danhsach(pt,t)) {B cung cấp hàng hoá và các
phương tiện cho phép}
tra_loi(bang(hh1,pt1,t))
t:=ngay_dau_tien
Ok:=False

Chừng nào (t<=Ngay_cuoi_cung) và (Not Ok) thực hiện
Bắt dầu
Dang_ky_hang_hoa(AB,hh1,t)
Nếu (thanh_cong) thì
Bắt đầu
Dang_ky_cho_hang(C,hh,t) {Đăng ký chuyên chở}
Ok:=True
Kết thúc
Nếu không huy_dang_ky(AB,hh1,t)
t:=sau(t)
Kết thúc

Yêu cầu và đăng ký từ xa trong hệ phân tán
Cơ chế then cài
then_cai(B)
…………
mo_then_cai(B)
then_cai(B), then_cai(A), then_cai(A), then_cai(B)

Yêu cầu và đăng ký từ xa trong hệ phân tán
II.2. Giải thuật cải tiến
Tại A
then_cai(hh, B) và mo_then_cai(hh, B)
Tại B
then_cai(hd, A)
Bắt đầu
dang_ky_hang_hoa(AB, hh1, t)
Nếu (Thanh_cong) thì
Bắt đầu
dang_ky_cho_hang(C, hh, t) {Đăng ký chuyên chở}

Ok:=true
Kết thúc
Nếu không t:=sau(t)
Kết thúc
mo_then_cai(hd, A)

Yêu cầu và đăng ký từ xa trong hệ phân tán
Điểm chung nhất của các giải pháp này là:
1. Phát hiện xung đột trong hệ.
2. Loại bỏ ra khỏi quá trình thực hiện các chương
trình phát sinh xung đột.
3. Cho phép tái lập lại việc thực hiện các chương
trình bị loại bỏ do xung đột.
4. Đề phòng trường hợp một yêu cầu nào đó phải chờ
vô thời hạn mà không được đáp ứng.
II.3. Kết luận

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Cơ sở dữ liệu phân tán là một hệ thống gồm các
trạm, mỗi trạm bảo trì một hệ thống cơ sở dữ liệu cục bộ.
Mỗi trạm có thể xử lý các giao tác cục bộ, truy nhập
các dữ liệu trên trạm ấy.
Hơn nữa, trạm có thể khai thác các giao tác tổng thể,
truy nhập dữ liệu trên vài trạm.
I.1. Cơ sở dữ liệu phân tán

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Cơ sở dữ liệu phân tán trong mô hình Client/Server là

một hệ thống bao gồm các server và các client.
Database Server là hệ quản trị cơ sở dữ liệu phân tán,
lưu trữ dữ liệu và xử lý yêu cầu từ client.
Client là những chương trình ứng dụng yêu cầu truy
xuất thông tin từ server.
I.2. Cơ sở dữ liệu trong mô hình Client/Server

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Giao tác là một đơn vị nguyên tử của sự truy xuất
CSDL bao gồm một tập các thao tác đọc, ghi cùng với
các bước tính toán trên CSDL, giao tác hoặc là thực
hiện đầy đủ tất cả thao tác của nó hoặc không thực hiện
gì cả.
Giao tác luôn chuyển CSDL từ trạng thái tương
thích này đến trạng thái tương thích khác.
II. Giao tác
II.1. Khái niệm về giao tác

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu

Tính nguyên tử

Tính bền vững

Tính tuần tự

Tính tách biệt
II.2. Một số tính chất của giao tác


VI.1. Sơ đồ giải thuật cập nhật dữ liệu
Hình II.2 Sơ đồ thuật toán cập nhật dữ liệu
S
S

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Mục tiêu của các phương pháp đánh nhãn thời gian
là các giao tác được sắp xếp theo một thứ tự tổng thể
theo thời gian.
Trong việc thiết lập thứ tự này, bộ quản lý các giao
tác gán cho mỗi giao tác Ti một nhãn thời gian TS(Ti)
duy nhất tại thời điểm nó khởi tạo.
IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Một nhãn thời gian có các thuộc tính:
1. TS(Ti) là định danh duy nhất của Ti
2. Với 2 giao tác A và B bất kỳ, nếu A xảy ra trước B
thì TS(A)<TS(B).
Một trong số các phương pháp đánh nhãn thời gian
là sử dụng một bộ đếm đơn điệu tổng thể.
IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Tại một trạm đơn. Quan hệ xảy ra trước ký hiệu ->
có thể được tổng quát hóa trong môi trường phân tán

với các luật như sau:
1. Nếu A và B là 2 giao tác ở cùng một trạm và A
xảy ra trước B thì A->B
2. Nếu giao tác A có gửi 1 thông điệp và giao tác B có
nhận cùng thông điệp thì A ->B.
3. Nếu A ->B và B -> C thì A -> C.
IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
Cơ chế nhãn thời gian cơ bản:
1. Mỗi giao tác sẽ nhận được một nhãn thời gian khi
nó được khởi động ở trạm ban đầu của nó
2. Mỗi thao tác đọc hoặc ghi của một giao tác yêu
cầu sẽ có nhãn thời gian của giao tác đó.
3. Với phần tử dữ liệu x, giá trị nhãn thời gian lớn
nhất của thao tác đọc và nhãn thời gian lớn nhất của
thao tác ghi sẽ được ghi lại. Chúng được ký hiệu là
RTM(x) và WTM(x).
IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian

Thuật toán cập nhật thông tin vào
cơ sở dữ liệu
4. Gọi TS là nhãn thời gian của thao tác đọc trên
phần tử dữ liệu x, nếu TS<RTM(x), thao tác đọc sẽ hủy
bỏ và giao tác tương ứng sẽ được khởi động lại với giá
trị nhãn thời gian mới, ngược lại thao tác đọc sẽ được
thực hiện và RTM(x) sẽ được gán max(RTM(x),TS).
5. Gọi TS là nhãn thời gian của thao tác ghi trên
phần tử dữ liệu x, nếu TS<WTM(x) hoặc TS<RTM(x)

thì thao tác ghi sẽ bị hủy bỏ và giao tác tương ứng sẽ
được khởi động lại, ngược lại thao tác ghi sẽ được thực
hiện và WTM(x) sẽ được gán TS.
IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian

Với cơ chế nhãn thời gian, thay vì dùng khóa loại
trừ nhau người ta dùng thao tác pre_write.
IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
Thao tác pre_write
begin
T
i
cố gắng pre_write lên khoản mục dữ liệu x
If x đã được đọc và ghi bởi giao tác mới hơn có nghĩa là
(TS(T
i
)<TS(read(x)))) or (TS(T
J
)<TS(write(x)))
then bỏ qua T
i
và khởi động lại T
i
else
Chấp nhận pre_write: vào bộ đệm cùng với TS(T
i
)
end if
end


IV.2. Giải thuật cập nhật dữ liệu đánh dấu nhãn thời gian
begin
T
i
cố gắng cập nhật (ghi) lên khoản mục dữ liệu x
If có một cập nhật chưa được giải quyết trên x bởi giao tác cũ
hơn T
i
có nghĩa là TS(T
j
)<TS(T
i
)
Then
T
i
đợi cho đến khi T
j
chuyển giao hay khởi động lại
else T
i
chuyển giao cập nhật và thiết lập TS(write(x)) = TS(T
i
)
end if
end
Thao tác ghi dựa trên cơ sở nhãn thời gian.

×