Struktur Frame
Framing biner length-prefix yang membawa RPC Raft. Berbeda dari frame protokol klien yang diakhiri \n, panjangnya dikirim lebih dulu dan sejumlah byte itu kemudian dibaca. Pasangan request-respons pada satu koneksi bergantian secara berurutan, dan sisi yang men-dial selalu menjadi requester.
Request (dialer → receiver)
Strukturrefresh
Respons (receiver → dialer)
Strukturrefresh
| Field | Ukuran | Isi |
|---|---|---|
tag | u8 | Jenis RPC — lihat Jenis RPC (hanya di request) |
len | u32, big-endian | Panjang byte dari payload yang mengikuti |
payload | len byte | Tipe openraft yang diserialisasi dalam format postcard |
Aturan Manajemen Koneksi
lendibatasi maksimum 64 MiB (diperiksa saat diterima). Frame yang melebihi batas, frame yang cacat,tagyang tidak dikenal, atau error pemrosesan Raft semuanya ditangani dengan menutup koneksi — sisi yang men-dial (openraft) menyambung ulang dan mencoba lagi.- Sisi yang men-dial memakai ulang satu koneksi per node tujuan. Saat terjadi error I/O, atau jika round trip dibatalkan di tengah jalan, koneksi itu dibuang dan koneksi baru dibuat pada panggilan berikutnya — stream yang terbaca separuh tidak pernah dipakai ulang dalam keadaan tidak selaras.
Terminologi
- length-prefix — framing yang mengirim panjang body lebih dulu, lalu membaca sejumlah byte itu persis. Tidak perlu delimiter seperti
\n, sehingga data biner apa pun bisa dibawa apa adanya. - serialisasi — mengubah struct dalam memori menjadi urutan byte yang siap ditransportasikan.
- RPC (remote procedure call) — pasangan request-respons yang memanggil fungsi di server lain lewat jaringan, seolah-olah memanggilnya secara lokal.