A Cloudflare apresentou o Origin Range Requests, um recurso desenvolvido para tornar mais eficiente o cache de solicitações parciais de arquivos grandes. Disponível em todos os planos, ele pode ser ativado por meio de uma Cache Rule e não exige que os clientes escolham um tamanho de intervalo ou entrem em contato com o suporte.

As solicitações de intervalo HTTP permitem que um cliente obtenha bytes selecionados em vez de baixar um arquivo inteiro. Elas são usadas por reprodutores de vídeo que avançam para um ponto específico, gerenciadores de download que retomam transferências interrompidas e repositórios de software que disponibilizam partes de pacotes grandes. A Cloudflare afirma que sua abordagem anterior podia buscar muito mais dados do que o cliente solicitava: uma pequena leitura podia iniciar uma transferência de 128 MiB da origem em uma de suas configurações anteriores.

O novo sistema usa blocos de tamanho fixo já utilizados pelo Pingora, o servidor de cache da Cloudflare. Ele verifica quais bytes solicitados estão em cache, busca os dados ausentes na origem em intervalos alinhados aos limites dos blocos e retorna apenas os bytes solicitados pelo cliente. Quando outra solicitação precisa de bytes abrangidos por um download já em andamento, ela pode compartilhar esse trabalho, em vez de iniciar uma busca separada na origem.

A Cloudflare afirma que essa coordenação também combina dados em cache com dados que chegam da origem em uma única resposta. O sistema verifica se as partes pertencem à mesma versão de um arquivo antes de combiná-las, inclusive conferindo se a etiqueta da entidade corresponde e confirmando o tamanho total do arquivo. Se um intervalo não puder ser fornecido com segurança, a Cloudflare retorna a representação completa.

A empresa afirma que a mudança reduziu aproximadamente pela metade o tempo p99 até o primeiro byte para o R2, seu serviço de armazenamento de objetos, em todas as regiões de armazenamento, tanto em casos de acerto quanto de falha de cache. Outra melhoria reduziu em cerca de 6%, de uma semana para outra, o tráfego do cache em camadas para o R2 e cargas de trabalho semelhantes.

Os clientes podem ativar o recurso criando uma Cache Rule para o tráfego que envolve arquivos grandes e definindo Origin Range Requests como On. Ele foi projetado para objetos armazenáveis em cache que os clientes solicitam em partes, incluindo vídeos com busca por posição, downloads retomáveis, distribuições de software, arquivos compactados, imagens de disco e arquivos grandes de modelos. O recurso não torna armazenáveis em cache respostas que, de outra forma, não seriam elegíveis para isso, e a origem precisa oferecer suporte a intervalos de bytes para que buscas parciais na origem sejam úteis.

Fontes: Cloudflare Blog.