Cloudflare libera Origin Range Requests para arquivos grandes sem ajuste de faixa

Recurso de cache da Cloudflare entrega pedaços de arquivos grandes sem calibrar faixa de bytes; no R2, latência p99 caiu cerca de metade.
Foto: Nothing Ahead (Pexels)
A Cloudflare liberou nesta sexta-feira (23) o Origin Range Requests, recurso de cache que entrega pedaços de arquivos grandes sem exigir que o cliente escolha o tamanho das faixas de bytes. A função, descrita no blog da empresa, passa a estar disponível em autosserviço em todos os planos, ativada por uma regra de Cache.
O anúncio responde a um gargalo clássico de redes de distribuição de conteúdo (CDN): quando um player pede poucos megabytes no meio de um filme, a implementação antiga podia puxar dezenas ou centenas de mebibytes da origem e espalhá-los entre data centers — às vezes depois que o espectador já tinha saído.
O que aconteceu
Segundo o post assinado por Matthew Gumport, pedidos HTTP com cabeçalho Range pedem só parte de um recurso, e o servidor responde com status 206 Partial Content e Content-Range. O padrão é comum em vídeo com seek, downloads retomáveis, gerenciadores de pacotes e leitura do fim de um arquivo sem baixar tudo.
A Cloudflare já suportava cache de ranges com configuração estática por zona, mapeando cada pedido a faixas de tamanho fixo escolhido pelo cliente. Faixas pequenas geravam muitas requisições à origem e pressão de memória; faixas grandes faziam a rede baixar muito mais do que o pedido. Mudar o tamanho invalidava entradas de cache, porque esse valor entrava na chave. Pedidos na mesma faixa podiam bloquear uns aos outros, e o cache em nginx não combinava bem ranges com streaming concorrente.
A migração para um servidor baseado em Pingora permitiu redesenhar o fluxo. Como o Pingora já guarda arquivos em pedaços fixos no disco, o tamanho da faixa deixa de ser ajuste do cliente e passa a ser o próprio chunk do cache. O edge serve bytes já cacheados, busca na origem o que falta em faixas alinhadas aos chunks e devolve ao cliente só o intervalo pedido. Um coordenador monta a resposta a partir de disco, downloads em andamento e novas buscas; se um download já cobre bytes de outro pedido, o segundo pode se anexar a ele. Antes de compor, valida-se a mesma representação e o If-Range; quando o range não é seguro, devolve-se o arquivo completo.
Antes de abrir o recurso a todos, a empresa migrou usuários da implementação antiga. No R2, armazenamento de objetos da Cloudflare, o tamanho configurado era de 64 MiB; uma leitura pequena que cruzasse o limite podia custar 128 MiB entre data centers. Depois da mudança, o tempo até o primeiro byte no percentil 99 caiu cerca de metade em acertos e erros de cache. Um ajuste seguinte misturou bytes já em disco com bytes do upstream numa só resposta; o tráfego de cache em camadas para o R2 e cargas parecidas caiu cerca de 6% semana a semana — petabytes a menos entre data centers por dia, segundo a companhia.
Para ligar o recurso, basta criar uma Cache Rule no painel ou via API com origin_range_requests no modo on. A origem precisa aceitar byte ranges. Ativar o recurso não torna cacheável o que antes não era.
O que isso pode mudar
Se a adoção acompanhar a intenção da Cloudflare de tornar esse o caminho padrão para certos tipos de arquivo — ainda ajustável por regras de cache —, operadores de vídeo seekable em MP4, repositórios de software, imagens de disco e cargas de inteligência artificial que movem modelos grandes podem reduzir idas à origem e tráfego interno sem calibrar faixas à mão.
A hipótese é que seeks e retomadas fiquem mais ágeis e que a conta de banda entre origem e CDN fique mais previsível. O ganho depende de origem compatível com ranges e de conteúdo elegível a cache; pedidos menores que o chunk ainda podem puxar o pedaço inteiro, e ranges desalinhados geram trabalho extra — agora limitado e previsível, mas não zero.
Fontes: Cloudflare Blog
Leia mais em: www.mundodosnegocio.com.br