Postest Masalah Konkurensi (Lanjutan)
Cara untuk menjaga konsistensi basis data untuk transaksi yang dilakukan secara bersamaan (konkunren) dengan mekanisme SERIALIZABILITY
a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY
b. Pada Metode Locking untuk transaksi terus menahan suatu kunci sampai dilepaskan secara eksplisit selama eksekusi atau telah selesai, aturannya menggunakan matriks locking. Jelas kerja dari matriks Locking
Jawab:
a.
1. LOCKING
Prosedur untuk mengontrol
pengaksesan data secara konkuren.
Apabila satu transaksi mengakses
basis data, suatu lock (kunci) akan menolak pengaksesan
transaksi lain utk
mencegah modifikasi yg tidak benar
2. TIMESTAMPING
Keduanya
konservatif (pesimistik) karena transaksi ditunda untuk mencegah konflik dg
transaksi lain di waktu kemudian.
Skema yang menjamin serializability
dengan memilih urutan pasangan transaksi
berdasarkan nilai waktu
Timestamp, merupakan suatu
identifikasi unik dibuat DBMS yg mengindikasikan waktu
mulai relatif dari suatu
transaksi.
Dengan waktu sistem (system lock)
atau penambahan pada kounter logik (logical counter)
setiap waktu transaksi
mulai.
Suatu protokol yg menyusun
transaksi2 secara global, dimana transaksi yg tertua,
transaksi dg timestamp
terkecil, mendapat prioritas utama dari konflik transaksi tsb.
METODE OPTIMISTIC
Berasumsi
bhw konflik jarang terjadi sehingga proses tetap berjalan & pengecekan
dilakukan pada saat transaksi sudah di-commit
Berbasis pada asumsi bahwa pada
lingkungan tertentu, jarang terjadi konflik, sehingga
lebih efisien membiarkan
transaksi dieksekusi.
Kemudian pada saat akan di-commit,
diidentifikasi apakah akan timbul konflik, jika ya
maka transaksi harus di
rollback atau di proses ulang.
b.
Kita asumsikan terdapat 2 (dua) macam kunci :Kunci X (kunci eksklusif) dan kunci S (kunci yang digunakan bersama-sama)Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B harus menunggu sampai nanti transaksi A melepaskan kunciJika transaksi A menggunakan kunci S pada record R, Maka :Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.Bila transaksi B ingin menggunakan kuni S, maka B bisa menggunakan kunci S bersama A.
Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan kunci S.record, maka secara otomatis ia memerlukan kunci X. Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan memodifikasi record, maka kunci S akan dinaikkan ke level kunci X.
Kunci X dan kunci S akan dilepaskan pada saat Synchpoint (synchronization point). Bila synchpoint ditetapkan maka: semua modifikasi program menjalankan operasi COMMIT atau ROLLBACK semua kunci dari record dilepaskan.
Komentar
Posting Komentar