![]() 39
transaksi
tidak
pernah
ditahan
dan
bahkan
tidak
pernah
menunggu
untuk
mendapatkan lock
ketika
transaksi
sedang
dieksekusi.
Semua
lock
harus
didapatkan dan dilepaskan pada satu waktu tertentu. Sehingga, jika sebuah
transaksi
gagal
mendapatkan sebuah
lock,
maka
transaksi
itu
harus
melepaskan semua lock
yang didapatkannya dan
memulai
lock process dari
awal
lagi.
Dalam
pandangan nyata,
sebuah
transaksi
mungkin
saja
tidak
mengetahui lock
apa
saja
yang
akan
dibutuhkan pada
awal
transaksi.
Protokol ini tidak digunakan dalam realitas pada DBMS.
2.4.4.2 Deadlock Detection and Recovery
Deadlock
detection
biasanya
ditangani
oleh
konstruksi wait-for
graph
(WFG)
yang
menunjukkan ketergantungan transaksi,
yaitu
transaksi
T
i
tergantung
pada
T
j
jika
transaksi
T
j
memegang
lock
pada
sebuah
item
data yang ditunggu oleh
T
i
.
WFG adalah sebuah directed graph G = (N, E )
yang
terdiri
atas
sekumpulan
node
N
dan
sekumpulan
directed
edge
E,
yang dikonstruksi sebagai berikut :
Buat sebuah node untuk setiap transaksi.
Buat sebuah directed edge
T
i
?
T
j
,
jika transaksi
T
i
menunggu
untuk
melakukan lock pada sebuah item yang sedang di-lock oleh T
j.
y
T1
T2
x
|