Serializabilitas Two Phase Locking

Slides:



Advertisements
Presentasi serupa
OVERVIEW • Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian pengubahan.
Advertisements

Penerapan Locking pada DBMS berbasis Web
Manajemen Transaksi & Kontrol Konkurensi
ModulXI (sebelas) TopikKonkurensi Sub TopikPengantar Konkurensi Materi  Proses Konkuren  Masalah Konkurensi  Penyelesaian Kokurensi TujuanMahasiswa.
Sistem Manajemen Basis Data Teknik Konkurensi
Arief Cahyo S Rachmad Wahyudi S Abdul Qodir Jailani M. Choirur Rozi Rahmat Aidil FR
Deadlock.
Presentasi Keamanan Basis Data “Transaction Management”
Wahyu Sudrajat, S. Kom PENGANTAR DATA TERDISTRIBUSI Analisis Masalah.
Concurrency M-03.
Pertemuan ke 3 Konsep Proses
Desain Arsitektur Sistem
Sistem Operasi Sinkronisasi Proses.
DATABASE CONTROL.
CONCURENCY CONTROL DISTRIBUTED DATABASE. M AIN TOPICS Transaction managements Centralized database Distributed database Consistency control Centralized.
PENGONTROLAN KONKURENSI & RECOVERY
Proteksi data (recovery)
TRANSAKSI DAN PENGENDALIAN PERSAINGAN
MUTUAL EXCLUSION.
PERTEMUAN 8 Teknik recovery.
Manajemen Transaksi (1)
Transaksi Konsep Transaksi Status transaksi
KONKURENSI.
KONKURENSI.
BAB 1 Pengenalan Database dan DBMS
Collabnet Overview v Informatika BAB XIII Menangani Transaksi.
TRANSACTION MANAGEMENT
TRANSAKSI DAN PENGENDALIAN PERSAINGAN
Pengendalian Konkurensi
1 concurrency. Concurrency Sejumlah transaksi diperkenankan untuk mengakses data yang sama dalam aktu yang bersamaan.
1 Pertemuan > Pengendalian Konkurensi Matakuliah: >/ > Tahun: > Versi: >
Sistem Operasi Pertemuan 15.
Sistem Operasi Pertemuan 11.
Wahyu nurjaya wk, st., m.kom.
Konkurensi.
Manajemen Transaksi #5 D. SINAGA, M.KOM.
Pengendalian Konkurensi
Recovery Adapted from: Connolly, Thomas., et.al., Database System. Wokingham England: Addison-Wesley Publishing Company.
Concurrency Control DBMS.
Database Management Systems Bab 9 Overview Manajemen Transaksi (Chap
Pengamanan Sistem Basis Data
Pertemuan 13 LINGKUNGAN DATABASE.
Backup & Recovery.
TRANSACTION MANAGEMENT
Brilliani Ayunda Putri
TRANSAKSI DAN PENGENDALIAN PERSAINGAN
Sistem Basis Data ABU SALAM, M.KOM.
SINKRONISASI & DEADLOCK
Sinkronisasi dan Deadlock
Sistem Manajemen Basis Data
Pertemuan <<10>> Transaksi Manajemen
Keamanan database Jimmy Baharuddin
PENGENDALIAN DEADLOCK
Serializabilitas Two Phase Locking
Sistem Operasi: Deadlock
Konkurensi (Lanjutan)
Transaksi Konsep Transaksi Status transaksi
4. SISTEM OPERASI Manajemen Proses - Konkurensi
Koordinasi Antar Proses DI DALAM SISTEM TERDISTRIBUSI
Kekangan Basisdata ..
Proteksi data (concurrency)
SINKRONISASI DAN DEADLOCK
Kekangan Basisdata ..
Pemulihan Basis Data D. Sinaga, M.Kom.
Manajemen Transaksi D. SINAGA, M.KOM.
Concurrency Control DBMS.
Kekangan Basisdata ..
BASIS DATA TERDISTRIBUSI
Lingkungan Basis Data.
Proteksi Data Pertemuan 13.
Transcript presentasi:

Serializabilitas Two Phase Locking Adapted from: Connolly, Thomas., et.al., 2002. Database System. Wokingham England: Addison-Wesley Publishing Company

Serializability (Serializabilitas) Ada 3 masalah dl konkurensi perlu protokol pengendalian konkurensi. Solusi yg jelas aman: hanya satu transaksi yg diperbolehkan untuk dieksekusi pada suatu waktu sampai commit, sebelum transaksi lainnya dimulai.  transaksi dieksekusi secara serial  tidak memberikan efek konkurensi sebenarnya Serializabilitas: sejumlah transaksi yang dieksekusi secara konkuren dapat memberikan hasil yang sama dengan eksekusi secara serial

Schedule (Jadwal) Sebuah transaksi terdiri atas serangkaian urutan baca dan tulis ke basisdata. Schedule (jadwal): urutan baca tulis yang dilakukan oleh sekumpulan transaksi Jadwal serial: suatu jadwal operasi setiap transaksi yang dieksekusi secara serial tanpa diselingi operasi transaksi lainnya. 3

Schedule (Jadwal) Jadwal nonserial: jadwal operasi dari sekumpulan transaksi yang konkuren saling bersambung Tujuan serializabilitas: memperoleh jadwal nonserial yang mengizinkan sekumpulan transaksi dieksekusi secara konkuren dan memberikan hasil yang sama dengan eksekusi serial. Jadwal nonserial demikian disebut serializable. 4

Serializabilitas Dalam serializabilitas: Jika dua transaksi hanya membaca data, tak terjadi konflik, urutan tak penting. Jika dua transaksi membaca dan atau menulis pada item data yang berbeda, tidak terjadi konflik, urutan tidak penting. Jika sebuah transaksi menulis sebuah item data & transaksi lainnya membaca atau menulis item data yang sama, urutan eksekusi menjadi penting. 5

Tes Serializabilitas Gunakan precedence graph: Buat simpul untuk setiap transaksi. Buat busur berarah T1  T2 , jika transaksi T2 membaca harga yang ditulis oleh T1 , atau T2 menulis harga sesudah dibaca oleh T1, atau T2 menulis harga sesudah ditulis oleh T1. Jika ada siklus dalam graf, jadwal tidak serializable. T1 T2 x y 6

Apakah jadwal untuk transaksi berikut serializable? Transaksi A Transaksi B t1 begin_transaction begin_transaction t2 read(balx) read(balx) t3 balx= balx + 200 balx= balx – 80 t4 write(balx) write(balx) t5 commit commit t6 7

Apakah jadwal untuk transaksi berikut serializable? Transaksi A Transaksi B begin_transaction t1 read(balx) t2 begin_transaction balx= balx – 80 t3 read(balx) write(balx) t4 balx= balx + 200 commit t5 write(balx) t6 commit 8

Teknik Pengendalian Konkurensi Serializabilitas dapat diperoleh dengan beberapa cara. Ada dua teknik pengendalian konkurensi, yaitu: Locking Timestamping 9

Locking (Penguncian) Merupakan prosedur yang digunakan untuk mengendalikan akses yang konkuren. Ketika sebuah transaksi mengakses bd, untuk mencegah kesalahan update, akses yang dilakukan oleh transaksi lain ditolak. 10

Locking : Jenis Kunci Ada dua jenis kunci yaitu: Read lock atau shared lock (S-lock). Transaksi yang memegang kunci ini hanya boleh membaca item data. Write lock atau exclusive lock atau (X-lock). Transaksi yang memegang kunci ini boleh membaca dan mengupdate item data. 11

Protokol penggunaan S-lock dan X-lock Untuk membaca suatu tuple, sebuah transaksi harus memegang S-lock pada tuple tsb. Untuk menulis (update) suatu tuple, sebuah transaksi harus memegang X-lock pada tuple tsb. Dalam kondisi satu transaksi melakukan permintaan lock dan belum dapat diberikan, maka transaksi tsb harus menunggu (status wait). 12

Cara kerja locking Asumsi: penguncian dimungkinkan hanya pada satu tuple item data. Jika sebuah transaksi memegang exclusive lock pada tuple t, maka permintaan kunci dari transaksi lain untuk tuple t ditolak. Jika sebuah transaksi memegang shared lock pada tuple t, permintaan transaksi lain untuk exclusive lock pada tuple t ditolak, permintaan transaksi lain untuk shared lock pada tuple t diizinkan. 13

Two-phase locking (2PL) Penggunaan kunci dalam transaksi tidak menjamin serializabilitas jadwal, harus ada protokol tambahan yaitu 2PL (two phase locking). Suatu transaksi mengikuti 2PL, jika semua operasi locking didahului oleh operasi unlock pada transaksi. Aturannya adalah sebagai berikut: Sebuah transaksi harus memperoleh kunci sebelum operasi pada sebuah item dilakukan. Sekali transaksi melepaskan sebuah kunci, transaksi tersebut tidak dapat memperoleh kunci baru. 14

Contoh 2PL: Kasus 1 Mencegah kehilangan update T1: T2: balx t1 begin_transaction 100 begin_transaction t2 write_lock(balx) 100 write_lock(balx) t3 read(balx) 100 wait t4 balx = balx + 100 100 wait t5 write(balx) 200 wait t6 unlock(balx) 200 read(balx) t7 commit 200 balx = balx – 10 t8 200 write(balx) t9 190 unlock(balx) t10 190 commit t11 190 15

Latihan Terapkan 2PL pada contoh kasus 2 & 3 (kuliah ybl.) Mencegah masalah ketergantungan yang tidak komit Mencegah masalah analisis yang tidak konsisten 16