V-Class 7 - Post-test Masalah Konkurensi
Soal :
Cara untuk menjaga konsistensi basis data untuk transaksi yang dilakukan secara bersamaan (konkunren) dengan mekanisme SERIALIZABILITY- Jelaskan 2 metode untuk menjamin SERIALIZABILITY!
- Pada Metode Locking untuk transaksi terus menahan suatu kunci sampai dilepaskan secara eksplisit selama eksekusi atau telah selesai, aturannya menggunakan matriks locking. Jelaskan kerja dari matriks Locking!
Jawab :
1. Lock Based Protocol
Merupakan suatu cara yang digunakan untuk tetap menjaga serializability pada data yang diakses oleh lebih dari suatu transaksi. Yaitu, apabila satu transaksi mengakses sebuah item data maka tidak akan ada transaksi yang dapat memodifikasi data tersebut.Ada dua jenis mode penguncian dasar yang digunakan dalam mekanisme ini yaitu:
- Bersama (Shared). Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode ini (dilambangkan dengan S) terhadap item data Q, maka Ti dapat membaca, tapi tidak dapat mengubah nilai Q tersebut.
- Tunggal (Exclusive). Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode ini (dilambangkan dengan X) terhadap item data Q, maka Ti dapat membaca maupun mengubah nilai tersebut.
2. Two Phase Lock Protocol
Protocol ini menginginkan bahwa setiap transaksi yang akan menjalankan penguncian dan melepaskan penguncian harus melalui dua fase atau tahapan, yaitu:- Fase Pertumbuhan (Growing Phase). Sebuah transaksi dapat melakukan sejumlah penguncian tetapi belum satupun melepaskan pengunciannya.
- Fase Pelepasan (Shrinking Phase). Sebuah transaksi dapat melepaskan sejumlah penguncian , tetapi belum melakukan penguncian yang baru.
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 kunci
Jika 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.
- Bila transaksi tersebut ingin memodifikasi 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).
- Semua modifikasi program menjalankan operasi COMMIT atau ROLLBACK
- Semua kunci dari record dilepaskan