cache: Coalesce in-flight identical upstream fetches #52
Reference in New Issue
Block a user
Delete Branch "cache/coalesce-inflight-fetches"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
A depot chunk miss under several clients at once can stampede Steam CDNs (same object, N upstream GETs). In-flight coalescing already existed on the miss path, but acceptance still lacked a gated concurrent test (without a hold, later clients can become sequential HITs after the first fill) and the Quick check metrics table omitted
cache_coalesced.What changed
steamcache/coalesce_test.go: N concurrent identical GETs share one upstream fill (leaderMISS, waitersHIT-COALESCED, same body); 5xx sibling asserts shared failure without N origin storms.README.md: documentcache_coalescedin the Quick check metrics table and a short prose note next to the other hit/miss fields.No production path rewrite — same coalescer / handler wiring; no new APIs; out of scope for #31 HEAD and multi-tier design.
How tested
Risks / rollback
Test + docs only relative to existing coalescing. Revert the commit to roll back.
Fixes #35