feat(proxy): reclaim space from the blob store
Every blob in the store is materialised into one `Vec` before any deletion
Defect 9 / Tier 2 / suggestion
services/proxy/src/sweep.rs:94-102services/proxy/src/sweep.rs:153Expected review
bound it - keep only the oldest N candidates in a heap, or sweep one `blobs/sha256` shard at a time.
Discovery difficulty
it is a scaling defect with no wrong output, it only shows up on a store far larger than any test would build, and materialising does look necessary because the candidates have to be sorted.
Trigger
a store at the 32 GiB default ceiling full of small npm tarballs - on the order of several hundred thousand blobs, so roughly a hundred megabytes of paths and metadata, plus the index map beside it. The service is careful about exactly this elsewhere: the fetch path streams in 64 KiB chunks and `store.rs` says why, so that a hundred concurrent downloads do not each hold a megabyte.
Severity
suggestion