Skip to content

v0.4.0 — DAG Store Garbage Collection

Choose a tag to compare

@boukaba boukaba released this 11 Jul 13:10

v0.4.0 — DAG Store Garbage Collection

Features

  • DAG store garbage collection (pullrun gc, pullrun gc --apply).
    Mark-and-sweep GC with BFS reachability walk, 90% safety guard, op-lock
    protection, and CLI integration.
  • Crash-atomic writes (write-then-rename with parent fsync).
  • Operation locks protect in-flight pull/build/commit/import from GC.
  • kernel_image_digest pinning — stopped VMs' kernel layers preserved.
  • walk_reachable factored into pullrun-store and shared by
    dag_export.rs and the GC crate.

Fixes

  • enumerate_gc_roots data-loss bug fixed. Changed try_read() to
    blocking read().await to guarantee root set completeness.
  • BFS aborts on corrupted nodes (prevents silent subtree deletion).
  • 90% safety guard measures unreachable bytes, not node count.

Tests

  • 25 new tests across PRs 1–5 (134 → 159 total).