Concurrency Control Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas i Pasundan Caca E. Supriana, S.Si.,MT. Si caca.e.supriana@unpas.ac.id 1
Concurrency Control Koordinasi pelaksanaan transaksi simultan dalam sistem database multiuser dikenal sebagai kontrol konkurensi (concurrency control). Tujuan dari concurrency control adalah untuk memastikan serializability transaksi dalam kontrol environment. 2
Concurrency database penting karena eksekusi simultan transaksi multiuser melalui database dapat menciptakan beberapa integritas data dan masalah konsistensi. Tiga masalah utama adalah update hilang, data uncommitted, dan retrievals tidak konsisten. 3
Lost Updates 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 Uncommitted data muncul ketika dua transaksi, T1 dan T2, dijalankan secara bersamaan dan transaksi pertama (T1) yang kembali (roll back) setelah transaksi kedua (T2) telah diakses uncommitted data, sehingga melanggar properti p isolasi transaksi. 7
8
Uncommitted Data 9
Inconsistent Retrievals 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. Masalahnya 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) Optimis Penundaan pengecekan apakah transaksi memenuhi isolasi dan aturan integritas lainnya (misalnya, serializability dan recovery) sampai akhir, tanpa memblokir transaksi yang membaca atau menulis dan kemudian membatalkan transaksi untuk mencegah pelanggaran, jika aturan yang diinginkan i harus dilanggar atas yang commit. 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. 13
Mekanisme kontrol konkurensi (2) Pesimis Blok operasi transaksi, jika dapat menimbulkan pelanggaran aturan, sampai kemungkinan pelanggaran menghilang. Memblokir operasi biasanya akan berakibat pada pengurangan kinerja. 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 Scheduler adalah proses DBMS khusus yang menetapkan urutan operasi dalam transaksi konkuren yang akan dieksekusi. Scheduler menyisipkan pelaksanaan operasi database untuk memastikan serializability dan isolasi transaksi. Untuk menentukan urutan yang tepat, scheduler mendasarkan tindakannya pada algoritma kontrol konkurensi, seperti penguncian atau waktu stamping metode. Namun, penting untuk dipahami bahwa tidak semua transaksi serializable. 15
Umumnya, transaksi yang tidak serializable dijalankan pada yang pertama datang (first come), pertama dilayani (first served) served) oleh DBMS. Pekerjaan utama scheduler adalah untuk membuat jadwal serializable operasi transaksi ini. 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). 16
17
Karakteristik Transaksi Access Mode Jika mode akses adalah READ ONLY maka transaksi tidak akan diperbolehkan mengubah basis data. Akibatnya, y, perintah INSERT, DELETE, UPDATE dan CREATE tak dapat dieksekusi. Untuk perintah tersebut dapat dieksekusi maka mode akses harus diubah menjadi READ WRITE. Diagnostic Size Ukuran diagnostik akan menentukan jumlah kondisi kesalahan yang dapat direkam Isolation Level Level isolasi mengontrol transaksi yang dipilih untuk dilaksanakan dari beberapa transaksi yang akan dieksekusi secara konkuren. 18
Isolation Level 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 Read Committed Transaksi akan melakukan penguncian eksklusif sebelum melakukan operasi penulisan dan menjaga kunci ini sampai dengan transaksi selesai Read Uncommitted Transaksi T dapat membaca perubahan dari sebuah obyek dari sebuah transaksi lain yang sedang berlangsung g Serializable Serializable isolation biasanya direkomendasikan dan secara umum paling aman. Isolasi dapat dilakukan di level terendah dan penguncian dengan jumlah lhyang kecil akan mendukung kinerja sistem. 19