Memahami Konsep Two-Phase Commit Pada Sistem Terdistribusi

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Memahami Konsep Two-Phase Commit Pada Sistem Terdistribusi
Ngomongin Uang : Menjadi ‘Kaya’ Versi Kamu Sendiri

Ngomongin Uang : Menjadi ‘Kaya’ Versi Kamu Sendiri

Kekayaan sering kali bukan hanya soal uang atau status sosial. Kekayaan yang sesungguhnya bersifat sangat personal, karena setiap orang mendefinisikan kesuksesan dan kebahagiaannya dengan cara yang berbeda. Namun, apa pun definisi kekayaan bagi kamu, UANG adalah alat ukur dan kendaraan yang bisa membawamu mencapai tujuan. Karena itulah, memahami keuangan adalah hal yang fundamental dalam membangun kehidupan terbaik versi kamu.

Free Klik Disini !

Seiring dengan perkembangan teknologi dan bisnis yang begitu cepat, Aplikasi yang  sebelumnya di bangun dengan konsep microservice telah berubah menjadi sekumpulan app yang besar.

Tentunya ini mempengaruhi arsitektur sistem yang ada, tidak lagi hanya sekedar microservice tapi telah berubah menjadi sistem terdistribusi.

Pada arsitektur sistem terdistribusi kita sering mendengar konsep Two-Phase Commit, apa itu two-phase commit yuks kita bahas sama-sama.

Two-Phase Commit merupakan protokol standar yang memastikan bahwa commit basis data di implementasikan dalam situasi dimana operasi commit harus dibagi kedalam dua bagian yang terpisah.

Pada manajemen basis data, menyimpan perubahan data dikenal sebagai commit dan membatalkan perubahan dikenal sebagai rollback.

Keduanya bisa dicapai dengan mudah menggunakan pencatatan transaksi ketika dilakukan dalam satu server.

Tetapi ketika data tersebar kedalam server yang berbeda geografis dan sistem menjadi entitas independen dengan log terpisah, proses commit akan menjadi lebih rumit.

two-phase commit ilustration two-phase commit ilustration // google image

Dalam hal ini, objek khusus diperlukan untuk menjadi koordinator agar transaksi divalidasi.

Sesuai dengan namanya, koordinator mengatur kegiatan dan sinkronisasi antar server .

Untuk menangani hal ini Two-Phase Commit diimplementasikan, berikut fase-fase yang dilakukan :

1) Phase 1


Setiap server yang perlu melakukan penulisan data, mencatatkan datanya ke log.

Jika server tidak berhasil, ia merespon dengan pesan gagal. Jika berhasil, server merespon dengan pesan OK.

2) Phase 2


Fase ini dimulai setelah semua peserta merespon OK. Kemudian, koordinator mengirimkan sinyal ke setiap server dengan instruksi commit.

Setelah melakukan commit, masing-masing menulis commit sebagai bagian dari catatan lognya dan mengirimkan pesan kepada koordinator bahwa commit-nya telah berhasil.

Jika salah satu server ada yang gagal, koordinator akan mengirimkan instruksi ke semua server untuk me-rollback kembali transaksi.

Setelah server me-rollback kembali, masing-masing mengirimkan umpan balik bahwa proses telah selesai.

Baca artikel lainya: