Pemrosesan Transaksi Transcaction Processing Serializability Recoverablitiy 1 Serializability
Pemrosesan Transaksi (Transcaction Processing) –Serializability –Recoverablitiy 1
Serializability • Asumsi Dasar – Masing-masing transaksi menjaga konsistensi database. • Dengan demikian penjadwalan (scheduling) transaksi serial menjaga konsistensi database. • Suatu schedule (transaksi bersama-sama) dikatakan serializable hanya jika dia ekuivalent terhadap serial schedule. Ekivalensi schedule ini ada dua: 1. conflict serializability 2. view serializability • Untuk penyederhanaan kita hanya akan melihat operasi read dan write dalam suatu transaksi, dengan asumsi operasi komputasi dilakukan di lokal buffer di antara masing-masing operasi read dan write. 2
Serializability Conflict Serializability • Suatu instruksi li dan lj dari suatu transaksi Ti dan Tj dikatakan konflik jika dan hanya jika ada beberapa item Q yang diakses oleh baik li maupun lj, dan sedikitnya salah satu instruksi ini menulis di item Q tersebut. 1. li = read(Q), lj = read(Q). li dan lj tidak konflik. 2. li = read(Q), lj = write(Q). Mereka konflik. 3. li = write(Q), lj = read(Q). Mereka konflik. 4. li = write(Q), lj = write(Q). Mereka konflik • Secara intuitif, jika terjadi konflik antara li dan lj akan memaksa urutan pelaksanaan di antara mereka. Jika li dan lj berurutan di dalam suatu schedule dan merka tidak konflik, maka jika urutannya diubah hasil operasi tidak akan berubah. 3
Serializability Conflict Serializability (lanjt) • Jika suatu schedule S dapat diubah menjadi sebuah schedule S´ dengan serangkaian pertukaran instruksi yang tidak konflik, maka kita katakan antara S dan S’ adalah conflict equivalent. • Kita katakan suatu schedule S adalah conflict serializable jika dia conflict equivalent dengan serial schedule • Contoh schedule yang tidak conflict serializable: T 3 T 4 read(Q) write(Q) Kita tidak bisa menukar urutan instruksi-instruksi schedule di atas untu memperoleh baik serial schedule (T 3, T 4) maupun (T 4, T 3). 4
Serializability Conflict Serializability (lanjt) • Schedule 3 di bawah ini dapat ditransformasi menjadi Schedule 1, sebuah serial schedule di mana T 2 mengikuti T 1, dengan melakukan serangkaian pertukaran intruksi yang tidak konflik. Sehingga schedule 3 adalah conflict serializable. 5
Serializability View Serializability • Jika S dan S’ adalah dua schedule dengan sekumpulan transaksi yang sama. S dan S’ dikatakan view equivalent hanya jika tiga kondisi di bawah ini dipenuhi: 1. Untuk masing-masing item data Q, jika transaksi Ti membaca nilai awal Q di schedule S, maka transaksi Ti harus, pada schedule S’, juga membaca nilai awal Q. 2. Untuk masing-masing item data Q jika transaksi Ti mengeksekusi read(Q) schedule S, dan nilai ini diproduksi oleh transaksi Tj (jika ada), maka transaksi Ti pada schedule S´ juga membaca nilai Q yang dihasilkan oleh transaksi Tj. 3. Untuk masing-masing item data Q, transaksi (jika ada) yang melakukan operasi write(Q) akhir pada schedule S harus melakukan operasi write(Q) akhir juga di S´. Seperti kita lihat, view equivalence adalah juga hanya berdasarkan pada operasi read dan write semata 6
Serializability View Serializability (lanjt) • Suatu schedule S dikatakan view serializable hanya jika dia view equivalent terhadap sebuah serial schedule. • Setiap conflict serializable schedule adalah juga view serializable. • Schedule 9 (dari text) — adalah contoh schedule yang viewserializable tapi bukan conflict serializable. • Setiap view serializable schedule yang bukan conflict serializable mempunyai operasi blind writes. 7
Serializability View Serializability (lanjt) • Schedule 8 (dari text) di bawah ini menghasilkan output yang sama dengan serial schedule < T 1, T 5 >, tetapi dia tidak conflict equivalent ataupun view equivalent terhadapnya. 8
Recoverability Bertujuan untuk menganalisa efek kegagalan pelaksanaan transaksi yang dijalankan secara bersamaan (concurrent) • • • Recoverable schedule — jika sebuah transaksi Tj membaca sebuah item data yang sebelumnya ditulis oleh transaksi Ti , operasi commit Ti harus muncul lebih dulu dari operasi commit Tj. Schedule di bawah ini (Schedule 11) tidak recoverable jika T 9 commit segera setelah operasi read Jika T 8 harus abort, maka T 9 kemungkinan telah membaca (dan mungkin menunjukkan kepada pengguna) state database yang tidak konsisten. Sehingga database harus menjamin bahwa tiap schedule recoverable. 9
Recoverability • Cascading rollback – kegagalan sebuah transaksi mendorong pada serangkaian penggagalan (rollback) transaksi lainnya. Jika untuk schedule berikut ini masing-masing transaksi belum commit (sehingga schedule adalah recoverable) Jika T 10 fail, maka T 11 dan T 12 harus juga di roll back. • Dapat mendorong pada pembatalan (undoing) cukup banyak operasi 10
Recoverability • Cascadeless schedules — schedule di mana cascading rollback (rollback berantai) tidak terjadi; untuk masing-masing pasangan transaksi Ti dan Tj sedemikian sehingga Tj membaca item data yang sebelumnya dituliskan oleh Ti, operasi commit Ti harus terjadi sebelum operasi read oleh Tj. • Setiap cascadeless schedule adalah juga recoverable schedule • Sangat disarankan untuk membatasi schedule agar cascadeless 11
Mengetes Serializability • • • Jika kita anggap suatu schedule adalah sekumpulan transaksi T 1, T 2, . . . , Tn Precedence graph — adalah graph yang memetakan secara langsung transaksi-transaksi ini (verteks-verteks yang terdapat dalam graph adalah nama transaksi). Kita menggambar sebuah panah dari Ti ke Tj jika dua buah transaksi konflik, dan Ti mengakses data setelah terjadi konflik. Kita bisa memberi label pada panah dengan item yang diakses. Contoh x y 12
Contoh Schedule A T 1 T 2 T 3 T 4 T 5 read(X) read(Y) read(Z) read(V) read(W) read(Y) write(Z) read(U) read(Y) write(Y) read(Z) 13
Precedence Graph Untuk Schedule A T 1 T 3 T 2 T 4 14
Test Untuk Conflict Serializability • Sebuah schedule dikatakan conflict serializable jika dan hanya jika precedence graphnya acyclic. • Algoritma-algoritma deteksi-cycle telah ada dengan cost process n 2 waktu, di mana n adalah banyaknya verteks pada graph. (algoritma yang lebih baik memakan waktu n + e di mana e adalah banyaknya edge). • Jika precedence graphnya acyclic, serializability dapat diperoleh dengan proses topological sorting dari suatu graph. Sebagai contoh serializability untuk A dapat diperoleh dengan cara: T 5 T 1 T 3 T 2 T 4. 15
- Slides: 15