0% menganggap dokumen ini bermanfaat (0 suara)
164 tayangan22 halaman

Concurrency Control

1. Dokumen membahas tentang konkurensi dalam DBMS dan masalah yang mungkin timbul akibat adanya akses bersamaan data oleh beberapa transaksi. 2. Teknik penguncian data digunakan untuk mengendalikan konkurensi dengan mengunci data yang diakses untuk mencegah perubahan oleh transaksi lain. 3. Penguncian dapat mencegah hilangnya modifikasi data namun dapat menimbulkan masalah deadlock.

Diunggah oleh

muhammad firza
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
164 tayangan22 halaman

Concurrency Control

1. Dokumen membahas tentang konkurensi dalam DBMS dan masalah yang mungkin timbul akibat adanya akses bersamaan data oleh beberapa transaksi. 2. Teknik penguncian data digunakan untuk mengendalikan konkurensi dengan mengunci data yang diakses untuk mencegah perubahan oleh transaksi lain. 3. Penguncian dapat mencegah hilangnya modifikasi data namun dapat menimbulkan masalah deadlock.

Diunggah oleh

muhammad firza
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

 Di dalam DBMS, beberapa pemakai atau transaksi

diperbolehkan untuk mengakses database secara bersama-


sama pada saat yang bersamaan.

 Untuk menghindari kekacauan didalam mengakses basis data


perlu suatu mekanisme pengendalian yang disebut
“Concurrency Control” atau Kontrol Konkurensi.

Tujuan

 Tujuan dari mekanisasi ini adalah untuk menjamin bahwa


transaksi-transaksi yang konkuren tidak saling mengganggu
operasinya masing-masing.

 Bila data diakses secara bersama-sama , diperlukan pengaturan


mana pemakai atau transaksi yang lebih dulu diperbolehkan
untuk mengakses data, dan transaksi lain harus menunggu
gilirannya.

1
Masalah Konkurensi

 Konkurensi adalah suatu keadaan dimana satu data digunakan


secara bersama-sama oleh beberapa transaksi atau pemakai
dan dalam waktu yang bersamaan.

 Transaksi dapat dikatakan suatu unit program dimana


pelaksanaannya dapat memelihara kekonsistenan database.

Terdapat tiga masalah Konkurensi :


1. Masalah modifikasi yang hilang
2. Masalah modifikasi sementara
3. Masalah analisis yang tidak konsisten

Didalam Konkurensi ini akan diperkenalkan dua operasi


dalam menentukan apakah transaksi harus dibatalkan atau
dilanjutkan, operasi tersebut adalah Rollback dan Commit.

Commit
Suatu operasi yang memberikan informasi ke sistem bahwa
transaksi sudah selesai, maka semua modifikasi yang dibuat oleh
transaksi tersebut sudah dilaksanakan secara penuh.

Rollback
Suatu operasi yang memberikan informasi ke sistem bahwa
ada sesuatu yang tidak diinginkan terjadi (kegagalan) yang
menyebabkan modifikasi dibatalkan.

2
Masalah modifikasi yang hilang

 Dalam memodifikasi suatu data oleh lebih satu transaksi dalam


waktu yang bersamaan sering ditemukan masalah modifikasi
yang hilang.

 Bila satu transaksi sudah memodifikasi data, kemudian data


tersebut secara bersamaan dimodifikasi kembali oleh transaksi
lainnya, maka modifikasi yang pertama kemungkinan akan
hilang.

Contoh :

 Terdapat dua transaksi, transaksi A dan transaksi B.


 Transaksi A membaca record R pada t1; transaksi B membaca
R pada t2, transaksi A memodifikasi R pada t3 dan transaksi B
memodifikasi record yang sama pada t4.
 Modifikasi dari transaksi A akan hilang karena transaksi B akan
memodifikasi record R tanpa memperhatikan modifikasi dari
transaksi A pada t3.

Transaksi A Waktu Transaksi B


Baca R t1 -
- t2 Baca R
Modifikasi R t3 -
- t4 Modifikasi R

Gambar 1

3
Masalah Modifikasi sementara
 Pada saat memodifikasi suatu data juga sering terjadi
kegagalan yang mengakibatkan transaksi harus di rollback.

 Hal ini mengakibatkan transaksi yang sudah terlanjur membaca


hasil modifikasi dari transaksi pertama akan memodifikasi nilai
yang salah, karena modifikasi dari transaksi yang pertama
mengalami kegagalan.

