Kembali ke blog
  • Integrasi Sistem
  • Data

Transaksi Terdistribusi 2PC: Konsisten tapi Rapuh

oleh Mono Solusi

Saat satu operasi menyentuh dua database, kita ingin keduanya berhasil bersama atau gagal bersama. Two-phase commit (2PC) menjamin itu — tapi dengan harga yang sering tidak sepadan.

Konsisten, tapi memblokir

2PC menyiapkan, lalu komit. Selama fase siap, sumber terkunci menunggu keputusan koordinator. Bila koordinator gagal di tengah, sumber terjebak menunggu — ketersediaan turun. Konsistensi didapat dengan menukar ketersediaan.

Rapuh di hadapan kegagalan

2PC berasumsi koordinator dan peserta dapat pulih. Dalam praktik, kegagalan koordinator adalah titik tunggal yang sulit. Untuk sistem terdistribusi yang besar, kerapuhan ini sering lebih mahal daripada manfaatnya.

Pertimbangkan saga

Untuk banyak kasus, saga (rangkaian langkah dengan kompensasi) lebih tahan: tidak ada kunci global, tiap langkah komit sendiri, dan kegagalan ditangani dengan langkah balik. Konsistensi akhir, bukan seketika — tapi tetap berjalan saat kegagalan terjadi.

Punya masalah yang ingin diselesaikan?

Ceritakan kebutuhan Anda. Kami bantu memetakan langkah teknis yang realistis — tanpa janji berlebihan.