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

Kiểm soát truy xuất đồng thời dựa trên timestamp

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 (406.6 KB, 41 trang )

1
Kiểm soát truy xuất đồng thời
Kiểm soát truy xuất đồng thời
dựa trên timestamp
dựa trên timestamp
Nhóm 6: Nguyễn Hữu Khiêm
Phạm Thanh Tùng
Nguyễn Quang Vũ
Phạm Minh Dũng
22/11/2008
2
Nội dung
Nội dung

Phương pháp timestamp cơ sở

Phương pháp timestamp bảo thủ

Phương pháp timestamp lạc quan

Công nhận dùng timestamp của dữ liệu và
giao tác

Công nhận chỉ dùng timestamp của giao tác

Kết luận

Tài liệu tham khảo
Khiêm
3
Giới thiệu chung


Giới thiệu chung

Một timestamp duy nhất được gán cho
mỗi giao tác (transaction)

Các giao tác được xử lý như là chúng
được thực thi một cách tuần tự theo
timestamp

Chỉ cho phép một giao tác đọc/ghi dữ liệu
x khi dữ liệu x đã được ghi xong bởi một
giao tác cũ hơn, ngược lại giao tác này bị
hủy và khởi động lại
4
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở
(basic timestamp mechanism)
(basic timestamp mechanism)

Phương pháp timestamp cơ sở áp dụng 5
luật:
1. Mỗi giao tác nhận một timestamp khi bắt đầu
2. Mỗi thao tác đọc/ghi của các giao tác có
timestamp là timestamp của giao tác đó
3. Timestamp lớn nhất của các thao tác
đọc/ghi trên dữ liệu x được ghi nhận lại lần
lượt là RTM(x) và WTM(x)
5
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở

4. TS là timestamp của một thao tác đọc trên
dữ liệu x:

Nếu TS<WTM(x): hủy thao tác đọc, khởi động lại
giao tác với timestamp mới

Ngược lại thực hiện thao tác đọc và
RTM(x) = max(RTM(x), TS)
4. TS là timestamp của một thao tác ghi trên
dữ liệu x:

Nếu TS<RTM(x) hay TS<WTM(x): hủy thao tác
ghi, khởi động lại giao tác với timestamp mới

Ngược lại thực hiện thao tác ghi và WTM(x)=TS
6
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở

Các luật 4 và 5 bảo đảm rằng các thao tác
mâu thuẫn được thực thi theo timestamp
tại tất cả các vị trí, do đó thứ tự timestamp
là một thứ tự toàn phần thỏa mãn các điều
kiện của định đề 8.1 và việc thực thi bằng
kỹ thuật này là chính xác
7
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở

Ví dụ:

S1: R
i
(x)W
i
(x)R
j
(x)W
j
(x)
S2: R
i
(y)W
i
(y)R
j
(y)W
j
(y)

Việc thực thi này có thể được chấp nhận nếu
TS(T
i
) < TS(T
j
). Đây là điểm mạnh của kỹ
thuật timestamp

Tuy nhiên nếu TS(T
j
) < TS(T

i
) thì T
j
sẽ bị hủy
và khởi động lại, và số lần khởi động lại lớn
chính là điểm yếu chính của kỹ thuật này
8
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở

Phương pháp timestamp cơ sở sẽ tránh
được tình trạng deadlock vì các giao tác
không bao giờ bị khóa

Các luật cơ bản bên trên là đủ để bảo
đảm tính khả tuần tự của các giao tác, tuy
nhiên chúng cần được tích hợp với sự xác
nhận hai pha để bảo đảm tính nguyên tử
(atomicity)
9
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở

Với kỹ thuật timestamp chúng ta cần dùng
kỹ thuật prewrite (ghi trước) để thay cho
các khóa exclusive nhằm tránh việc một
giao tác đọc/ghi dữ liệu được ghi bởi một
giao tác chưa hoàn thành.

Theo cách này, nếu các thao tác prewrite

