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