cache: Coalesce in-flight identical upstream fetches #52
No reviewers
Labels
No labels
blocked
bug
draft
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
s1d3sw1ped/steamcache2!52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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