Ticketing
Dokumentasi

L · Notifikasi Leader

Strukturrefresh

Bukan respons atas sebuah request, melainkan notifikasi yang dikirim server lebih dulu (khusus cluster). Saat mendeteksi bahwa leader Raft berganti, node mengirim alamat klien dari leader baru satu kali ke semua klien yang sedang terhubung dengannya.

Apa bedanya dengan M

M · MovedL · Notifikasi Leader
SifatRespons atas sebuah requestNotifikasi dari server (tidak terkait request)
Makna"request ini tidak bisa diproses di sini""leader sudah berganti" (informasi)
Koneksiditutup lalu sambung ulang ke leader barudipertahankan — hanya hint yang diperbarui
Node inidipastikan bukan leaderbisa jadi justru leader baru

Jangan menutup koneksi setelah menerima L. Node yang mengirim notifikasi itu sering kali justru leader barunya, dan masih ada request yang akan lewat di koneksi tersebut.

Mengapa ini diperlukan

Tanpa notifikasi ini, klien baru mengetahui pergantian leader setelah melempar sebuah request dan dipantulkan dengan M. L menghilangkan perjalanan bolak-balik itu, sehingga request pertama sesudah failover pun langsung menuju leader baru.

Klien versi lama yang tidak mengenal op ini boleh mengabaikannya tanpa masalah — hanya performanya yang kembali seperti sebelum ada notifikasi (request → M → coba lagi).

Notasi byte: op berupa karakter ASCII, dan addr berupa teks UTF-8 (panjang variabel, ditampilkan sebagai N di struktur). \n di akhir adalah 0A.

Alur

Klien
Node yang terhubung
Leader baru
pemilihan mengganti leader
L · notifikasi leader (alamat leader baru)
hanya hint leader yang diperbarui — koneksi dipertahankan
mulai request berikutnya langsung ke leader baru
A · acquired (token)
permintaanrespons

Dalam mode server tunggal tidak ada konsep leader, jadi notifikasi ini tidak pernah dikirim. Untuk perilaku cluster secara keseluruhan, lihat Protokol (Cluster).