Saturday, June 8, 2013

Teknik Time Stamping

Salah satu alternatif concurrency control yang dapat menghilangkan deadlock adalah time stamping. Secara umum, timestamping (TS) adalah  penanda waktu saat transaksi terjadi.  Hal ini untuk mengurutkan eksekusi transaksi agar sama dengan eksekusi serial.

Time stamp dapat berupa:
  1. waktu sistem saat transaksi dimulai, atau
  2. penghitung logik (logical counter) yang terus bertambah nilainya tiap kali terjadi transaksi baru.

Jika timestamp transaksi a lebih kecil daripada timestamp transaksi b , atau
TS(Ta) < TS(Tb),  maka transaksi a (Ta) selalu dilaksanakan sebelum transaksi b (Tb).

Contoh:
Misal rekaman pada basis data memuat TS 168, yang mengidentifikasikan transaksi dengn TS 168 adalah transaksi yang terkemudian yang sukses mengupdate rekaman yang bersangkutan.  Maka jika ada transaksi dengan TS 170 mencoba mengupdate rekaman yang sama, maka update ini akan diijinkan, karena TS yang dimiliki lebih kemudian dari TS pada rekaman.  Saat transaksi ini dilakukan, TS pada rekaman akan diatur menjadi 170.  Sekaran, jika transaksi yang akan mengupdate rekaman tersebut memiliki TS 165, maka update ditolak karena TS-nya < TS di rekaman.

Selain transaksi, item data juga memiliki nilai time stamp. Untuk setiap item data Q, ada 2 nilai time stamp, yaitu:
a.    Read time stamp atau R-timestamp(Q), yang menunjukkan nilai TS terbesar dari setiap transaksi yang berhasil menjalankan operasi read(Q).
b.    Write time stamp atau W-timestamp(Q), yang menunjukkan nilai TS terbesar dari setiap transaksi yang berhasil menjalankan operasi write(Q).

Timestamp ini akan selalu diperbarui ketika ada perintah baru read(Q) atau write(Q) yang dijalankan.


No comments:

Post a Comment