Contoh :

 Transaksi B memodifikasi R pada t1, transaksi A membaca R


pada t2.
 Pada t3 transaksi B dibatalkan, Maka transaksi A akan
membaca record yang salah (gambar 2).

Transaksi A Waktu Transaksi B


- t1 Modifikasi R
Baca R t2 -
- t3 ROLLBACK

Gambar 2.

4
Contoh ke dua:

Pada waktu t1 transaksi B memodifikasi R tetapi pada waktu t2


transaksi A memodifikasi R, karena transaksi B dibatalkan pada
waktu t3, maka transaksi A memodifikasi record yang salah
(gambar 3).

Transaksi A Waktu Transaksi B


- t1 Modifikasi R
Modifikasi R t2 -
- t3 ROLLBACK

Gambar 3.

5
Masalah analisis yang tidak konsisten
Pada suatu pengupdate-an nilai yang dihasilkan tidak sesuai
dangan nilai yang diharapkan.

Contoh :

 Terdapat dua transaksi A dan B.


 Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3.
 Sedangkan transaksi B menjumlahkan nilai 1 dengan 10 dan
mengurangkan nilai 3 dengan 10.
 Pada waktu t8, transaksi A membaca nilai yang salah, karena
nilai 3 sudah dimodifikasi menjadi 20 (transaksi B sudah
melakukan COMMIT sebelum transaksi A membaca nilai 3).
 Seharusnya hasil dari penjumlahan pada transaksi A adalah
120, tetapi hasil yang didapat adalah 110.

6
Nilai 1 = 40 ; Nilai 2 = 50 ; Nilai 3 = 30
Transaksi A Waktu Transaksi B

Baca Nilai 1 t1 -
Jumlah = 40

Baca Nilai 2 t2 -
Jumlah = 90

- t3 Baca Nilai 3

- t4 Modifikasi Nilai 3
30 -> 20

- t5 Baca Nilai 1

- t6 Modifikasi Nilai 1
40 -> 50

- t7 COMMIT

Baca Nilai 3 t8
Jumlah = 110
seharusnya 120

Gambar 4.

7
Teknik Penguncian (Locking)
 Teknik Penguncian adalah salah satu teknik pengontrol
konkurensi.
 Latar belakang dari teknik penguncian adalah ketika suatu
transaksi memerlukan jaminan kalau record yang diingini tidak
akan berubah secara mendadak, maka diperlukan penguncian
untuk record tersebut.

 Adapun fungsi dari penguncian adalah menjaga record tersebut


agar tidak dimodifikasi transaksi lain.

Cara kerja teknik Penguncian :

1. Terdapat dua macam kunci, kunci S (Sharing) dan kunci X


(Exclusive). Kunci S dapat digunakan bersama-sama,
sedangkan kunci X hanya dapat digunakan oleh satu
transaksi.

2. Jika transaksi A menggunakan kunci X pada record R, maka


permintaan dari transaksi B untuk suatu kunci pada R
ditunda dan B harus menunggu sampai A melepaskan kunci
tersebut.

3. Jika transaksi A menggunakan kunci S pada record R,


maka :
- Bila transaksi B ingin menggunakan kunci X, maka B
harus menunggu sampai A melepaskan kunci tersebut.
- Bila transaksi B ingin menggunakan kunci S, maka B bisa
menggunakan kunci S bersama A.

8
X S -

X N N Y

S N Y Y

- Y Y Y

4. Bila suatu transaksi hanya melakukan pembacaan saja,


secara otomatis ia memerlukan kunci S.
Bila transaksi tersebut ingin memodifikasi record, maka
secara otomatis ia memerlukan kunci X.
Bila transaksi tersebut sudah menggunakan kunci S, setelah
itu ia akan memodifikasi record tersebut, maka kunci S akan
dinaikan ke level kunci X.

5. Kunci X dan kunci S akan dilepaskan pada saat Synchpoint


(Syncronization Point). Synchpoint menyatakan akhir dari
suatu transaksi dimana database berada pada state yang
konsisten.

Bila synchpoint di tetapkan maka :


- Semua modifikasi program menjalankan operasi COMMIT
dan ROLLBACK.
- Semua kunci dari record dilepaskan.

9
Penguncian pada Masalah Modifikasi yang hilang

 Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi


A harus menunggu sampai B melepas kunci S.

 Transaksi B juga harus menunggu pada t4. Maka tidak akan ada