của một giao tác đã được chấp nhận (ghi
tạm), thì khi giao tác kết thúc thành công
các thao tác ghi tương ứng sẽ không bị
hủy.
10

Để tích hợp phương pháp timestamp
cơ sở và kỹ thuật prewrite, các luật 4
và 5 được thay thế bởi các luật 4,5 và
6 như sau:
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở
11
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở
4. TS làm timestamp của thao tác prewrite P
i

trên đối tượng dữ liệu x:

Nếu TS<RTM(x) hay TS<WTM(x): hủy thao tác,
khởi động lại giao tác

Ngược lại thao tác prewrite P
i
và timestamp của
nó được ghi tạm
4. TS là timestamp của một thao tác đọc R
i
trên

đối tượng dữ liệu x:

Nếu TS<WTM(x), hủy thao tác

Nếu TS>WTM(x) và !∃P(x) sao cho TS(P)<TS và
P(x) chưa xử lý: thực thi R
i
12
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở
6. Gọi TS là timestamp của một thao tác ghi W
i

trên đối tượng dữ liệu x. Thao tác này không
bao giờ bị hủy, tuy nhiên nó có thể bị ghi
tạm nếu có một thao tác prewrite P(x) với
timestamp TS(P)<TS tương tự như lý do đã
được chỉ ra ở trên cho việc ghi tạm thao tác
đọc. W
i
sẽ được thực hiện và loại khỏi bộ
đệm khi tất cả các thao tác prewrite có
timestamp nhỏ hơn đã được loại khỏi bộ
đệm
13
Phương pháp timestamp cơ sở
Phương pháp timestamp cơ sở

Luật “Bỏ qua các thao tác ghi cũ”:


Luật số 5 của kỹ thuật timestamp cơ sở có thể được
chỉnh sửa lại như sau: nếu timestamp của một thao
tác ghi W
i
(x) nhỏ hơn timestamp ghi WTM(x) của đối
tượng dữ liệu x, thì ta có thể bỏ qua thao tác này,
thay vì hủy thao tác và khởi động lại giao tác

Lưu ý rằng tình huống này chỉ có thể xảy ra nếu giao
tác T
j
không đọc đối tượng dữ liệu x; ngược lại thao
tác ghi W
i
sẽ bị hủy, bởi vì TS(W
i
)<RTM(x)

Tuy nhiên nói chung các giao tác mà ghi lên một
đối tượng dữ liệu thì thường cũng sẽ đọc nó
14
Nội dung
Nội dung

Phương pháp timestamp cơ sở

Phương pháp timestamp bảo thủ

Phương pháp timestamp lạc quan


Công nhận dùng timestamp của dữ liệu và
giao tác

Công nhận chỉ dùng timestamp của giao tác

Kết luận

Tài liệu tham khảo
Tùng
15
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ
(conservative timestamp method)
(conservative timestamp method)

Basic: Không bị hiện tượng deadlock
nhưng số lần khởi động lại của giao tác
nhiều

Conservative: Loại bỏ khởi động lại giao
tác bằng cách trì hoãn các thao tác “trẻ”
(có timestamp lớn hơn) đến khi tất cả các
thao tác “già” hoàn tất
16
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ
Có 3 luật như sau:
1) Mỗi giao tác sẽ được thực hiện tại một vị trí (site) và
chỉ có thể gửi yêu cầu đọc hoặc ghi tới vị trí khác
2) Vị trí i nhận tất cả các yêu cầu đọc/ghi từ các site j

khác theo thứ tự timestamp
3) Giả sử tại vị trí i có ít nhất một bộ đệm đọc và một bộ
đêm ghi để chứa các thao tác từ các vị trí khác và:

Với mỗi thao tác đọc tại vị trí i, nếu có thao tác ghi tạm W mà
TS(R)> TS(W), thì R được hoãn đến khi các thao tác ghi đã
thực thi. Ngược lại R sẽ thực thi.

