Cloudflare launches Origin Range Requests, replacing per-zone range-size tuning with chunk-aligned range caching
Cloudflare has made Origin Range Requests available on all plans. The feature replaces the old nginx-style cache-slicing configuration, where customers set a per-zone range size. The old design could make a small client request trigger a pull of up to 128 MiB from the origin and move it between data centers. The new implementation, built on Pingora, aligns origin fetches to the cache's existing fixed-size on-disk chunks and returns only the bytes the client requested. Cloudflare reports that p99 time to first byte for R2 dropped by about half and that a follow-up change cut tiered cache traffic for R2 and similar workloads by about 6%. This is product and engineering news with no vulnerability or threat activity.
Detalhes técnicos
- A coordinator checks which requested bytes are already cached, reads them from disk or in-memory streaming, fetches missing coverage from the origin as chunk-aligned ranges, records completed ranges in metadata, and composes the response with correct
Content-RangeandContent-Length. - A second request can attach to an in-flight download that covers its bytes instead of starting another origin fetch.
- Before composing, it validates that each origin response matches the requested range, that the total asset size is stable and that the entity tag is consistent across subrequests.
If-Rangemismatches return the full representation. - Ranges are not composed for representations about to be decompressed. Cloudflare serves the full transformed response instead.
- Responses follow standard HTTP:
206 Partial Contentfor satisfiable ranges,416 Range Not Satisfiablefor unsatisfiable ones, and the full representation when ranging is unsafe. - Requests smaller than a chunk can still fetch the whole chunk, but the extra work is bounded and predictable.
- The old design had known problems. The range size was part of the cache key, concurrent requests in the same range blocked each other, and range caching could not be combined with concurrent streaming.
- The feature does not change cache eligibility, and the origin must support byte ranges for partial fetches to help.
Remediação
No remediation is required. To enable the feature, create a Cache Rule matching large-file traffic and set Origin Range Requests to On. This can be done under Caching > Cache Rules in the dashboard or via the API with origin_range_requests: { "mode": "on" }.
Linha do tempo
-
Cloudflare launches Origin Range Requests, replacing per-zone range-size tuning with chunk-aligned range caching
ler a análise desta fonte ocultar
Cloudflare has made Origin Range Requests available on all plans. The feature replaces the old nginx-style cache-slicing configuration, where customers set a per-zone range size. The old design could make a small client request trigger a pull of up to 128 MiB from the origin and move it between data centers. The new implementation, built on Pingora, aligns origin fetches to the cache's existing fixed-size on-disk chunks and returns only the bytes the client requested. Cloudflare reports that p99 time to first byte for R2 dropped by about half and that a follow-up change cut tiered cache traffic for R2 and similar workloads by about 6%. This is product and engineering news with no vulnerability or threat activity.
Technical Details
- A coordinator checks which requested bytes are already cached, reads them from disk or in-memory streaming, fetches missing coverage from the origin as chunk-aligned ranges, records completed ranges in metadata, and composes the response with correct
Content-RangeandContent-Length. - A second request can attach to an in-flight download that covers its bytes instead of starting another origin fetch.
- Before composing, it validates that each origin response matches the requested range, that the total asset size is stable and that the entity tag is consistent across subrequests.
If-Rangemismatches return the full representation. - Ranges are not composed for representations about to be decompressed. Cloudflare serves the full transformed response instead.
- Responses follow standard HTTP:
206 Partial Contentfor satisfiable ranges,416 Range Not Satisfiablefor unsatisfiable ones, and the full representation when ranging is unsafe. - Requests smaller than a chunk can still fetch the whole chunk, but the extra work is bounded and predictable.
- The old design had known problems. The range size was part of the cache key, concurrent requests in the same range blocked each other, and range caching could not be combined with concurrent streaming.
- The feature does not change cache eligibility, and the origin must support byte ranges for partial fetches to help.
Remediation
No remediation is required. To enable the feature, create a Cache Rule matching large-file traffic and set Origin Range Requests to On. This can be done under Caching > Cache Rules in the dashboard or via the API with
origin_range_requests: { "mode": "on" }. - A coordinator checks which requested bytes are already cached, reads them from disk or in-memory streaming, fetches missing coverage from the origin as chunk-aligned ranges, records completed ranges in metadata, and composes the response with correct