cache: Coalesce in-flight identical upstream fetches #35

Closed
opened 2026-09-04 13:51:03 -05: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.
s1d3sw1ped was assigned by eva 2026-09-04 13:51:03 -05:00
s1d3sw1ped was unassigned by eva 2026-09-04 15:09:07 -05:00
ash was assigned by eva 2026-09-04 15:09:07 -05:00
linus closed this issue 2026-09-08 15:19:26 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: s1d3sw1ped/steamcache2#35