pub struct GcConfig {
pub grace_window_ms: u64,
pub max_objects: Option<u64>,
pub cursor: Option<String>,
}Expand description
The grace window for the sweep (format spec, “Garbage collection”). It is
wall-clock cleanup policy, never a validity input, and the default is
conservative: every object gets one hour of unconditional protection.
Abandoned fork records are not under it — a fork attempt carries its own
lease, and letting that pass is the whole proof
(gc/fork_checkpoints.rs) — and neither are upload sessions or the
content they leave behind: a session carries its own lease, and the
window a completed session’s content is protected for is derived in
limits, not configured.
Fields§
§grace_window_ms: u64§max_objects: Option<u64>Maximum objects this invocation may read or decide. None keeps the
run-to-completion behavior. What one unit buys is spelled out on
gc::budget::PassBudget; the short version is that the content
reference scan pays out of the same purse as candidate enumeration,
so a budget smaller than that scan defers content reclamation
instead of finishing it, pass after pass, while the rest of the
sweep proceeds normally.
cursor: Option<String>Opaque enumeration cursor returned by an earlier invocation.
The cursor is valid only for the same namespace. Resuming always rebuilds the live roots and safety floors; a stale cursor can only re-examine work or defer keys that moved before it until the next full pass, never authorize deletion of a newly live object.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for GcConfig
impl<'de> Deserialize<'de> for GcConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for GcConfig
impl StructuralPartialEq for GcConfig
Auto Trait Implementations§
impl Freeze for GcConfig
impl RefUnwindSafe for GcConfig
impl Send for GcConfig
impl Sync for GcConfig
impl Unpin for GcConfig
impl UnsafeUnpin for GcConfig
impl UnwindSafe for GcConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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>
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>
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