Ada 3 Masalah yg disebabkan oleh Concurancy :
1. Masalah Kehilangan modifikasi (Lost Update Problem)
Masalah ini timbul jika 2 transaksi mengakses item database yg sama yg mengakibatkan Nilai dari database tersebut menjadi tidak benar
Contoh Masalah Kehilangan Modifikasi:
Sebuah perusahaan yg melayani Penerbangan memiliki 24 Kursi Kelas Eksekutif,yg ditiap - tiap kursi memiliki nomor urut Kursi dari A1-A24.Perusahaan ini bekerjasama dengan Agen Travelling,Yaitu Agen WK_TOUR dan NK_TOUR.Dan suatu ketika ,kedua agen ini memesan Kursi untuk pelayanan traveling kepada Perusahaan penerbangan tersebut pada hari yang sama dan dalam waktu yg berbeda MELAUI Ticketing Online,sehingga terjadilah Concurancy.Berikut tablel transaksi kedua agen tersebut:
Waktu
|
Transaksi WK_TOUR
|
Transaksi NK_TOUR
|
Sisa Kursi
|
TI
|
Read Kursi
|
………………………….
|
(A1-A24)
|
T2
|
…………………………
|
Read Kursi
|
(A1-A24)
|
T3
|
PSN=A1-A3
|
…………………………
|
(A1-A24)
|
T4
|
Write Kursi
|
………………………..
|
(A4-A24)
|
T5
|
………………………
|
PSN=A2-A4
|
(A1-A24)
|
T6
|
………………………..
|
Write Kursi
|
A1,(A5-A24)
|
Penjelasan:
Pada waktu T1,WK_TOUR melihat sisa kursi yg tersedia.
T2,NK_TOUR melihat sisa kursi yg tersedia.
T3,WK_TOUR melakukan modifikasi dengan memesan kursi
no.1-3.
T4, Lalu tercatat bahwa pada sisa kursi yg tersedia adalah A4-
A24
T5, Karena pada saat melihat diwaktu T2,NK_TOUR hanya
mengetahui bahwa jumlah kursi masih tetap (belum ada yg
memesan),maka ia memodifikasi dengan memesan kursi (A2-A4)
T6, Maka tercatatlah sisa kursi yg tersisa adalah (A1,(A5-
A24)),padahal seharusnya NK_TOUR tidak dapat memesan
kursi yg telah dipesan oleh WK_TOUR,dan hanya bias
memesan kursi A4.Dan sisa akhir kursi yg tersedia adalah
A5- A24.Agen WK_TOUR beranggapan bahawa setelah ia
melakukan transaksi,maka sisa kursi yg tersedia adalah dari
A4-A24,sedangkan NK_TOUR beranggapan bahwa sisa akhir
kursi yg tersedia adalah A1,A5-A24.Padahal sisa akhir kursi
sebenarnya yg tersedia adalah
A5- A24.Kesalahan inilah yg disebut terjadi Concurancy
masalah Kehilangan Modifikasi.
Pemecahan Masalah
Cara untuk menghindari terjadinya kesalahn Concurancy adalah dengan menggunakan Locking.Locking adalah salah satu mekanisme pengontrol Concurancy.Locking dapat diasumsikan terdapat 2 buah kunci,yaitu:
a)Kunci X yg bersifat eksklusif
b)Kunci S yg bersifat dapat digunakan bersama-sama
Syarat Penggunaan Kunci:
1)Jika Kunci X sedang digunakan pada transaksi A,maka Transaksi
B harus menunggu sampai transaksi A melepaskan Kunci
X.Pelepasan Kunci X menggunakan perintah SYN(Synchpoint) yg
menyatakan akhir dari transaksi.Bila Synchpoint telah
ditetapkan maka dapat di Commit(Telah selesai proses),dan
transaksi lain dapat menggunakan Kunci X.Kunci X hanya dapat
melakukan proses Modfikasi saja.
2)Jika transaksi A sedang menggunakan Kunci S,maka Transaksi B
menunggu hingga Transaksi A melepas Kunci S atau juga Kunci
B dapat menggunakanKunci S Bersama -sama dengan Kunci
A.Kunci S tidak dapat melakukan Modifikasi.
Contoh Pemecahan Masalah Kehilangan Modifikasi Sementara:
Waktu
|
Transaksi WK_TOUR
|
Transaksi NK_TOUR
|
Sisa Kursi
|
TI
|
Read Kursi
|
………………………….
|
(A1-A24)
|
T2
|
Kunci S
|
………………………….
|
(A1-A24)
|
T3
|
………………………….
|
Read Kursi
|
(A1-A24)
|
T4
|
Kunci S
|
(A1-A24)
| |
T5
|
PSN=A1-A3
|
………………………….
|
(A1-A24)
|
T6
|
Kunci X
|
………………………….
|
(A1-A24)
|
T7
|
Write Kursi
|
………………………….
|
(A4-A24)
|
T8
|
SYN
|
………………………….
|
(A4-A24)
|
T9
|
………………………….
|
PSN=A2-A4
|
(A4-A24)
|
T10
|
………………………….
|
Kunci X
|
(A4-A24)
|
T11
|
………………………….
|
Write Kursi
|
(A5-A24)
|
T12
|
………………………….
|
SYN
|
(A5-A24)
|
Penjelasan :
T1,WK_TOUR melihat sisa kursi yg tersedia
T2,Pemasangan Kunci S oleh WK_TOUR
T3,NK_TOUR melihat sisa kursi yg tersedia
T4, Pemasangan Kunci S oleh NK_TOUR
T5,WK_TOUR melakukan modifikasi dengan memesan kursi
no.1-3.
T6,Pemasangan Kunci X oleh WK_TOUR
T7,Lalu tercatat bahwa pada sisa kursi yg tersedia adalah A4-
A24
T8,Pelepasan Kunci X dengan perintah SYN
T9,Karena pada saat melihat diwaktu T2,NK_TOUR hanya
mengetahui bahwa jumlah kursi masih tetap
(belum ada yg memesan),maka ia memodifikasi dengan memesan
kursi (A2-A4)
T10, Pemasangan Kunci X oleh NK_TOUR
T11, Lalu tercatat bahwa pada sisa kursi yg tersedia adalah
(A5- A24),dari sinilah NK_TOUR tahu bahwa A1 telah ada yg
Memesan.Dan ia hanya mendapat kursi A4 saja.
T12,Pelepasan Kunci X oleh NK_TOUR
Tidak ada komentar:
Posting Komentar