Skip to main content

anti_entropy

Function anti_entropy 

Source
pub fn anti_entropy<C, T>(
    transport: &mut T,
    from: u64,
    to: u64,
    local: &EventLog<C::Delta>,
    remote: &mut Replica<C>,
) -> Result<Vec<(u64, RecordId, Admission)>, TransportError>
where C: Crdt, C::Delta: Clone + PartialEq, T: TransportAdapter<C::Delta>,
Expand description

Queue repair and admit the deliveries available for to, returning every record ID and verdict with its sending peer. In particular, Invalid is reported again on every retry, with its original reason. Refusals are not acknowledgements and are not cached: fixing the receiver permits the next ordinary sync to admit the record. Dropped or partitioned packets retain the adapter’s usual delivery semantics.

All available envelopes for to are admitted, including previously queued deliveries from other peers. An empty result means no delivery, not an acknowledgement. Callers must inspect the verdicts, especially Invalid and Collision. This helper requires access to the receiving replica; network adapters must return equivalent admission feedback from the remote endpoint. A Collision also raises the receiver’s collision alarm; send its Replica::collision_report_bytes back so the offerer raises it too.