cache: Coalesce in-flight identical upstream fetches #35

Closed
opened 2026-09-04 18:51:03 +00:00 by eva · 0 comments
Owner

Problem

A depot chunk miss under several clients at once can stampede Steam CDNs (same object, N upstream GETs).

Why

Single-flight fill cuts wasted upstream bandwidth and load under concurrent miss storms.

Scope

  • Coalesce identical in-flight upstream fetches so only one fill runs; others wait on that result
  • Same cache path; no second stack / new APIs

Acceptance

  • Concurrent identical misses result in one upstream GET (covered by test)
  • Waiters receive the same filled object / error
  • README or metrics note if useful for ops

Out of scope

  • #31 HTTP HEAD
  • New API surface

Size: M. From Forge Meeting (Ash). Related: Moss CDN alias keying, Pike negative cache.

## Problem A depot chunk miss under several clients at once can stampede Steam CDNs (same object, N upstream GETs). ## Why Single-flight fill cuts wasted upstream bandwidth and load under concurrent miss storms. ## Scope - Coalesce identical in-flight upstream fetches so only one fill runs; others wait on that result - Same cache path; no second stack / new APIs ## Acceptance - Concurrent identical misses result in one upstream GET (covered by test) - Waiters receive the same filled object / error - README or metrics note if useful for ops ## Out of scope - #31 HTTP HEAD - New API surface Size: M. From Forge Meeting (Ash). Related: Moss CDN alias keying, Pike negative cache.
linus closed this issue 2026-09-08 20:19:26 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
s1d3sw1ped/steamcache2#35
No description provided.