A. CONCURRENCY
Concurrency adalah sebuah mekanisme pada system basis data yang
mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama
tanpa adanya gangguan. Pada umumnya terdapat 3 masalah utama pada concurrency:
- Lost update problem, ketika dua user mengupdate dua buah data yang sama
Contoh :
Satuan Waktu
|
Transaksi A
|
Transaksi B
|
1
|
Retrieve
r
|
–
|
2
|
–
|
Retrieve r
|
3
|
Update
r
|
–
|
4
|
–
|
Update r
|
Dari
contoh diatas, maka transaksi A tidak akan dianggap dan data update pada
transaksi A akan di overwrite oleh transaksi B Ini akan menimbulkan lost update
problem pada transaksi A.
- Uncommited dependency problem, ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut
Contoh :
Satuan Waktu
|
Transaksi A
|
Transaksi B
|
1
|
–
|
Update
r
|
2
|
Update r
|
–
|
3
|
–
|
Rollback
|
Dari
contoh diatas, maka transaksi A akan menerima data yang salah karena pada
transaksi B saat di update terjadi kesalahan kemudian di rollback.
- Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut
Contoh :
Satuan Waktu
|
Transaksi A
|
Transaksi B
|
1
|
Retrieve
r1
|
–
|
2
|
Retrieve r2
|
–
|
3
|
–
|
Update
r1
|
4
|
–
|
Commit
|
5
|
Update
r3 = r1 + r2
|
|
Dari
contoh diatas, maka transaksi A akan menghasilkan data yang salah dan tidak
sesuai database karena saat analisis di transaksi A terjadi update data pada
salah satu datanya.
Untuk
menangani masalah-masalah tersebut, dilakukan proses locking, jika sebuah
transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia
bisa meminta lock. Ada dua jenis lock yaitu :
·
Exclusive Lock (Xlock)
-> write lock
·
Shared Lock (Slock) ->
read lock
Bagaimana
cara kerjanya?
·
Jika transaksi A memegang
Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama
harus diabaikan.
·
Jika transaksi A memegang
Slock pada record R maka :
a. Permintaan Xlock transaksi lain pada R ditolak
b. Permintaan Slock transaksi lain pada R diterima
Referensi
- Softfile DIKTAT KULIAH IK 330 - BASIS DATA
Dosen: Budi Laksono Putro, S.Si, MT
0 komentar:
Posting Komentar