Supersedes slice3-f5-f7-execution-plan.md for the done-state + ordering. The plan was written @ f0af377; 8 commits since (incl. the rotation e909eab + F2-default-on 8b5023f + eviction a46d9c1) overtook ~40% of it.
const USE_F5_REOPEN_LOADER = true (flip.rs:800), all 4 ctors gated.drain_segments_into_overlay/reconcile_and_drain_overlay
(archive-aware, per-segment regime) — replay_records_lww_overlay is SUPERSEDED-by-drain (dead).\Rightarrow$ NO ineligible-V owned production path left.else arms RETAINED (S9 must delete them).else arm in checkpoint_route_split (checkpoint.rs:142-155) + the RES-4
assert (:148). KEEP capture_owned_snapshot + publish_owned_and_reclaim (byte staging). AFTER the staging re-point.const true (flip.rs:348; byte overlay_write_mode.rs:870; char :624). Compiler then
flags every dead owned_X arm. S6 = delete those (owned_try_contains/owned_get/owned_try_get + !route_overlay arms).else arms (the user's flagged deltas): byte shared_trait_impl.rs async :291-317 +
force_eviction :399-401; char mod.rs start_char :2143-2145 + force_eviction :2233-2235 + the unused quiescence
locals. → evict_char_nodes / evict_node_at_path / find_parent_mut become dead → delete. (Vocab evict_node_at_path
mod.rs:869 = OUT of scope, untouched.)root (only remaining access = f5_loader get_mut scratch + the converter
seam readers + byte staging + capture_owned_snapshot — each → &mut/scratch-local or safe non-locked). The
root FIELD STAYS (see SCOPE below).create+kill_switch_to_owned (compaction_impl.rs:209) with a CONSTRUCTION-TIME
owned-only staging builder (overlay-not-installed); delete kill_switch_to_owned + OverlayWriteMode enum + the
field + route_overlay split. ENTANGLEMENT: route_overlay→const-true BREAKS byte staging (kill-switched →
lockfree_root().is_none() → checkpoint would route empty overlay = TOTAL IMAGE LOSS) → S9 + S10 MUST land
TOGETHER (or S9 keeps a staging_owned construction flag route_overlay consults). The plan's S9-then-S10 order
does NOT survive this dependency.S8 "delete owned root field outright / no residual" is NOT achievable in Slice 3: F5 transient scratch + the
KEPT converter seam readers + byte compaction staging + the legacy oracle all read self.root. Literal-zero-owned
= C-opt-2 (a path-compressing overlay→dense serializer + an F5 that reads multi-unit-prefix overlay nodes) —
a separate multi-week DATA-LOSS-CRITICAL format effort, EXPLICITLY out of Slice-3 scope. Achievable Slice-3
end-state: owned RUNTIME deleted (mutators, read arms, checkpoint arm, route-split, kill-switch, eviction owned
arms) + OR-RwLock collapsed; the owned root FIELD + NODE types + serialize/deserialize KEPT (the on-disk
format + F5 scratch + byte dense-staging backend). C-opt-1 compaction staging is BYTE-ONLY (char has no compact()).
--no-default-features (feature-off) +doctests + verify-formal-correspondence.sh exit 0 + unsafe-inventory set-equality + fmt + cross-repo READ-ONLY build-check (liblevenshtein-rust). #41 checkpoint_lsn=committed-watermark capture ordering UNTOUCHED (state per commit).
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |