Concurrency Control Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas U i i Pasundan P d Caca E Supriana S Si MT Caca E. Supriana, S.Si.,MT.
[email protected] 1
Concurrency Control y Koordinasi pelaksanaan transaksi simultan dalam
sistem database multiuser dikenal sebagai kontrol konkurensi (concurrency control). (concurrency control) y Tujuan dari concurrency control adalah untuk
memastikan serializability transaksi dalam kontrol environment.
2
y Concurrency database penting karena eksekusi
simultan transaksi multiuser melalui database dapat menciptakan beberapa integritas data dan masalah konsistensi. y Tiga masalah utama adalah update hilang, data
uncommitted, dan retrievals tidak konsisten.
3
Lost Updates y Masalah update yang hilang terjadi ketika dua
transaksi bersamaan, T1 dan T2, memperbarui elemen data yang sama dan salah satu update hilang (ditimpa oleh transaksi lainnya).
4
5
Lost Updates
6
Uncommitted Data y Uncommitted data muncul ketika dua transaksi, T1
dan T2, dijalankan secara bersamaan dan transaksi pertama (T1) yang kembali (roll‐back) setelah (roll back) setelah transaksi kedua (T2) telah diakses uncommitted data, sehingga gg melanggar gg p properti p isolasi transaksi.
7
8
Uncommitted Data
9
Inconsistent Retrievals y Inconsistent retrievals terjadi ketika transaksi
mengakses data sebelum dan setelah transaksi lain selesai bekerja dengan data tersebut. Sebagai contoh, suatu inconsistent retrievals akan terjadi jika transaksi T1 dihitung dalam beberapa fungsi ringkasan (agregat) lebih dari satu set data sementara yang lain transaksi (T2) sedang memperbarui data yang sama. y Masalahnya y adalah bahwa transaksi bisa membaca beberapa data sebelum mereka berubah dan data lain setelah mereka berubah, sehingga menghasilkan hasil yang tidak konsisten. 10
11
Inconsistent Retrievals
12
Mekanisme kontrol konkurensi (1) y Optimis ‐ Penundaan pengecekan apakah transaksi
memenuhi isolasi dan aturan integritas lainnya (misalnya, serializability dan recovery) sampai akhir tanpa memblokir serializability dan recovery) sampai akhir, tanpa memblokir transaksi yang membaca atau menulis dan kemudian membatalkan transaksi untuk mencegah pelanggaran, jika aturan yang diinginkan harus dilanggar atas yang commit. dii i k h dil i y Sebuah transaksi dibatalkan segera restart dan kembali dilaksanakan, yang menimbulkan overhead yang jelas dibandingkan dengan mengeksekusi sampai akhir hanya sekali. Jika tidak terlalu banyak transaksi dibatalkan, maka mekanisme optimis biasanya menjadi strategi yang baik mekanisme optimis biasanya menjadi strategi yang baik. 13
Mekanisme kontrol konkurensi (2) y Pesimis ‐ Blok operasi transaksi, jika dapat menimbulkan
pelanggaran aturan, sampai kemungkinan pelanggaran menghilang Memblokir operasi biasanya akan berakibat menghilang. Memblokir operasi biasanya akan berakibat pada pengurangan kinerja. y Semi‐optimis ‐ Blok operasi dalam beberapa transaksi, jika mereka dapat menyebabkan pelanggaran beberapa aturan, dan tidak memblokir dalam situasi lain sementara aturan akan menunda pemeriksaan (jika diperlukan) sampai akhir transaksi ini, seperti yang dilakukan dengan mekanisme optimis.
14
Scheduler y Scheduler adalah proses DBMS khusus yang
menetapkan urutan operasi dalam transaksi konkuren yang akan dieksekusi. dieksekusi y Scheduler menyisipkan pelaksanaan operasi database untuk memastikan serializability dan isolasi transaksi. transaksi y Untuk menentukan urutan yang tepat, scheduler mendasarkan tindakannya y p pada algoritma g kontrol konkurensi, seperti penguncian atau waktu stamping metode. Namun, penting untuk dipahami bahwa tidak semua transaksi serializable. serializable 15
y Umumnya, transaksi yang tidak serializable dijalankan
pada yang pertama‐datang (first‐come), pertama‐ dilayani (first‐served) oleh (first served) oleh DBMS. DBMS y Pekerjaan utama scheduler adalah untuk membuat jjadwal serializable operasi p transaksi ini. y Sebuah schedule serializable adalah jadwal operasi transaksi di mana pelaksanaan penyisipan transaksi (T1, T2, T3, dll) menghasilkan hasil yang sama seperti jika transaksi dilaksanakan dalam urutan serial (satu demi satu). satu) 16
17
Karakteristik Transaksi y Access Mode
Jika mode akses adalah READ ONLY maka transaksi tidak akan diperbolehkan mengubah basis data. Akibatnya, p g y , perintah INSERT, DELETE, UPDATE dan CREATE tak dapat dieksekusi. Untuk perintah tersebut dapat dieksekusi maka mode akses harus diubah menjadi READ WRITE. WRITE y Diagnostic Size Ukuran diagnostik akan menentukan jumlah kondisi k l h kesalahan yang dapat direkam d di k y Isolation Level g y g p Level isolasi mengontrol transaksi yang dipilih untuk dilaksanakan dari beberapa transaksi yang akan dieksekusi secara konkuren. 18
I l i L l Isolation Level y Repeatable Read
Memastikan bahwa T hanya membaca perubahan yang dilakukan oleh transaksi yang sedang berjalan, dan tidak ada transaksi lain melakukan baca/tulis sampai dengan T selesai y Read Committed Transaksi akan melakukan penguncian eksklusif sebelum melakukan operasi penulisan dan menjaga kunci ini sampai dengan transaksi selesai y Read Uncommitted Transaksi T dapat membaca perubahan dari sebuah obyek dari sebuah transaksi lain yang sedang berlangsung y g g g g y Serializable Serializable isolation biasanya direkomendasikan dan secara umum paling aman. Isolasi dapat dilakukan di level terendah d dan penguncian dengan jumlah yang kecil akan mendukung d l h k l k d k kinerja sistem. 19