Concurrency Control DBMS.

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
Tim Teaching Grant Mata Kuliah Sistem Operasi
6 Deadlock.
Sistem Manajemen Basis Data Teknik Konkurensi
Arief Cahyo S Rachmad Wahyudi S Abdul Qodir Jailani M. Choirur Rozi Rahmat Aidil FR
Presentasi Keamanan Basis Data “Transaction Management”
Deadlock.
Deadlock.
DATABASE CONTROL.
CONCURENCY CONTROL DISTRIBUTED DATABASE. M AIN TOPICS Transaction managements Centralized database Distributed database Consistency control Centralized.
Sinkronisasi dan Deadlock Proses
PENGONTROLAN KONKURENSI & RECOVERY
Lecture 5 Nonblocking I/O and Multiplexing Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
Deadlock.
TRANSAKSI DAN PENGENDALIAN PERSAINGAN
Sistem Operasi 7 “Deadlock”.
WaterfallPrototyping RAD Incremental Prototyping Pendekatan SDLC.
Presented By : Group 2. A solution of an equation in two variables of the form. Ax + By = C and Ax + By + C = 0 A and B are not both zero, is an ordered.
PERTEMUAN 8 Teknik recovery.
Manajemen Transaksi (1)
Transaksi Konsep Transaksi Status transaksi
BAB 1 Pengenalan Database dan DBMS
DEADLOCK. Pokok Bahasan  Pengertian & Latar Belakang Deadlock  Penyebab Deadlock  Strategi untuk mengatasi Deadlock  Kesimpulan.
TRANSACTION MANAGEMENT
Pengendalian Konkurensi
1 concurrency. Concurrency Sejumlah transaksi diperkenankan untuk mengakses data yang sama dalam aktu yang bersamaan.
1 Pertemuan > Pengendalian Konkurensi Matakuliah: >/ > Tahun: > Versi: >
1 Pertemuan 15 Game Playing Matakuliah: T0264/Intelijensia Semu Tahun: Juli 2006 Versi: 2/1.
1 Pertemuan 5 Komunikasi antar Proses / Interprocess Communication (IPC) Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5 OFFCLASS01.
Deadlock Edi Sugiarto, S.Kom.
DEADLOCK.
Serializabilitas Two Phase Locking
Wahyu nurjaya wk, st., m.kom.
Manajemen Transaksi #5 D. SINAGA, M.KOM.
Pengendalian Konkurensi
KOMUNIKASI DATA Materi Pertemuan 3.
Database Management Systems Bab 9 Overview Manajemen Transaksi (Chap
DEADLOCK.
Deadlock.
Pertemuan 13 LINGKUNGAN DATABASE.
Backup & Recovery.
TRANSACTION MANAGEMENT
Deadlock.
VII. Deadlock dan Starvation
SINKRONISASI & DEADLOCK
Sinkronisasi dan Deadlock
Deadlock.
KOMUNIKASI DATA S. Indriani L, M.T
Pengujian Hipotesis (I) Pertemuan 11
Sistem Manajemen Basis Data
Pertemuan <<10>> Transaksi Manajemen
PENGENDALIAN DEADLOCK
Serializabilitas Two Phase Locking
Sistem Operasi: Deadlock
Konkurensi (Lanjutan)
Transaksi Konsep Transaksi Status transaksi
Koordinasi Antar Proses DI DALAM SISTEM TERDISTRIBUSI
Master data Management
8 Deadlock.
Database User Account.
Pemulihan Basis Data D. Sinaga, M.Kom.
Manajemen Transaksi D. SINAGA, M.KOM.
Concurrency Control DBMS.
Tim Teaching Grant Mata Kuliah Sistem Operasi
Tim Teaching Grant Mata Kuliah Sistem Operasi
Lingkungan Basis Data.
Tim Teaching Grant Mata Kuliah Sistem Operasi
Draw a picture that shows where the knife, fork, spoon, and napkin are placed in a table setting.
Transcript presentasi:

Concurrency Control DBMS

IKHTISAR Latar Belakang Concurrency Control Konsep Concurrency Control Locking

Concurrency Control Latar Belakang Tujuan utama dalam pengembangan database adalah membuat banyak pengguna bisa mengakses data secara bersamaan. Pengaksesan data ini tidak bermasalah jika semua  pengguna hanya membaca data dan mereka tidak mengganggu satu sama lain Tapi ketika dua pengguna atau lebih mengakses database yang sama secara bersamaan dan salah satu melakukan perubahan terhadap data, maka hal ini akan dapat menimbulkan adanya data yang tidak konsisten (inconsistency data)

Concurrency Control Konsep Untuk mengatasi adanya kemungkinan inconsistency data, maka dibutuhkan adanya suatu mekanisme yang mengatur jalannya transaksi pengaksesan data yang sama tersebut, Mekanisme ini dikenal dengan istilah concurrency control Concurrency control  adalah  proses pengaturan operasi–operasi dalam banyak transaksi yang berjalan secara simultan  pada database tanpa mengganggu operasi pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten

Concurrency Control Teknik Ada dua teknik concurrency control utama yang mengijinkan transaksi untuk berjalan dengan aman dalam subjek paralel untuk constraint tertentu, yaitu locking dan metode timestamp tertentu. Locking dan timestamping adalah pendekatan konservatif karena mereka menyebabkan transaksi ditunda dalam kasus mereka konflik dengan transaksi lain pada beberapa waktu di masa yang akan datang. Metode optimistik, didasarkan pada premis bahwa konflik itu jarang ditemui, jadi mereka mengijinkan transaksi untuk lanjut tidak tersinkronisasi dan hanya mengecek konflik di bagian akhir, ketika transaksi melakukan operasi commit

Locking Locking adalah sebuah prosedur yang digunakan untuk mengendalikan akses bersamaan ke data. Ketika sebuah transaksi sedang mengakses database, sebuah lock mungkin menolak akses ke transaksi lain untuk mencegah hasil yang salah. Ada dua macam lock, yaitu shared lock dan exclusive lock yang harus digunakan sebelum melakukan akses membaca ataupun menulis terhadap database. Penggunaan lock ini adalah untuk menjaga konsistensi data didalam database.

Lock-Based Protocols Merupakan suatu cara yang digunakan untuk tetap menjaga serializability pada data yang diakses oleh lebih dari suatu transaksi. Yaitu, apabila satu transaksi mengakses sebuah item data maka tidak akan ada transaksi yang dapat memodifikasi data tersebut. Ada dua jenis mode penguncian dasar yang digunakan dalam mekanisme ini yaitu: Bersama (Shared). Tunggal (Exclusive)

Lock-Based Protocols Bersama (Shared). Jika sebuah transaksi Ti  dapat melakukan penguncian dengan mode ini (dilambangkan dengan S) terhadap item data Q, maka Ti  dapat membaca, tapi tidak dapat mengubah nilai Q tersebut, Lock-S(Q) Tunggal (Exclusive). Jika sebuah transaksi Ti  dapat melakukan penguncian dengan mode ini (dilambangkan dengan X) terhadap item data Q, maka Ti  dapat membaca maupun mengubah nilai tersebut Lock-X(Q)

Lock-Based Protocols Hal yang harus diperhatikan : Setiap transaksi harus meminta lock apabila akan melakukan operasi/mengakses  terhadap suatu data. Misalkan data  Q, mode-lock yang diterapkan terhadap data Q harus sesuai dengan operasi yang akan dilakukan. Transaksi meminta lock terhadap suatu data, kepada concurrency control manager. Operasi terhadap Q dapat dilakukan transaksi T apabila concurrency control manager memberikan grant (hak istimewa) lock yang diminta

Lock-Based Protocols Contoh suatu transaksi yg menjalankan locking: T2: lock-S(A); read (A); unlock(A); lock-S(B); read (B); unlock(B); display(A+B) Locking seperti di atas tidak cukup untuk menjamin serializability - jika A dan B ter-update diantara pembacaan A dan B, jumlah yang ditampilkan akan salah. Protokol penguncian adalah seperangkat aturan yg diikuti oleh semua transaksi yg meminta dan melepaskan Lock. Protokol penguncian melakukan pembatasan pada set schedules.

Kelemahan pada Lock-Based Protocols Schedule parsial T3 atau T4 dapat melakukan – mengeksekusi lock-S(B) menyebabkan T4 menunggu T3 untuk melepaskan lock pada B, ketika mengeksekusi lock-X (A) menyebabkan T3 menunggu T4 untuk melepaskan lock pada A Situasi tersebut disebut deadlock Untuk menangani deadlock satu dari T3 atau T4 harus melakukan roll back, sehingga lock tsb bisa dilepaskan

Two-phase locking protokol yang menjamin jadwal conflict-serializable Protocol ini menginginkan bahwa setiap transaksi yang akan menjalankan penguncian dan melepaskan penguncian harus melalui dua fase atau tahapan, yaitu: Fase Pertumbuhan (Growing Phase). Sebuah transaksi dapat melakukan sejumlah penguncian tetapi belum satupun melepaskan pengunciannya. Fase Pelepasan (Shrinking Phase). Sebuah transaksi dapat melepaskan sejumlah penguncian , tetapi belum melakukan penguncian yang baru.

Two-phase locking Pada awalnya, sebuah transaksi akan berada dalam fase pertumbuhan. Transaksi tersebut akan melakukan penguncian sebanyak yang dibutuhkan. Ketika transaksi mulai melepaskan sebuah penguncian, ia akan mulai memasuki fase pelepasan, tanpa ada permintaan penguncian berikutnya

Two-phase locking Two-phase locking tdk menjamin bebas dari deadlocks Cascading roll-back mungkin terjadi pada two-phase locking. Untuk menghindari hal ini, digunakan protokol dimodifikasi yg disebut strict two-phase locking. Dimana suatu transaksi harus memegang semua kunci eksklusif sampai transaksi tsb melakukan commit/Abort. Rigorous two-phase locking bahkan lebih ketat: di sini semua kunci dipegang sampai pelaksanaan commit/abort. Dalam protokol ini transaksi dapat dibuat serialized dalam urutan di mana mereka melaksanakan Commit

Implementasi Locking A lock manager can be implemented as a separate process to which transactions send lock and unlock requests The lock manager replies to a lock request by sending a lock grant messages (or a message asking the transaction to roll back, in case of a deadlock) The requesting transaction waits until its request is answered The lock manager maintains a data-structure called a lock table to record granted locks and pending requests The lock table is usually implemented as an in-memory hash table indexed on the name of the data item being locked

Lock Table Black rectangles indicate granted locks, white ones indicate waiting requests Lock table also records the type of lock granted or requested New request is added to the end of the queue of requests for the data item, and granted if it is compatible with all earlier locks Unlock requests result in the request being deleted, and later requests are checked to see if they can now be granted If transaction aborts, all waiting or granted requests of the transaction are deleted lock manager may keep a list of locks held by each transaction, to implement this efficiently

Graph-Based Protocols Graph-based protocols are an alternative to two-phase locking Impose a partial ordering  on the set D = {d1, d2 ,..., dh} of all data items. If di  dj then any transaction accessing both di and dj must access di before accessing dj. Implies that the set D may now be viewed as a directed acyclic graph, called a database graph. The tree-protocol is a simple kind of graph protocol.

Tree Protocol Only exclusive locks are allowed. The first lock by Ti may be on any data item. Subsequently, a data Q can be locked by Ti only if the parent of Q is currently locked by Ti. Data items may be unlocked at any time. A data item that has been locked and unlocked by Ti cannot subsequently be relocked by Ti

Graph-Based Protocols The tree protocol ensures conflict serializability as well as freedom from deadlock. Unlocking may occur earlier in the tree-locking protocol than in the two-phase locking protocol. shorter waiting times, and increase in concurrency protocol is deadlock-free, no rollbacks are required Drawbacks Protocol does not guarantee recoverability or cascade freedom Need to introduce commit dependencies to ensure recoverability Transactions may have to lock data items that they do not access. increased locking overhead, and additional waiting time potential decrease in concurrency Schedules not possible under two-phase locking are possible under tree protocol, and vice versa.

Dead Lock Deadlock adalah jalan buntu yang dapat terjadi ketika dua atau lebih transaksi masing-masing menunggu lock yang sedang dipegang oleh transaksi lainnya untuk dilepas. Cara untuk menghancurkan deadlock, yaitu abort satu atau lebih transaksi. Ada tiga cara untuk menangani deadlock, yaitu timeout, deadlock prevention dan deadlock detection and recovery.

Deadlock Handling Consider the following two transactions: T1: write (X) T2: write(Y) write(Y) write(X) Schedule with deadlock T1 T2 lock-X on X write (X) lock-X on Y write (X) wait for lock-X on X wait for lock-X on Y

Penanganan Dead Lock Timeout Pendekatan sederhana pada pencegahan deadlock adalah berdasarkan lock timeout. Dengan pendekatan ini, sebuah transaksi yang meminta sebuah lock akan menunggu hanya sampai periode waktu tertentu yang didefinisikan sistem

Penanganan Dead Lock Deadlock Prevention protocols memastikan bahwa sistem tdk pernah memasuki status deadlock Beberap strategi: Mengharuskan setiap transaksi mengunci semua item data sebelum dimulai eksekusi (predeclaration). Memaksakan pengurutan parsial dari semua item data dan mengharuskan transaksi dapat mengunci item data hanya dalam urutan yang ditentukan oleh urutan parsial (graph-based protocol).

Deadlock Prevention Dengan memesan transaksi menggunakan timestamp transaksi. Dua algoritma telah ditemukan oleh Rosenkrantz. Algoritma pertama, Wait-Die, mengijinkan hanya transaksi yang lebih tua untuk menunggu yang lebih muda, jika tidak transaksi dibatalkan (die/mati) dan restart dengan timestamp yang sama, sehingga lama kelamaan transaksi tersebut akan menjadi transaksi aktif tertua dan tidak akan mati. Algoritma kedua, Wound-Wait, menggunakan pendekatan simetrikal. Hanya transaksi yang lebih muda yang dapat menunggu untuk yang lebih tua. Jika transaksi yang lebih tua meminta lock yang dipegang oleh transaksi yang lebih muda, transaksi yang lebih muda digagalkan

Penanganan Dead Lock Deadlock Detection Deadlock detection biasanya ditangani oleh konstruksi wait-for graph (WFG) yang menunjukkan ketergantungan transaksi, yaitu transaksi Ti tergantung pada Tj jika transaksi Tj memegang lock pada sebuah item data yang ditunggu oleh Ti. WFG adalah sebuah directed graph G = (N, E ) yang terdiri dari satu set node N dan satu set directed edge E, yang dikonstruksi sebagai berikut Buat sebuah node untuk setiap transaksi. Buat sebuah directed edge Ti → Tj , jika transaksi Ti menunggu untuk melakukan lock sebuah item yang sedang di-lock oleh T

Deadlock Detection Wait-for graph with a cycle The system is in a deadlock state if and only if the wait-for graph has a cycle. Must invoke a deadlock-detection algorithm periodically to look for cycles Wait-for graph without a cycle Wait-for graph with a cycle

Deadlock Recovery When deadlock is detected : Some transaction will have to rolled back (made a victim) to break deadlock. Select that transaction as victim that will incur minimum cost. Rollback -- determine how far to roll back transaction Total rollback: Abort the transaction and then restart it. More effective to roll back transaction only as far as necessary to break deadlock.