30
Lock digunakan dengan cara sebagai berikut :
Transaksi
apapun yang
membutuhkan
akses pada sebuah item data
harus
melakukan
lock terhadap
item tersebut, meminta
shared lock
untuk
akses
membaca saja
atau
sebuah
exclusive
lock
untuk
akses
membaca dan menulis.
Jika item belum dikunci oleh transaksi lain, lock tersebut akan diberikan
Jika
item
sedang
dikunci,
DBMS
menentukan
apakah
permintaan
ini
compatible dengan lock saat
ini.
Jika diminta shared
lock pada sebuah
item
yang
sudah
mempunyai
shared
lock
terpasang
padanya,
permintaan lock
tersebut
akan
diijinkan.
Selain
itu,
transaksi
harus
menunggu sampai lock yang ada terlepas.
Sebuah
transaksi
akan
terus
memegang
lock
sampai
transaksi
tersebut
melepasnya baik
pada
waktu
eksekusi
ataupun
pada
waktu
transaksi
tersebut
berakhir
(abort
atau
commit).
Efek
operasi
tulis
akan
terlihat
pada transaksi lain hanya pada waktu exclusive lock telah dilepas.
Two-phase
Locking
(2PL)
merupakan sebuah
protokol
yang
memperhatikan saat
operasi
melakukan
lock
dan
unlock
di
dalam
setiap
transaksi.
Sebuah
transaksi
mengikuti protokol two-phase
locking
jika
semua
operasi
locking
mendahului
operasi
unlock
pertama
pada
transaksi
(Connolly, 2005, p589).
Sesuai peraturan pada protokol
ini, setiap transaksi
dapat dibagi
ke
dalam
dua
fase,
yaitu
growing
phase
dan
shrinking
phase.
Pada
growing
|