Memahami Kokurensi

Konkurensi adalah bisa dikatakan sebagai suatu fitur di mana database management system(DBMS) mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Dalam melakukan konkurensi dibutuhkan suatu Concurency Control Mechanism (CCM) agar transaksi yang dilakukan oleh banyak user pada suatu sistem di dalam waktu yang bersamaan tidak saling “mengganggu” dan tidak menghasilkan inconsistency data.
Tiga masalah dalam Konkurensi :
  1. Lost Update Problem
    Masalah operasi update yang sukses dari seorang pengguna kemudian ditimpali oleh operasi update dari pengguna lain.
  2. Uncomited dependency problem (ketergantungan yg tidak sukses/modifikasi sementara)
    Masalah terjadi saat suatu transaksi membaca data dari transaksi lain yg belum dicommit.
  3. Inconsistent analysis problem
Masalah terjadi saat satu transaksi membaca beberapa nilai tetapi transaksi kedua pd waktu sama memodifikasi nilai tersebut.
Dua Outcome dari Konkurensi :
  1. Commit
    Jika operasi berjalan sukses, maka transaksi disebut commited, basis data mencapai kondisi konsisten yang baru.
  2. Abort
    Jika operasi berjalan tidak sukses, maka transaksi disebut aborted (gagal)Jika transaksi gagal maka basis data kembali ke keadaan konsisten sebelum transaksi dimulai. Disebut roll back atau undone.
Locking
                Jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock. jenis lock :
  1. Exclusive Lock (Xlock) à write lock
  2. Shared Lock (Slock) à read lock
Deadlock
Situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai. Dapat diatasi dengan cara :
  • Deteksi dan pecahkan deadlock
  • Deteksi deadlock à wait-for-graph
  • Pecahkan deadlock à salah satu dirollback paksa (bagaimana penanganan rollback ini?)
  • Ostrich Algorithmà diabaikan
Alasan mengapa konkurasi sangat penting pada sistem basis data karena database pastinya akan diakses oleh banyak orang secara bersamaan, untuk menghidari kesalahan tentunya monkurensi ini sangat penting untuk menghindari masalaj tersebut.

Komentar