DEADLOCK
NI DUNG:
Mt s điều cn nhc li.
Các s cảnh hưởng của chúng khi đang thực hin 1 giao tác
Quay lui dây chuyn và lch chng quay lui dây chuyn
Kh phc hi và lch kh phc hi
Deadlock
o Định nghĩa
o Phát hin
o Gii pháp khc phc
o Phòng chng
o Ví d
1. Mt s điều cn nhc li:
- Mt h qun tr CSDL phi đảm bo các tính cht sau (ACID):
o Atomicity(All or nothing):
o Consistency:
o Isolation:
o Durability:
2. Ảnh hưởng khi có 1 s c xảy ra khi đang thực hin 1 giao tác.
2.1. Các s c có th xy ra:
Giao tác b hy (abort hay rollback).
H thng ngng hoạt động bt cht.
2.2 Các ảnh hưởng:
Giao tác b hy:
Gi s 2 thao tác thc hin theo lch S sau:
TT
T1 T2
1 R(A)
2 W(A)
3 R(A)
4 W(A)
5 Abort
Xét trường hp 2 giao tác T1 và T2 nhìn thy nhau (giá tr ca Isolation Level là Read
Uncommitted) thì khi T1 b hy thì các thao tác của T2 xem như vô nghĩa T1 b hy t T2
cũng bị hy. Đó là hiện tượng quay lui dây chuyn s được trình bày sau.
H thng ngng hoạt đng bt cht:
Ta xét vic thc hin lịch các thao tác như hình sau:
Khi s c xy ra, ví d như cúp điện, 2 giao tác T4 và T5 vẫn ca thực hin xong các thao
tác ca mình. Như vậy các thay đổi của 2 giao tác này trước thời điểm xy ra s c cần được
phc hi li khi h thng khởi động li.
H QTCS d liu cần1 cơ chế quản lý các giao tác để phc hi li d liệu trong các trường
hp này.
3. Quay lui dây chuyn và lch chng quay lui dây chuyn:
Như trình bày trên, quay lui dây chuyền (Cascading Abort) là tng hp khi 1 giao tác Ti thc hin
đọc và ghi tn 1 đơn v d liệu X đã được đọc và ghi bởi 1 giao tác Tj trước đó, Tj thực hin hy giao
tác sau đó kéo theo Ti bị hy (các thao tác ghi tn Ti là vô nghĩa).
Để tránh tng hợp này, người ta đ ra lch chng quay luiy chuyn(Avoid Cascading Abort
Schedule). Nguyên lý ca lch chng quy lui dây chuyn như sau:
Mt giao tác Tj ch được đọc và ghi trên 1 đơn vị d liệu X, mà trước đó các giao tác thực
hiện thao tác trên X đã hoàn tt (committed).
Ví d: Cho lịch S như sau.
TT
T1 T2
1 R(A)
2 W(A)
3 R(A)
4 W(A)
5 Abort
Nhn xét, lch S tn không phi là lch chng quay lui dây chuyn vì T2 đọc d liu A trong khi T1
chưa hoàn tất giao tác ca mình trên ĐVDL đó.
Để lch S tr thành lch chng quay lui dây chuyn thì S có th phải thay đổi như sau:
TT
T1 T2
1 R(A)
2 W(A)
3 Commit
4 R(A)
5 W(A)
4. Kh phc hi và lch kh phc hi:
Tr li ví d trên, nhưng với lch S có 1 chút thay đi:
TT
T1 T2
1 R(A)
2 W(A)
3 R(A)
4 W(A)
5 Commit
6 Abort
Rõ ràng khi thc hin hy b T1. T2 ph thuc vào T1( T2 đọc và ghi đè giá trị lên A). Tuy nhiên T2 đã
thc hin commit, vic hy b T2 là không th thc hiện được Lch trên không kh phc hi.
Vì vậy người ta đưa ra yêu cầu cho 1 lch để đm bo tính kh phc hi ca nó:
Mt giao tác Tj ch được phép kết thúc giao tác (committed) khi tt c các giao tác khác mà
nó ph thuc đã kết thúc.
5. Mi quan h gia lch kh phc hi và lch chng quay lui dây chuyn:
5.1. Lch chng quay lui dây chuyn kh phc hi?
Đúng.
Chng minh:
5.2. Lch kh phc hi chng quay lui dây chuyn?
Sai.
Chng minh:
6. Deadlock:
6.1. Định nghĩa:
Là tình trng 2 hay nhiều giao tác đang tranh chấp tài nguyên và phi ch các giao tác còn li
hoàn tt, kết qu là không 1 giao tác nào thc hin đưc.