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