![]() 36
2.4.4
Deadlock
Deadlock adalah jalan buntu
yang dapat terjadi ketika dua atau
lebih
transaksi
masing-masing menunggu
lock
yang
sedang
dipegang
oleh
transaksi lainnya untuk dilepas (Connolly, 2005, p594).
Time
T
17
T
18
t1
begin_transaction
t2
write_lock (bal
x
)
begin_transaction
t3
read (bal
x
)
write_lock (bal
y
)
t
4
bal
x
=
bal
x
-
10
read (bal
y
)
t
5
write (bal
x
)
bal
y
=
bal
y
+
100
t
6
write_lock (bal
y
)
write (bal
y
)
t
7
WAIT
write_lock (bal
x
)
t
8
WAIT
WAIT
t
9
WAIT
WAIT
t
10
...
WAIT
t
11
...
...
Tabel 2. 11
Contoh deadlock pada dua transaksi
Sumber : Connoly, 2005, p594
Tabel 2.11
menunjukkan dua transaksi
T1
7
dan T1
8
yang
mengalami
deadlock
karena
masing-masing sedang
menunggu
transaksi
lainnya
untuk
melepaskan
lock yang sedang dipegang. Pada saat
t2, transaksi
T1
7
meminta
dan
mendapatkan
exclusive
lock
pada
item
bal
x
dan
pada
saat
t3 transaksi
T1
8
mendapatkan exclusive
lock
pada item bal
y
.
Pada saat
t
6
,
T1
7
meminta
|