pub struct GcOptions {
pub keep_days: i64,
pub dry_run: bool,
pub cap_bytes: Option<u64>,
pub min_free_bytes: Option<u64>,
pub time_budget: Option<Duration>,
}Fields§
§keep_days: i64Keep everything newer than this many days before the journal’s newest action (journal-relative, not wall-clock).
dry_run: bool§cap_bytes: Option<u64>Store size ceiling (apparent bytes). When exceeded, the oldest
evictable actions are removed — rows AND objects — until within the
cap. Pins and the hot window are absolute floors. None = no cap.
min_free_bytes: Option<u64>Minimum free space on the store’s filesystem. Below it, eviction runs
exactly like the cap. None = no floor. NOTE: the automatic post-hook
trigger deliberately passes None here — deficit-driven eviction
destroys history over pressure that is usually NOT doover’s fault (and
frees ~0 physical bytes on CoW filesystems), so it only ever runs from
an explicit doover gc, where the report is in front of the user.
time_budget: Option<Duration>Wall-clock ceiling for the EVICTION loop (D1 discipline). On expiry
the pass stops cleanly with still_over_budget = true; a later pass
resumes where the row order left off. None = unbounded (manual gc).