School of Information Systems

Transaction Management (part 4) – Conflict Serializability

Pada artikel ini kita akan mempelajari mengenai Conflict Serializability. Apa itu Conflict Serializability?

Conflict Serializable

A schedule is called conflict serializable if it can be transformed into a serial schedule by swapping non-conflicting operations.

Dari kalimat diatas kita memahami bahwa sebuah schedule yang conflict serializable jika schedule tersebut bisa dieksekusi secara serial dengan memindahkan operasi yang tidak konflik.

Seperti yang sudah dijelaskan pada artikel sebelumnya, urutan eksekusi akan penting jika ada transaksi menulis sebuah data, transaksi lain membaca atau menulis data yang sama. Contoh:

  • (T1-Read(x), T2-Write(x)) berikut ini contoh operasi yang konflik. Karena transaksi yang berbeda ini mengakses data yang sama yaitu x dan salah satu operasinya adalah write.
  • Ada lagi, (T1-Write(x), T2-Write(x)) dan (T1-Write(a), T2-Read(a)) ini juga operasi yang konflik.
  • Nah, ini merupakan contoh operasi yang tidak konflik (T1-Read(a), T2-Write(b)).
  • Ini juga tidak konflik (T1-Write(a), T2-Write(b)).

Lalu bagaimana kita melihat apakah sebuah schedule conflict serializable atau tidak. Berikut contohnya:

S1

T1

T2

read(a)
write(a)
read(a)
write(a)
read(b)
write(b)
read(b)
write(b)

Sekali lagi, kalau schedule ini menjadi serial setelah kita melalukan pemindahan operasi yang tidak konflik maka schedule ini Conflict Serializable.

Sekarang kita akan coba untuk memindahkan urutan operasi yang tidak konflik. Pertama kita akan tukar posisi T2-read(a) dengan T1-read(b) – kalian bisa coba buat sendiri hasilnya. Lalu setelahnya kita kan tukar posisi T2-write(b) dengan T1-write(b). Maka hasilnya akan menjadi serial. Jadi S1 merupakan conflict serializable.

Sekarang kalian bisa mencoba sendiri untuk memastikan schedule dibawah ini apakah conflict serializable atau tidak.

S11

S12
T1 T2 T1

T2

read(x) read(x)
read(y) read(x)
read(x) read(y)
read(y) write(y)
write(y) read(y)
write(x) write(x)

Dari kedua schedule tersebut, kalimat mana dibawah ini yang benar:

  1. S11 dan S12 adalah Conflict Serializable
  2. S11 yang Conflict Serializable
  3. S12 saja yang Conflict Serializable
  4. Tidak ada yang benar