Home Start Back Next End
  
33
2.4.3.2
Mencegah Masalah Uncommitted Dependency Menggunakan
2PL
Time
T3
T
4
bal
x
t1
begin_transaction
100
t2
write_lock(bal
x
)
100
t3
read(bal
x
)
100
t
4
begin_transaction
bal
x
=
bal
x
+
100
100
t
5
write_lock(bal
x
)
write(bal
x
)
200
t
6
WAIT
rollback / unlock(bal
x
)
100
t
7
read(bal
x
)
100
t
8
bal
x
=
bal
x
10
100
t
9
write(bal
x
)
90
t
10
commit / unlock(bal
x
)
90
Tabel 2. 9
Mencegah masalah uncommitted dependency menggunakan 2PL
Sumber : Connoly, 2005,p590
Penjelasan :
Solusi
pada
masalah
uncomitted
dependency
ditunjukkan pada
tabel
2.9.
Untuk
mencegah
masalah uncommitted dependency
terjadi, pertama kali
T
4
meminta
dan
mendapatkan sebuah
exclusive
lock
pada
bal
x
.
Dengan
demikian
T
4
dapat
membaca
nilai dari bal
x
,
menambah nilainya dengan 100,
dan
menuliskan nilai
tersebut
ke
dalam
database.
Ketika
rollback
terjadi,
semua
perubahan
pada
transaksi
T
4
akan
mengalami
undone
sehingga
nilai
dari
bal
akan
kembali
seperti
nilai
awalnya
yaitu
100.
Ketika
T3
mulai
Word to PDF Converter | Word to HTML Converter