Pretest_VC6_3KA88_12118087_Duriyawati

VC6 Pretest : Pengontrolan Konkurensi


Apa yang anda pahami tentang konkurensi?

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.

  1. Uncomited dependency problem (ketergantungan yg tidak sukses/modifikasi sementara)
    Masalah terjadi saat suatu transaksi membaca data dari transaksi lain yg belum dicommit.
  2. 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

 

Mengapa perlu dilakukan pengontrolan konkurensi ?

Perintah “savepoint” dan “rollback” terdapat dalam materi Concurency. Concurency adalah banyak transaksi yang dijalankan secara bersama-sama. Hampir semua DBMS adalah multiuser, sehingga berpeluang terjadinya inkonsistensi basis data. Maka perlu adanya pengendalian persaingan eksekusi transaksi (concurrency control).

Pengontrolan konkurensi merupakan salah satu fungsi dari DBMS. Pada DBMS terpusat yang multi-user, dapat mengakses sejumlah transaksi pada waktu bersamaan. Transaksi disini adalah suatu aksi atau serangkaian aksi yang dilakukan oleh seorang pemakai atau suatu program aplikasi, dimana dapat mengakses atau mengubah isi dari database.

Dua hasil transaksi adalah commit atau rollback.

Commit Adalah operasi yang menyatakan bahwa suatu transaksi sudah terselesaikan/ sukses (successfull end-of-transaction).

RollBack Adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan (unsuccessfull end-of-transaction).

Untuk menjamin transaksi-transaksi yang dilakukan bersamaan berjalan sukses tanpa adanya tumpang tindih maka dibutuhkan mekanisme pengontrolan konkurensi, jika tidak timbul permasalahan:

 

Lost update

Permasalahan timbul pada saat operasi update berjalan sukses kemudian ditindih oleh operasi  update lain yang dilakukan oleh pemakai lain.

Uncommited dependency

Permasalahan timbul pada saat transaksi dibiarkan melihat hasil dari transasksi lain yang belum commit. Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).

Inconsistent analysis

Permasalahan timbul apabila suatu transaksi membaca beberapa nilai tetapi transasksi berikutnya memodifikasi salah satu nilai.

 

Teknik  Pengontrolan Konkurensi :

LOCKING

Apabila suatu transaksi mengakses suatu data maka suatu lock (kunci) dapat mencegah pengaksesan oleh transasksi lain.

Konsep dasar :

Ketika suatu transaksi memerlukan jaminan kalau record yang diingini tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut.

 

Fungsi kunci (lock)

Menjaga record tersebut agar tidak dimodifiksi transaksi lain.

Cara kerja dari kunci :

  • Kita asumsikan terdapat 2 (dua) macam kunci :
  • Kunci X (kunci eksklusif) dan kunci S (kunci yang digunakan bersama-sama)
  • Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B harus menunggu sampai nanti transaksi A melepaskan kunci
  • Jika transaksi A menggunakan kunci S pada record R, Maka :
  • Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.
  • Bila transaksi B ingin menggunakan kuni S, maka B bisa menggunakan kunci S bersama A

 

TIMESTAMPING

DEADLOCK adalah suatu situasi dimana dua atau lebih transaksi masing – masing menunggu (wait) suatu kunci yg ditahan oleh transaksi lain, untuk dilepaskan. 2 teknik menangani deadlock

  1. Deadlock prevention, DBMS mengamati transaksi apakah menimbulkan deadlock & tidak akan membiarkan deadlock terjadi
  2. Deadlock prevention and recovery, DBMS membiarkan terjadi deadlock, mengenalinya lalu menanganinya.

Time stamping untuk sebuah transaksi aksi merupakan suatu tanda pengenal yang unik yang menunjuk waktu mulai relatif dari transaksi.

Time stamp dapat berupa pembacaan pada kunci internal pada waktu transaksi dimulai, dapat berupa nilai dari suatu penunjuk logikal yang dapat bertambah setiap kali suatu transaksi baru dimulai.

Komentar

Postingan Populer