Pengontrolan Konkurensi


Outcome
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

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

Postingan populer dari blog ini

Pengantar Teknologi Game

Model EERD

Model EERD