feat(system-resources): NvmeServingTierPool — genome-models gets its decided eviction owner (#302, my half) - #2117
Merged
Conversation
…decided eviction owner (#302, my half) The serving tier's hot set (served GGUFs, expert containers, device-fit overrides) now has a governed eviction owner on the existing ResourcePool contract, closing the 'genome-models' deferred entry in every_cache_class_has_a_decided_eviction_story with exactly the owner it demanded: reference-aware, never blind-delete a served model. - Capacity DERIVED (#287-style): volume total − governed reserve (10% floored at 32 GiB), never a hand-tuned budget. - Relief = MIGRATE coldest-first to the detected COLD drive: copy → fsync → byte-verify → delete source; a verified twin already frozen on cold is a pure drop; verify failure removes the partial COPY, never the source; cold-side name collisions are never clobbered. - ActiveArtifactSet (process singleton, same shape as tracked dirs): serving's ensure_hot_resident (BigMama's half) registers resident paths; eviction skips anything protected, prefix-aware both directions. Poisoned lock fails SAFE (everything protected). - No cold drive ⇒ free 0 LOUDLY — pressure stays visible instead of being 'relieved' by destroying re-fetch-hours artifacts. Composes with device-fit one tier down (Unfittable → grid route), per STORAGE-SERVING-TIER-GOVERNOR.md; Cold stays FROZEN-never-streaming. - Boot wiring beside CargoTargetPool: volume = longest mount-prefix match over detect_drives() (now pub), cold_root = <cold>/continuum-cold/models. 5 new tests in the existing mod (nested serving_tier theme), each pinning a named invariant; the decided-story test STRENGTHENED (owned += genome-models), not weakened. cargo test disk_eviction: 11/11. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
…et (#302 invariant 1, live end-to-end) The reconcile marks the resolved model's GGUF ACTIVE before any spawn touches it (a mid-load migration is the worst case), swaps the registration on model change (old released exactly once), and clears it on both nothing-servable paths. With this, the NvmeServingTierPool's never-migrate-the-served-model invariant is enforced by the LIVE serving path, not just by tests — no dependency on the cross-node half. serving_daemon + disk_eviction suites: 37/37. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
joelteply
force-pushed
the
feat/302-nvme-serving-tier-pool
branch
from
August 2, 2026 19:29
f59dd66 to
9cda39b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The serving tier's hot set (served GGUFs, expert containers, device-fit overrides) now has a governed eviction owner on the existing
ResourcePoolcontract, closing thegenome-modelsdeferred entry inevery_cache_class_has_a_decided_eviction_storywith exactly the owner it demanded: reference-aware, never blind-delete a served model.What
ActiveArtifactSet(process singleton, same shape asinstall_tracked_dirs): serving'sensure_hot_resident(BigMama's half) registers resident paths; eviction skips anything protected, prefix-aware both directions; a poisoned lock fails SAFE (everything protected).DriveRole::Coldstays FROZEN-never-streaming (docs(capacity): DriveRole::Cold is FROZEN storage, never the per-token streaming tier (#302 slice 0) #2115).ipc/mod.rs: volume = longest mount-prefix match overdetect_drives()(now pub), cold_root =<cold-mount>/continuum-cold/models.Safety invariants (each pinned by a test)
Tests
5 new tests in the existing
#[cfg(test)] mod tests(nestedserving_tiertheme, per the one-test-mod rule), each with// what this catches:. The decided-story guard test is STRENGTHENED (owned += genome-models), not weakened.cargo test disk_eviction: 11/11 green;cargo checkclean.Her half (serving
ensure_hot_resident+ duplicate detection) composes againstserving_active_artifacts()— the seam is live in this PR.🤖 Generated with Claude Code
https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo