3.Masalah Analaisa yg tidak Konsisten
Masalah ini timbul jika sebuah transaksi yg kedua mengupdate beberapa nilai tersebut selama eksekusi transaksi pertama.
Contoh Masalah Analisa yg tidak Konsisten:
Permasalahan masih sama dengan Masalah Concurancy Bag.I,Hanya saja Jumlah Kursinya berbeda.Yaitu :
A=A1-A20
B=B10-B24
C=C20-C24
Berikut Tabel Transaksinya:
Transaksi WK_TOUR
|
Waktu
|
Transaksi NK_TOUR
|
Baca Kursi:
A=A1-A20
B=B10-B24
C=C20-C24
|
T1
|
………………………………..
|
PSN=A(A5-A10)
Sisa=A((A1-A4),(A11-A20))
|
T2
|
…………………………………..
|
PSN=B(10-B20)
Sisa=B(21-B24)
|
T3
|
…………………………………..
|
……………………………………..
|
T4
|
Baca Kursi
A=(A1-A4), (A11-A20)
B=(B21-B24)
C=(C20-C24)
|
……………………………….
|
T5
|
PSN=A(A15-A20)
Sisa=A((A1-A4),(A11-A14))
|
………………………….
|
T6
|
PSN=C(C20-C22)
Sisa=C(C23-C24)
|
………………………………….
|
T7
|
Commit
|
Baca Kursi
A=(A1-A4),(11-A14)
B=(B21-B24)
C=(C23-C24)
|
T8
|
…………………………..
|
PSN=C(C23-C24)
Sisa=C Habis
|
T9
|
……………………………………..
|
Commit
|
T10
|
……………………………………
|
Penjelasan:
Pada waktu T1,WK_TOUR melihat sisa kursi yg tersedia
T2, dan T3 ,WK_TOUR melakukan pesanan terhadap kursi A&B
T4,NK_TOUR membaca sisa kursi yg tersedia yg telah
dimodifikasi oleh NK_TOUR
T5&T6, NK_TOUR melakukan pesanan terhadap kursi A&C
T7,NK_TOUR menyelesaikan Transaksi pemesanan
T8, WK_TOUR melihat sisa kursi yg tersedia tidak sesuai dengan
apa yg telah ia pesan,dari sinilah ia tahu bahwa sisa kursi yg
tersedia telah dirmodifikasi oleh transaksi lain.
T9, WK_TOUR melakukan pesanan terhadap kursi C
T10, WK_TOUR menyelesaikan Transaksi pemesanan
Pemecahan Masalah Analisa yg tidak Konsisten:
Transaksi WK_TOUR
|
Waktu
|
Transaksi NK_TOUR
|
Baca Kursi (Kunci S):
A=A1-A20
B=B10-B24
C=C20-C24
|
T1
|
………………………………..
|
PSN=A(A5-A10)
Kunci X
Sisa=A((A1-A4),(A11-A20))
|
T2
|
…………………………………..
|
PSN=B(10-B20)
Kunci X
Sisa=B(21-B24)
|
T3
|
…………………………………..
|
…………………………………..
|
T4
|
Baca Kursi (Kunci S)
A=(A1-A4), (A11-A20)
B=(B21-B24)
C=(C20-C24)
|
……………………………………
|
T5
|
PSN=A(A15-A20)
Kunci X
Menunggu
|
SYN A
|
T6
|
…………………………………..
|
………………………………………..
|
T7
|
PSN=A(A15-A20)
Sisa=A((A1-A4),(A11-A14))
|
…………………………………………..
|
T8
|
SYN A
|
………………………………………
|
T9
|
PSN=C(C20-C22)
Kunci X
Sisa=C(C23-C24)
|
Baca Kursi (Kunci S)
A=(A1-A4),(11-A14)
B=(B21-B24)
C=(C23-C24)
|
T10
|
………………………………….
|
PSN=C(C26-C24)
Kunci X
Menunggu
|
T11
|
…………………………………
|
……………………………………
|
T12
|
SYN C
|
…………………………………..
|
T13
|
Commit
|
PSN=C(C23-C24)
Sisa=C Habis
|
T14
|
……………………………………
|
Penjelasan:
Pada waktu T1,WK_TOUR melihat sisa kursi yg tersedia dengan memasang Kunci S
T2, WK_TOUR melakukan pesanan terhadap kursi A dengan
memasang kunci X
T3 ,WK_TOUR melakukan pesanan terhadap kursi B dengan
memasang kunci X
T4,NK_TOUR membaca sisa kursi yg tersedia yg telah
dimodifikasi oleh NK_TOUR dengan memasang kunci S
T5, NK_TOUR melakukan pesanan terhadap kursi A dengan
memasang kunci x,akan tetapi ia harus menunggu kunci X
terhadap A dilepaskan oleh WK_TOUR
T6,WK_TOUR melepas Kunci X terhadap A
T7, NK_TOUR dapat melakukan pesanan terhadap kursi A
T8, NK_TOUR melepas Kunci X terhadap A
T9, NK_TOUR melakukan pesanan terhadap kursi C dengan
memasang Kunci X
T10, WK_TOUR melihat sisa kursi yg tersedia dengan memasang
Kunci S
T11, WK_TOUR melakukan pesanan terhadap kursi C dengan
memasang kunci x,akan tetapi ia harus menunggu kunci X
terhadap C dilepaskan oleh NK_TOUR
T12, NK_TOUR melepas Kunci X terhadap C
T13, NK_TOUR menyelesaikan Transaksi pemesanan
T14, WK_TOUR dapat melakukan pesanan terhadap kursi C
Tidak ada komentar:
Posting Komentar