pub struct SyncCooldownTracker { /* private fields */ }Expand description
Sync cooldown tracker for storm prevention
Tracks last sync time for each (peer, document) pair to prevent rapid repeated syncs that could indicate a sync storm.
Implementations§
Source§impl SyncCooldownTracker
impl SyncCooldownTracker
Sourcepub fn new(cooldown: Duration) -> SyncCooldownTracker
pub fn new(cooldown: Duration) -> SyncCooldownTracker
Create a new cooldown tracker
Sourcepub fn check_cooldown(
&mut self,
peer_id: &PublicKey,
doc_key: &str,
) -> Result<(), FlowControlError>
pub fn check_cooldown( &mut self, peer_id: &PublicKey, doc_key: &str, ) -> Result<(), FlowControlError>
Check if sync is allowed (not in cooldown)
Returns Ok(()) if sync is allowed, Err with remaining time if in cooldown.
Sourcepub fn record_sync(&mut self, peer_id: &PublicKey, doc_key: &str)
pub fn record_sync(&mut self, peer_id: &PublicKey, doc_key: &str)
Record a sync operation (updates last sync time)
Sourcepub fn blocked_count(&self) -> u64
pub fn blocked_count(&self) -> u64
Get count of syncs blocked by cooldown
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SyncCooldownTracker
impl RefUnwindSafe for SyncCooldownTracker
impl Send for SyncCooldownTracker
impl Sync for SyncCooldownTracker
impl Unpin for SyncCooldownTracker
impl UnsafeUnpin for SyncCooldownTracker
impl UnwindSafe for SyncCooldownTracker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more