yang kehilangan modifikasi, tetapi terdapat masalah baru yaitu
Deadlock (Gambar 5).

Transaksi A Waktu Transaksi B

Baca R t1 -
(kunci S)
- t2 Baca R
(kunci S)
Modifikasi R t3 -
(kunci X)
tunggu
tunggu t4 Modifikasi R
tunggu (kunci X)
tunggu tunggu

Gambar 5

10
Penguncian pada masalah Modifikasi sementara

 Transaksi A pada t2 tidak dapat dijalankan langsung, karena


harus menunggu sampai B melepaskan kunci X.
 Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan
A dapat meneruskan prosesnya.

 Maka transaksi A tidak akan terjadi kesalahan dalam membaca ,


karena B sudah membatalkan transaksinya (Gambar 6).

 Contoh kedua digambarkan pada Gambar 7.

Transaksi A Waktu Transaksi B

- t1 Modifikasi R
(kunci X)
Baca R t2 -
(kunci S)
tunggu t3 ROLLBACK
tunggu Synchpoint
tunggu (kunci X dilepas)
Baca R kembali t4
(kunci S)

Gambar 6

11
Transaksi A Waktu Transaksi B

- t1 Modifikasi R
(kunci X)
Modifikasi R t2 -
(kunci X)
tunggu t3 ROLLBACK
tunggu Synchpoint
tunggu (kunci X dilepas)
Modifikasi R kembali t4
(kunci X)

Gambar 7.

Penguncian pada masalah Analisis yang tidak konsisten

 Transaksi B pada t6 tidak diijinkan untuk memodifikasi nilai 1


karena memerlukan kunci X, maka B harus menunggu sampai A
melepaskan kunci S pada nilai 1.

 Pada t7 transaksi A juga tidak dapat langsung dilaksanakan,


karena B menggunakan kunci X pada nilai 3, maka A harus
menunggu B melepaskan kunci X pada nilai 3.

 Tetapi terdapat masalah baru yaitu masalah deadlock (Gambar


8).

Deadlock

12
Kita dapat melihat bahwa metode pemguncian dapat
mengatasi masalah-masalah konkurensi. Tetapi sayangnya,
dengan menggunakan penguncian akan timbul masalah baru yaitu
masalah deadlock.

Deadlock adalah situasi dimana dua atau lebih transaksi


secara bersamaan menunggu salah satu transaksi untuk
melepaskan kunci yang diperlukan.

Jika terjadi deadlock, sistem mungkin akan mendeteksinya


atau menghentikannya. Pendeteksian deadlock melibatkan
deteksi siklus di dalam Wait-for Graph. Penghentian deadlock
melibatkan pemilihan dari satu transaksi yang mengalami
deadlock. Salah satu transaksi akan menjadi korban dan kembali
ke state awal, sedangkan transaksi yang sukses akan dapat
meneruskan prosesnya.

Beberapa sistem secara otomatis mengulang kembali


transaksi yang gagal dari pertama, dengan asumsi bahwa kondisi
yang menimbulkan deadlock tersebut tidak terulang kembali.

13
Nilai 1 = 40 ; Nilai 2 = 50 ; Nilai 3 = 30
Transaksi A Waktu Transaksi B
Baca Nilai 1 t1 -
(kunci S)
Jumlah = 40

Baca Nilai 2 t2 -
(kunci S)
Jumlah = 90

- t3 Baca Nilai 3
(kunci S)

- t4 Modifikasi Nilai 3
(kunci X)
30 -> 20

- t5 Baca Nilai 1
(kunci S)

- t6 Modifikasi Nilai 1
(kunci X)
tunggu
- t7 tunggu
tunggu
- tunggu
Baca Nilai 3 t8 tunggu
tunggu tunggu
tunggu tunggu

Gambar 8

14
Two-Phase Locking

Suatu transaksi mengikuti protokol two-phase locking jika semua


operasi penguncian mendahului operasi-operasi di dalam
transaksi.

Terdapat dua fase

1. Growing Phase
Pada saat transaksi memerlukan kunci, tetapi tidak dapat
melepaskannya

2. Shrinking Phase
Pada saat transaksi melepaskan kunci, tetapi tidak dapat
memperolehnya

Aturan 2PL
 Suatu transaksi harus meminta suatu kunci untuk suatu record
sebelum mengolah record tsb.
Jenis kunci dapat
 Write_lock : kunci yang dapat digunakan baik untuk
