Home Start Back Next End
  
31
phase,
transaksi
akan
mendapatkan semua
lock
yang
dibutuhkan tapi
tidak
dapat
melepaskan lock
apapun.
Pada
shrinking
phase,
transaksi
akan
melepaskan
semua
lock
yang
dipegang
tapi
tidak
bisa
mendapatkan
lock
baru
lainnya.
Tidak ada kebutuhan bahwa semua lock
didapatkan sekaligus
pada
suatu
waktu. Secara
normal, sebuah transaksi akan
mendapatkan lock
untuk
menjalankan
operasi,
dan
meminta
lock
tambahan
jika
ada
operasi
yang membutuhkan lock pada operasi selanjutnya .
Aturan-aturannya adalah sebagai berikut :
Sebuah
transaksi
harus
mendapatkan
sebuah
lock
pada
item
sebelum
beroperasi pada item tersebut. Lock tersebut bisa berupa akses membaca
atau menulis, tergantung dari tipe akses yang dibutuhkan.
Ketika
transaksi
melepaskan
sebuah
lock,
transaksi
tersebut
tidak
akan
pernah mendapatkan lock baru lainnya.
Berikut 
akan 
dibahas 
bagaimana 
two-phase 
locking 
digunakan
untuk
memecahkan tiga
masalah
concurrency
yang
telah
dibahas
sebelumnya.
2.4.3.1    Mencegah Masalah Lost Update Menggunakan 2PL
Time
T1
T2
bal
x
t1
begin_transaction
100
t2
begin_transaction
write_lock(bal
x
)
100
t3
write_lock(bal
x
)
read(bal
x
)
100
Word to PDF Converter | Word to HTML Converter