Cloudflare ha presentado Origin Range Requests, una función diseñada para hacer más eficiente el almacenamiento en caché de solicitudes parciales de archivos grandes. Está disponible en todos los planes, se puede activar mediante una Cache Rule y no requiere que los clientes elijan un tamaño de rango ni se pongan en contacto con el servicio de asistencia.
Las solicitudes de rango HTTP permiten que un cliente obtenga bytes seleccionados en lugar de descargar un archivo completo. Las usan los reproductores de vídeo para saltar a un punto concreto, los gestores de descargas para reanudar transferencias interrumpidas y los repositorios de software para servir partes de paquetes grandes. Cloudflare afirma que su enfoque anterior podía obtener muchos más datos de los que solicitaba el cliente: una lectura pequeña podía activar una transferencia de 128 MiB desde el origen con una de sus configuraciones anteriores.
El nuevo sistema utiliza fragmentos de tamaño fijo que ya emplea Pingora, el servidor de almacenamiento en caché de Cloudflare. Comprueba qué bytes solicitados están en la caché, obtiene del origen los datos que faltan mediante rangos alineados con los límites de los fragmentos y devuelve únicamente los bytes solicitados por el cliente. Si otra solicitud necesita bytes incluidos en una descarga que ya está en curso, puede compartir ese trabajo en lugar de iniciar otra obtención independiente desde el origen.
Cloudflare afirma que esta coordinación también combina los datos almacenados en caché con los datos que llegan desde el origen en una sola respuesta. Antes de combinarlos, el sistema comprueba que las partes pertenezcan a la misma versión de un archivo; para ello, verifica que coincidan las etiquetas de entidad y confirma el tamaño total del archivo. Si no es posible servir un rango de forma segura, Cloudflare devuelve la representación completa.
La empresa afirma que el cambio redujo aproximadamente a la mitad el tiempo p99 hasta el primer byte de R2, su servicio de almacenamiento de objetos, en todas las regiones de almacenamiento, tanto en aciertos como en fallos de caché. Otra mejora redujo alrededor de un 6 % intersemanal el tráfico de la caché por niveles para R2 y cargas de trabajo similares.
Los clientes pueden activar la función creando una Cache Rule para el tráfico relacionado con archivos grandes y configurando Origin Range Requests como On. Está pensada para objetos almacenables en caché que los clientes solicitan por partes, incluidos vídeos con búsqueda por posición, descargas reanudables, distribuciones de software, archivos comprimidos, imágenes de disco y archivos de modelos grandes. La función no permite almacenar en caché respuestas que, de otro modo, no cumplirían los requisitos para ello, y el origen debe admitir rangos de bytes para que resulten útiles las solicitudes parciales al origen.
Fuentes: Cloudflare Blog.