menulis atau membaca suatu record
 Read_lock : kunci yang dapat digunakan untuk
membaca suatu record
 Pada saat transaksi melepaskan suatu kunci, ia tidak akan
memerlukan kunci yang baru

15
Masalah Modifikasi Yang Hilang

TA Waktu TB Nilai
t1 Read (x) 100
Read (x) t2 X = x + 100 100
X = x – 10 t3 Write (x) 200
Write (x) t4 commit 90
Commit t5

Gambar 9

Masalah Modifikasi Sementara

TA Waktu TB Nilai
t1 100
t2 read (x) 100
t3 x= x+ 100 200
read (x) t4 write (x) 200
X = x – 10 t5 rollback 100
Write (x) t6 190
Commit 190
Gambar 10

16
Masalah Analisis Yang Tidak konsisten

TA Waktu TB Nilai Total


X Y Z
t1 Sum =O 100 50 25 0
read (x) t2 Read (x) 100 50 25 0
x= x – t3 Sum = sum 100 50 25 100
10 +x
write (x) t4 Read (y) 90 50 25 100
read (z) t5 Sum = sum 90 50 25 150
+y
z= z + t6 90 50 25 150
10
write (z) t7 90 50 35 150
commit t8 Read (z) 90 50 35 150
t9 Sum = sum 90 50 35 185
+z
t10 commit 90 50 35 185

Gambar 11

17
Pencegahan Masalah Modifikasi Yang Hilang (2PL)

TA Waktu TB Nilai
t1 Write_lock (x)
Write_lock (x) t2 read (x) 100
WAIT t3 x= x+ 100 100
WAIT t4 Write (x) 200
WAIT t5 Unlock (x) 200
WAIT t6 commit 200
read (x) t7 200
x= x-10 t8 200
Write (x) t9 190
Unlock (x) t10 190
commit t11 190
Gambar 12

18
Pencegahan Masalah Modifikasi Sementara (2PL)

TA Waktu TB Nilai

t1 write_lock (x) 100


t2 read (x) 100
t3 x= x+ 100 100
write_lock (x) t4 Write (x) 200
WAIT t5 Unlock (x) 200
WAIT t6 rollback 100
read (x) t7 100
x= x- 10 t8 100
Write (x) t9 90
Unlock (x) t10 90
commit t11 90

Gambar 13

19
Pencegahan Masalah Analisis Yang Tidak konsisten (2PL)

TA Waktu TB Nilai Total


X Y Z
t1 Sum =O 100 50 25 0
Write_lock t2 100 50 25 0
(x)
read (x) t3 read _lock 100 50 25 0
(x)
X = x-10 t4 WAIT 100 50 25 0
write (x) t5 WAIT 90 50 25 0
write_lock t6 WAIT 90 50 25 0
(z)
read (z) t7 WAIT 90 50 25 0
z = z+10 t8 WAIT 90 50 25 0
write (z) t9 WAIT 90 50 35 0
unlock t10 WAIT 90 50 35 0
(x,z)
commit t11 WAIT 90 50 35 0
t12 read (x) 90 50 35 0
t13 Sum = sum 90 50 35 90
+x
t14 read 90 50 35 90
_lock(y)
t15 read (y) 90 50 35 90
t16 Sum = 90 50 35 90
sum+y
t17 read_lock 90 50 35 140
(z)
t18 read (z) 90 50 35 140

20
t19 Sum = sum 90 50 35 175
+z
t20 Unlock (x, y, 90 50 35 175
z)
t21 commit 90 50 35 175
Gambar 14

Cascading Rollback

Waktu TA TB TC
t1 write_lock (x)
t2 read (x)
t3 read_lock (y)
t4 X=y+x
t5 Write (x)
t6 Unlock (x)
t7 : write_lock (x)
t8 : read (x)
t9 : X = x +100
t10 : write (x)
t11 : unlock (x)
t12 : :
t13 rollback :
t14 rollback
t15 read_lock (y)
t16 :
t17 rollback
Gambar 15

21
Deadlock

Waktu TA TB
t1 write_lock(x)
t2 read (x) write_lock (y)
t3 x = x -1 read (y)
t4 Write (x) y = y +100
t5 Write_lock (y) Write (y)
t6 WAIT Write_lock(x)
t7 WAIT WAIT
t8 WAIT WAIT
t9 WAIT
Gambar 16

22

Anda mungkin juga menyukai