Avoid evicting archive blobs while active readers hold them
Eviction deletes a file while a streaming reader still needs it. Define reader leases and reclamation behavior.
- Focused work estimate
- 4h + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Concurrency · Filesystem
Estimated field mix
- Storage systems80%
- Backend20%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
Fictional media archive Ash serves generated byte fixtures through a fast local cache and slower provider stub. Both tiers run locally.
Setup prerequisites
- Create immutable generated blobs with known digests.
- Implement controllable cache and origin adapters with read failures.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- CTIER-101 · Keep archive cache misses distinct from provider failures
- CTIER-102 · Key archive cache entries by immutable blob identity
- CTIER-103 · Verify archive cache fills before promoting temporary bytes
- CTIER-104 · Coalesce concurrent archive cache fills for one blob
- CTIER-105 · Enforce archive cache capacity before admitting a fill
Acceptance criteria
- Active readers finish or fail explicitly by contract
- New reads cannot acquire deleting entry
- Released leases permit eviction
Implementation constraints
- Specify platform filesystem assumptions.
Verification to include
- Evict idle fixture
- Race eviction with active reader
Deliverables
- Reader-lease protocol and race tests
Rollout and recovery
Pause eviction if active-reader safety is uncertain.
Value of the work
For the engineer: Practice cache correctness, request coalescing and capacity control.
For the team: Inspect whether faster delivery preserves bytes and operating limits.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.