Page 232 - E-Modul Simbad_Neat
P. 232
• File log tidak mengandung record kontrol apapun (abort, commit ready) yang
berhubungan dengan T. Pada kasus ini, kita akan segera tahu bahwa S, telah
mengalami kegagalan sebelum member respon terhadap pesan prepare 7 yang
dikirim oleh K. Karena kegagalan S membuat respon yang diharapkan K tidak
dapat terkirim, maka K akan membatalkan T. Maka konsekuensinya, T harus
menjalankan undo(7).
2. Kegagalan Koordinator. Jika koordinator mengalami kerusakan di tengah
pengeksekusian protokol commit terhadap transaksi T, maka simpul-simpul
yang terlibat harus memutuskan nasib dari transaksi T tersebut. Kita akan
melihat, bahwa pada kasus tertentu, simpul yang terlibat tidak dapat
memutuskan apakah harus meng-commit atau membatalkan transaksi T dan
karena itu simpul ini harus menunggu hingga koordinator tersebut bisa
berfungsi normal kembali.
• Jika simpul aktif mengandung record <commit T> dalam file log- nya, maka
Tharus di-commit.
• Jika simpul aktif mengandung record <abort 7> dalam file log-nya, maka T
harus dibatalkan.
• Jika sejumlah simpul aktif tidak mengandung record <ready dalam file log-
nya, maka koordinator K, yang gagal tersebut tidak dapat memutuskan
untuk meng-commit T, karena simpul yang tidak memiliki record <ready
T> dalam file log-nya tidak dapat mengirimkan pesan ready T ke K. Akan
tetapi, koordinator mungkin telah memutuskan untuk membatalkan T, dan
tidak meng commit T. Daripada menunggu K, bisa pulih kembali, lebih baik
T dibatalkan saja.
219