Page 228 - E-Modul Simbad_Neat
P. 228

pemulihan simpul tersebut dilakukan. Selanjutnya, kita akan mencoba meninjau

                        lebih  jauh  bagaimana  alternatif-alternatif  proses  recovery  (akibat  berbagai


                        kerusakan  di  atas)  bekerja  terhadap  sebuah  transaksi  yang  dieksekusi  di  dalam

                        sistem terdistribusi.

                               10.3.2 Commit Protocol


                               Kita  ambil  contoh,  ada  sebuah  transaksi  T  yang  harus  dieksekusi  pada

                        sebuah  sistem  basis  data  terdistribusi.  Artinya,  transaksi  T  itu  akan  dieksekusi


                        dengan  melibatkan  sejumlah  simpul.  Jika  kita  ingin  menjamin  keatomikan

                        transaksi, semua simpul di mana transaksi T dieksekusi harus mengetahui hasil


                        akhir dari eksekusinya. Untuk itu harus dipilih salah satu: Tharus di-commit di

                        semua simpul atau ia harus dibatalkan (aborted) di semua simpul. Untuk keperluan


                        identifikasi  itu, Koordinator Transaksi  dalam  setiap simpul  harus mengeksekusi

                        protokol commit, yang menunjukkan akhir dari transaksi. Ada sejumlah protokol


                        commit  yang  dapat  digunakan;  yang  paling  banyak  digunakan  adalah  protokol

                        Commit Dua Fase (2 Phase Commit atau 2PC).

                               Mari kita melihat lebih jauh lagi. Katakanlah transaksi T tadi dimulai dari


                        simpul ke-i yang kita beri simbol S., dan katakanlah Koodinator Transaksi pada Si

                        adalah K. Ketika T selesai dieksekusi - yaitu, pada saat semua simpul (di mana T


                        telah  dieksekusi)  memberitahu  Ki,  bahwa  T  sudah  selesai  K1  akan  memulai

                        protokol 2PC.


                               Fase 1. Ki menambahkan record <prepare 7> ke file log, dan menyimpan

                        file  log  tersebut  ke  media  penyimpanan  stabil.  Ia  kemudi  mengirimkan  sebuah


                        pesan prepare 7' ke semua simpul di mana dieksekusi. Pada saat penerimaan pesan

                        tersebut,  Manaje  melakukan  commit  dari  porsi  eksekusinya  di  dalam  T.  ka






                                                             215
   223   224   225   226   227   228   229   230   231   232   233