Ada 2 cara agar menjaga serializability:
1. - Lock Based Protokol
Adalah suatu cara yang digunakan untuk menjaga
serializability pada data yang diakses lebih dari satu transaksi. Yaitu apabila
satu transaksi mengakses sebuah item data maka tidak aka nada 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.
Hal yang harus diperhatikan :
Setiap transaksi harus meminta lock apabila
akan melakukan operasi/mengakses
terhadap suatu data. Misalkan data
Q, mode-lock yang diterapkan terhadap data Q harus sesuai dengan operasi
yang akan dilakukan.
Transaksi meminta lock terhadap suatu data,
kepada concurrency control manager.
Operasi terhadap Q dapat dilakukan
transaksi T apabila concurrency control manager memberikan grant (hak istimewa)
lock yang diminta.
2. - Two Phase Lock Protokol
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.
Pada awalnya, sebuah transaksi akan berada dalam fase pertumbuhan.
Transaksi tersebut akan melakukan penguncian sebanyak yang dibutuhkan. Ketika
transaksi mulai melepaskan sebuah penguncian, ia akan mulai memasuki fase
pelepasan, tanpa ada permintaan penguncian berikutnya.
2. Cara kerja matriks locking :
Kita asumsikan terdapat 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
melepas kunci.
-
Jika transaksi menggunakan kunci A pada record S
pada record R, maka:
o
Bila transaksi B ingin menggunakan kunci X, maka
B harus menunggu sampai A melepas kunci tersebut.
o
Bila transaksi B ingin menggunakan kunci S, maka
B bisa menggunakan kunci S Bersama A.
Sumber
Tidak ada komentar:
Posting Komentar