1. TIGA PENDEKATAN MENDESAIN
ALGORITMA KONTROL KONKURENSI
Wait. Jika dua transaksi konflik, transaksi yang konflik
harus menunggu sampai transaksi lainnya selesai.
Timestamp. Urutan eksekusi transaksi berdasarkan
timestamp. Setiap transaksi memiliki timestamp yang
unik dan dua transaksi yang konflik diselesaikan
berdasarkan urutan timestamp. Timestamp dapat
diletakkan di awal, tengah, atau akhir eksekusi.
Pendekatan berdasarkan version digunakan untuk
menentukan timestamp objek basis data.
Rollback. Dua transaksi yang konflik, salah satu
transaksinya diulang kembali pengerjaannya. Disebut
juga optimistic, karena bila terjadi konflik maka
beberapa transaksi akan di-rollback.
2. Serializability
eksekusi transaksi
secara serial dalam
urutan yang berbeda
mungkin memunculkan
hasil yang berbeda,
tetapi semua dianggap
dapat diterima,
meskipun eksekusi terinterleave. Contoh ;
3. Lock – Based Control Concurrency
Lock adalah objek pembukuan kecil yang dihubungkan
dengan objek database.
Locking Protocol adalah kumpulan aturan yang diikuti
tiap transaksi (dan didukung DBMS) untuk memastikan
bahwa meskipun tindakan beberapa transaksi mungkin
di-interleave,
efek
bersihnya
serupa
dengan
mengeksekusi semua transaksi dalam beberapa urutan
serial.
Bagian DBMS yang memantau masalah lock untuk
transaksi disebut Lock Manager. Lock Manager
mengatur tabel lock yaitu hash table dengan identifier
objek data sebagai key.
4. Lock – Based Control Concurrency
Untuk memastikan data dapat dibagi dengan operasi
konflik yang diakses oleh satu operasi pada satu saat.
“Lock” untuk setiap unit lock.
Locking terjadi di transaksi sebelum diakses dan direset
di akhir penggunaan. Unit lock tidak dapat diakses
dengan sebuah operasi jika sudah dilock sebelumnya
oleh yang lain. Permintaan lock oleh sebuah transaksi
diberikan jika lock yang terhubung tidak ditahan oleh
transaksi lainnya.
5. Deadlock
Deadlock adalah lingkaran transaksi yang menunggu
lock untuk dilepaskan
Misalkan, transaksi T1 mengatur X-Lock pada database
A, T2 mengatur X-Lock pada database B, T1 meminta XLock pada B dan diantri, dan T2 meminta X-Lock pada A
dan diantri. Sekarang T1 sedang menunggu T2 untuk
melepaskan locknya, dan T2 sedang menunggu T1 untuk
melepaskan locknya.
6. Pencegahan Deadlock
Pencegahan deadlock paling sederhana adalah transaksi
dengan prioritas lebih tinggi, diizinkan untuk menunggu,
sedangkan transaksi dengan prioritas yang lebih rendah
akan di-abort.
Suatu cara untuk menetapkan prioritas adalah
memberikan Timestamp pada tiap transaksi pada saat
mulai. Semakin rendah timestamp, semakin tinggi
prioritas transaksi, yaitu transaksi paling tua mempunyai
prioritas tertinggi.
7. TWO-PHASE LOCKING (2PL)
Fase locking. Transaksi mengambil lock tanpa
melepasnya.
Fase unlocking. Dalam fase ini, transaksi melepaskan
lock yang ada dan tidak boleh mengambil lock.lockpoint
merupakan keadaan sesaat sebelum pelepasan lock
yang pertama kali dilakukan. Algoritma berdasarkan
Mekanisme Timestamp .
9. Kesimpulan
Kontrol konkurensi adalah masalah yang timbul ketika
beberapa proses terjadi pada berbagai tempat di sistem.
Solusi awal untuk hal ini adalah dengan memastikan
kelas-kelas serializability, two-phase locking, dan
formalisasi pendekatan optimistic. Mekanisme populer
untuk kontrol konkurensi adalah two-phase locking.
Kontrol konkurensi yang dapat disesuaikan
diimplementasikan pada sistem Reliable, Adaptable,
Interoperable, Distributed (RAID).
10. Kesimpulan
Kontrol konkurensi adalah masalah yang timbul ketika
beberapa proses terjadi pada berbagai tempat di sistem.
Solusi awal untuk hal ini adalah dengan memastikan
kelas-kelas serializability, two-phase locking, dan
formalisasi pendekatan optimistic. Mekanisme populer
untuk kontrol konkurensi adalah two-phase locking.
Kontrol konkurensi yang dapat disesuaikan
diimplementasikan pada sistem Reliable, Adaptable,
Interoperable, Distributed (RAID).