Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Demo Lock Mechanism dan Deadlock
1. DEMO TUGAS AKHIR SISTEM MANAJEMEN BASISDATA
TAHUN AJARAN 2017/2018
LOCK MECHANISM DAN DEADLOCK
Disusun Oleh:
Nama/NIM : Arieska Nur W/14523169
Nama/NIM : Denny Ardiansyah/14523182
Nama/NIM : Muhammad Revaldy Putrayana/14523196
Nama/NIM : Logistyo Yulistianto/14523202
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS ISLAM INDONESIA
2017
2. Lock Mechanism
Suatu penguncian pada database yang digunakan saat terjadi pengaksesan database oleh user
secara bersamaan untuk menjaga record agar tidak dimodifikasi oleh transaksi lain.
Lock memiliki 2 cara kerja:
- Exclusive Locked = Write lock. Kunci ini memungkinkan pengguna dan para pengguna
konkuren yang lain dapat membaca record dan mengubahnya.
- Share Locked = Read lock. Kunci ini memungkinkan penggua dan para pengguna
konkuren yang lain dapat membaca record tetapi tidak dapat mengubahnya.
Terdapat 2 metode lock yaitu table level lock dan row level lock, pada percobaan kali ini
menggunakan row level lock.
Row level lock adalah metode penguncian yang bekerja dengan cara mengunci row beserta
table dimana row tersebut berada sehingga mencegah perubahan atau penghapusan selama
suatu transaksi yang mereferensi row tersebut sedang berjalan.
Langkah-langkah row level lock:
1. Menampilkan semua data yang ada pada table lagu
2. Melakukan update data dari table lagu dengan mengubah judul lagu “Monokrom”
dimana id adalah 1 pada user satu. Lalu menampilkan data pada user dua dan belum
terjadi perubahan apapun karena pada user satu belum dilakukan perintah Commit.
3. 3. Lock Mechanism update dilakukan dengan megubah judul lagu terpesona menjadi
‘Nada Cinta’ dimana id yang akan di ubah adalah 2, maka data akan terupdate.
4. User satu memiliki X-Lock, jika belum melakukan Commit maka user dua akan
menunggu sampai X-Lock dilepaskan, dan tidak bisa melakukan update sampai user
satu melepaskan X-Lock.
5. User satu melepaskan X-Lock atau melakukan Commit.
6. Maka user 2 akan berhasil melakukan update yang mengubah judul lagu nada cinta
menjadi ‘Anganku Anganmu’.
4. 7. Lock Mechanism Delete dilakukan dengan menghapus penyanyi yang bernama ‘GAC’,
maka data akan terhapus.
8. User satu memiliki X-Lock, jika belum melakukan Commit maka user dua akan
menunggu sampai X-Lock dilepaskan, dan tidak bisa melakukan update sampai user
satu melepaskan X-Lock.
9. User satu melepaskan X-Lock atau melakukan Commit.
10. User 2 gagal melakukan update karena user 1 telah berhasil menghapus penyanyi yang
bernama ‘GAC’.
5. Deadlock - Oracle
Situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu
Lock dilepas sebelum di mulai.
Langkah-langkah Deadlock:
1. User satu melakukan update pada tabel lagu yang akan mengubah judul lagu dari id 1
menjadi ‘Manusia Kuat’, dan akan memegang X-Lock untuk Row nilai 1.
2. User dua melakukan update pada tabel lagu yang akan mengubah judul lagu dari id 2
menjadi ‘Terpesona’, dan akan memegang X-Lock untuk Row nilai 2.
3. User satu kembali melakukan update pada tabel lagu yang akan mengubah judul lagu
dari id 2 menjadi ‘Anganku Anganmu’, dan akan menunggu user dua melapas X-Lock
untuk nilai 2. Ini yang dinamakan deadlock karena situasi dimana dua atau lebih
transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum
memulai.
4. User dua melakukan update pada tabel lagu yang akan mengubah judul lagu dari id 1
menjadi ‘Tukar Jiwa’, dan akan menunggu user satu melapas X-Lock untuk nilai 1.
6. Deadlock - MySQL
Langkah-langkah Deadlock:
1. User satu melakukan update pada tabel lagu yang akan mengubah judul lagu dari
penyanyi Tulus menjadi ‘Ruang Sendiri’, dan akan memegang X-Lock untuk Row nilai
1.
2. User dua melakukan update pada tabel lagu yang akan mengubah judul lagu dari
penyanyi Isyana menjadi ‘Anganku Anganmu’, dan akan memegang X-Lock untuk
Row nilai 2.
3. User satu kembali melakukan update pada tabel lagu yang akan mengubah judul lagu
dari penyanyi Isyana menjadi ‘Terpesona’, dan akan menunggu user dua melapas X-
Lock untuk nilai 2.
4. User dua melakukan update pada tabel lagu yang akan mengubah id dari penyanyi
Tulus menjadi ‘8’, dan akan menunggu user satu melapas X-Lock untuk nilai 1.
Kesimpulan:
Setelah melakukan percobaan Deadlock pada Oracle dan MySQL, terdapat perbedaan yaitu
ketika user 1 melakukan update dan belum melakukan commit dan pada waktu yang bersamaan
user 2 melakukan update dan belum melakukan update maka akan terjadi Deadlock.
Sedangkan pada MySQL, Update data tidak berhasil dilakukan, namun pada MySQL tidak ada
informasi Deadlock yang ditampilkan oleh sistem.