Monday, April 27, 2020

KONKURENSI PADA SISTEM BASIS DATA


Konkurensi adalah proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan. Dalam DBMS berarti 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.

Prinsip-prinsip Konkurensi

Konkurensi meliputi hal-hal sbb:
    Alokasi waktu pemroses untuk proses-proses
    Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
    Komunikasi antarproses
    Sinkronisasi aktivitas banyak proses.

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. 


0 comments:

Post a Comment