![]() 35
t
14
read_lock(bal
y
)
90
50
35
90
t
15
read(bal
y
)
90
50
35
90
t
16
sum=sum+bal
y
90
50
35
140
t
17
read_lock(bal
z
)
90
50
35
140
t
18
read(bal
z
)
90
50
35
140
t
19
sum=sum+bal
z
90
50
35
175
t
20
commit
/
unlock(bal
x,
bal
y
,
bal
z
)
90
50
35
175
Tabel 2. 10
Mencegah masalah inconsistent analysis menggunakan 2PL
Sumber : Connoly,2005, p591
Penjelasan :
Untuk
mencegah masalah
inconsistent
analysis
terjadi,
pertama
kali
T
5
meminta
dan
mendapatkan sebuah
exclusive
lock
pada
bal
x
.
Dengan
demikian
T
5
dapat membaca nilai dari bal
x
,
mengurangi
nilainya dengan 10,
dan
menuliskan
nilai
tersebut
ke
dalam
database.
Ketika
T
6
mulai
dijalankan,
T
6
akan
meminta
sebuah
shared
lock
pada
bal
x
.
Karena
exclusive
lock
untuk
bal
x
sedang
digunakan
oleh
T
5
,
maka
permintaan
ini
tidak
langsung
disetujui.
T
6
harus
menunggu
sampai
exclusive
lock
pada
bal
x
yang
digunakan
oleh
T
5
dilepaskan
dan
permintaan
akan
disetujui
setelah semua operasi pada transaksi T
5
selesai dikerjakan.
|