Với mỗi thao tác ghi W tại i: Nếu có thao tác đọc tạm R mà
TS(W)>TS(R) hoặc có thao tác ghi tạm W’ mà TS(W)>TS(W’),
thì W được hoãn đến khi các thao tác đó thực hiện xong,
ngược lại W được thực hiện.
17
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ
Một số yêu cầu của luật 2:

Hệ thống mạng không làm thay đổi thứ tự
thông báo

Các vị trí có thể gửi các thông báo yêu
cầu theo thứ tự timestamp

19
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ

Tương ứng mỗi vị trí i và vị trí j sẽ có
một hàng đợi Q
ij


Tất các thao tác từ j được đưa vào Q
ij

theo thứ tự timestamp. Và sau đó thực
thi các thao tác từ các hàng đợi theo thứ
tự đã cho
20
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ
Một số trường hợp phát sinh
Một số trường hợp phát sinh

Có vị trí mà không bao giờ gửi một
thao tác nào đến một vị trí khác
(hàng đợi rỗng)

Cải tiến: Tại mỗi vị trí sẽ định kì gửi
một thao tác null thay vì gửi thao tác
thực sự. Thao tác null cũng có thể
được gửi từ các vị trí bị hạn chế
21
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ
Một số trường hợp phát sinh
Một số trường hợp phát sinh

Tuy nhiên, một thao tác có thể phải
đợi “thao tác” trong các hàng đợi
rỗng


Cải tiến:

Xây dựng các lớp giao tác và mỗi lớp là
một hàng đợi

Các lớp giao tác được xây dựng bởi tập
các thao tác đọc và ghi

Nếu tập thao tác đọc và ghi của một
giao tác là tập con của của một lớp thì
giao tác đó thuộc về lớp đó
22
Phương pháp timestamp bảo thủ
Phương pháp timestamp bảo thủ
Một số trường hợp phát sinh
Một số trường hợp phát sinh

Cải tiến:

….

Không cần phải đợi đến khi có ít nhất
một thao tác trong mỗi hàng đợi. Chỉ
cần đợi có ít nhất một thao tác trong
mỗi lớp mà giao tác đó cùng thuộc lớp
đó
 Giảm được thời gian chờ

Xây dựng lớp giao tác là rất khó

23
Nội dung
Nội dung

Phương pháp timestamp cơ sở

Phương pháp timestamp bảo thủ

Phương pháp timestamp lạc quan

Công nhận dùng timestamp của dữ liệu và
giao tác

Công nhận chỉ dùng timestamp của giao tác

Kết luận

Tài liệu tham khảo

24
Phương pháp timestamp lạc quan
Phương pháp timestamp lạc quan

Mỗi giao tác gồm 3 pha:
1. Pha đọc: đọc dữ liệu, tính toán, xác
định dữ liệu mới (phần lớn thời gian
của giao tác)
2. Pha công nhận: kiểm tra khi cập nhật
kết quả thao tác có gây ra mất tính
toàn vẹn (thất bại) hay không (thành

công)
3. Pha ghi: cập nhật dữ liệu mới vào
CSDL nếu pha công nhận thành công,
ngược lại khởi động lại giao tác
25
Phương pháp timestamp lạc quan
Phương pháp timestamp lạc quan

Sự thực hiện các pha của các giao tác
đồng thời có thể xen kẽ nhau

Sự thực hiện các pha của một giao tác
phải theo đúng thứ tự

Tại một thời điểm chỉ thực hiện một pha
công nhận của một giao tác

Hiếm khi có xung đột và hầu hết các giao
tác được công nhận

Giao tác hầu như không bị trễ
26
Nội dung
Nội dung

Phương pháp timestamp cơ sở

Phương pháp timestamp bảo thủ

Phương pháp timestamp lạc quan


Công nhận dùng timestamp của dữ liệu và
giao tác

Công nhận chỉ dùng timestamp của giao tác

Kết luận

Tài liệu tham khảo

×