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
   227   228   229   230   231   232   233   234   235   236   237