Pengontrolan Konkurensi
Outcome
Dua Outcome dari Konkurensi :
1. Commit
Jika operasi berjalan sukses, maka transaksi disebut commited, basis data mencapai kondisi konsisten yang baru.
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.
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
Transaksi dan Properti ACID
Sebuah
transaksi adalah unit eksekusi program yang mengakses dan meungkin mengubah
beberapa item data. Suatu transaksi harus melihat databses yang konsisten. Selama
eksekusi transaksi, database mungkin tidak konsisten. Ada 2 hal yang berkaitan
dengan manejemen transaksi :
·
Kegagalan fungsi atau
failures, terdiri dari kegagalan perangkat keras (hardware) dan system crash
·
Eksekusi beberapa
transaksi secara bersamaan.
Properti
ACID:
1. Atomicity : transaksi dilakukan
sekali dan sifatnya atomik, artinyasatu kesatuan tunggal yang tidak dapat
dipisahlaksanakan pekerjaan sampai selesai atau tidak sama sekali.
2. Concistency : jika basis data
awalnya dalam keadaan konsisten maka pelaksanaan transaksi sendirinya juga
harus meninggalkan basis data tetap dalam status konsisten
3. Isolation : isolasi memastikan bahwa
secara bersamaan eksekusi transaksi terisolasi dari yang lain
4. Durability : begitu transaksi telah
dilaksanakan (di-commit) maka perubahan yang dilakukan tidak akan hilang dan
tetap terjaga (durable),sekalipun ada kegagalan sistem.
Contoh :
Sebuah transaski transfer
uang
Transaksi untuk transfer
uang $50 dari akun A ke akun B :
1.
read(A)
2.
A := A – 50
3.
Write(A)
4.
read(B)
5.
B := B + 50
6.
Write(B)
Atomicity >> jika
transaksi gagal dijalankan setelah langkah 3 dan sebelum langkah ke 6, maka system
harus menjamin bahwa perubahan yang terjadi tidak direfleksikan didatabase,
jika hal ini tidak dapat dilakukan maka akan menghasilkan inconsistency.
Consistency >>
jumlah A dan B tidka berubah setelah transaksi
State transaksi
·
Active, keadaan awal : transaksi berada di
state ini ketika dia sedang di eksekusi
·
Partial committed, setelah di operasi
terakhir telah dieksekusi
·
Failed, setelah di ketahui bahwa eksekusi
secara normal tidak lagi di lakukan
·
Aborted, setelah sebuah transaksi
dikembalikan ke kondisi sebelum transaksi, ada w2 pilihan setekah transaksi
di-abort:
1.
Ulangi transaksi
2.
Hanya jika ada kesalahan logika internal
·
Commited, setelah semua operasi selesai
dijalankan dengan sukses
·
State transaksi
Komentar
Posting Komentar