pub struct Sender {Show 15 fields
pub listener: ReplicationListener,
pub repl_consumer_1: ReplicationConsumer,
pub repl_consumer_2: ReplicationConsumer,
pub replica_slots: Arc<ReplicaSlotCursors>,
pub journal_path: PathBuf,
pub authorized_keys: Arc<AuthorizedKeys>,
pub evict_flags: [Arc<AtomicBool>; 2],
pub active_flags: [Arc<AtomicBool>; 2],
pub metrics: Arc<ReplicationMetrics>,
pub handler_cores: [usize; 2],
pub batch_size: usize,
pub heartbeat_secs: u64,
pub busy_spin: bool,
pub fence_state: Arc<FenceState>,
pub ack_policy: Arc<AtomicU8>,
}Fields§
§listener: ReplicationListenerPre-bound replication listener, non-blocking by construction.
Bound by the caller at startup — not here — so a bad or stolen
--replication-bind port fails the boot with a clear error.
Binding on this thread meant a failure only killed the sender
silently, leaving a primary that looked healthy but could never
satisfy disk+ram/two-disks acks.
repl_consumer_1: ReplicationConsumer§repl_consumer_2: ReplicationConsumer§replica_slots: Arc<ReplicaSlotCursors>§journal_path: PathBuf§evict_flags: [Arc<AtomicBool>; 2]§active_flags: [Arc<AtomicBool>; 2]§metrics: Arc<ReplicationMetrics>§handler_cores: [usize; 2]§batch_size: usize§heartbeat_secs: u64§busy_spin: bool§fence_state: Arc<FenceState>Node fencing state. Read to stamp the primary’s epoch onto each
StreamStart, and to self-demote when a replica handshakes with a
higher epoch (this primary has been superseded). See crate::fence.
ack_policy: Arc<AtomicU8>The active ack policy, shared with the response gate and the
admin ACK-POLICY command. Stamped on every StreamStart and
Heartbeat so replicas judge auto-promotion against the policy
this primary actually acks under.