Ticketing
Dokumentasi

Parameter Raft

ItemNilai
Interval heartbeat250ms
Election timeout500-1000ms — pemilihan leader baru dimulai dalam jendela waktu ini setelah leader gagal
Jumlah node3 atau 5 (dipaksakan saat load konfigurasi — selain itu menolak untuk boot)
Node IDposisi (cluster_self)-nya di daftar cluster_peers — itulah kenapa urutan daftar harus identik di setiap node
Bootstrap500ms setelah startup, setiap node menginisialisasi dengan membership yang sama — diabaikan jika bergabung ke cluster yang sudah diinisialisasi
Penyimpanan login-memory (volatile) — node yang di-restart pulih lewat replikasi/snapshot
Deteksi expiry leaseleader memeriksa setiap 100ms dan meng-commit Expire lewat konsensus
Granularitas timeout waittimeout menunggu (T) juga diputuskan pada tick 100ms yang sama — bisa tiba hingga 100ms terlambat

Kenapa 3 atau 5 Node

Sebuah commit butuh mayoritas. Konfigurasi berjumlah genap hanya menambah biaya tanpa menambah toleransi kegagalan, jadi server menolaknya.

Jumlah nodeMayoritasKegagalan bersamaan yang ditoleransi
220 — satu kegagalan saja menghentikan cluster. Tidak lebih baik dari mode single
321
431 — sama seperti 3 node, hanya menambah biaya
532

Ringkasan Perilaku Kegagalan

SituasiPerilaku
Request klien ke node bukan-leaderM (alamat leader), atau E no_leader jika leader tidak diketahui
Kegagalan leaderleader baru terpilih dalam 500-1000ms. Request selama jendela itu mendapat E no_leader → klien mencoba lagi
Saat pergantian leaderrequest acquire yang tertunda dibersihkan dengan M/E no_leader, dan klien mencoba lagi ke leader baru
Restart nodeboot dengan status kosong → mengejar lewat replikasi log/snapshot peer
Mayoritas hilangcommit menjadi tidak mungkin → penulisan berhenti (keamanan diutamakan), otomatis dilanjutkan begitu mayoritas pulih

Terminologi

  • quorum — lebih dari setengah total node (2 dari 3, atau 3 dari 5). Karena keputusan apa pun butuh persetujuan quorum, dua kelompok yang terpartisi tidak akan pernah bisa sama-sama meng-commit keputusan yang bertentangan sekaligus.
  • election timeout — berapa lama follower menunggu tanpa heartbeat sebelum menyimpulkan leader telah mati dan memulai pemilihan. Diacak per node untuk mengurangi kandidasi bersamaan.