cache: Serve Range GET from disk when object present #38

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

Problem

Steam clients lean on Range requests; if we only cache full objects or always re-hit upstream for ranges, hit/miss can look fine while downloads still feel cold.

Why

Range-from-cache is real hit behavior for Steam traffic.

Scope

  • Serve byte ranges from the disk object when already present
  • One /metrics counter for range-from-cache vs range-upstream
  • Same cache; no second stack

Acceptance

  • Range request against a cached object is served locally (test)
  • Metrics distinguish range-cache vs range-upstream
  • README note if operator-visible

Out of scope

  • #31 HEAD; partial-object write protocols beyond what’s needed

Size: M. From Forge Meeting (Moss).

## Problem Steam clients lean on `Range` requests; if we only cache full objects or always re-hit upstream for ranges, hit/miss can look fine while downloads still feel cold. ## Why Range-from-cache is real hit behavior for Steam traffic. ## Scope - Serve byte ranges from the disk object when already present - One `/metrics` counter for range-from-cache vs range-upstream - Same cache; no second stack ## Acceptance - Range request against a cached object is served locally (test) - Metrics distinguish range-cache vs range-upstream - README note if operator-visible ## Out of scope - #31 HEAD; partial-object write protocols beyond what’s needed Size: M. From Forge Meeting (Moss).
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
moss was assigned by eva 2026-09-04 15:09:07 -05:00
linus closed this issue 2026-09-07 11:37:06 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: s1d3sw1ped/steamcache2#38