Cloudflare ha introdotto Origin Range Requests, una funzionalità progettata per rendere più efficiente la memorizzazione nella cache delle richieste parziali di file di grandi dimensioni. Disponibile su tutti i piani, può essere attivata tramite una Cache Rule e non richiede ai clienti di scegliere la dimensione degli intervalli né di contattare l’assistenza.

Le richieste HTTP di intervallo consentono a un client di recuperare determinati byte invece di scaricare un intero file. Sono utilizzate dai lettori video per passare a un punto specifico, dai gestori di download per riprendere trasferimenti interrotti e dai repository software per distribuire parti di pacchetti di grandi dimensioni. Cloudflare afferma che il suo approccio precedente poteva recuperare molti più dati di quelli richiesti dal client: una piccola lettura poteva attivare un trasferimento di 128 MiB dall’origine con una delle configurazioni precedenti.

Il nuovo sistema usa blocchi di dimensione fissa già impiegati da Pingora, il server di caching di Cloudflare. Verifica quali byte richiesti sono memorizzati nella cache, recupera dall’origine i dati mancanti in intervalli allineati ai confini dei blocchi e restituisce solo i byte richiesti dal client. Quando un’altra richiesta necessita di byte già coperti da un download in corso, può condividere quel lavoro invece di avviare un recupero separato dall’origine.

Cloudflare afferma che questo coordinamento combina anche i dati memorizzati nella cache con quelli in arrivo dall’origine in un’unica risposta. Prima di combinarli, il sistema verifica che le parti appartengano alla stessa versione di un file, confrontando l’entity tag e confermando la dimensione totale del file. Se non è possibile fornire un intervallo in modo sicuro, Cloudflare restituisce invece la rappresentazione completa.

L’azienda afferma che la modifica ha quasi dimezzato il tempo p99 al primo byte per R2, il suo servizio di object storage, in tutte le regioni di archiviazione, sia in caso di hit sia di miss della cache. Un ulteriore miglioramento ha ridotto di circa il 6% il traffico della cache a livelli per R2 e carichi di lavoro simili, su base settimanale.

I clienti possono attivare la funzionalità creando una Cache Rule per il traffico relativo a file di grandi dimensioni e impostando Origin Range Requests su On. È pensata per gli oggetti memorizzabili nella cache che i client richiedono in parti, tra cui video con possibilità di avanzamento, download riprendibili, distribuzioni software, archivi, immagini disco e file di modelli di grandi dimensioni. La funzionalità non rende memorizzabili nella cache risposte che altrimenti non sarebbero idonee e, perché i recuperi parziali dall’origine siano utili, l’origine deve supportare gli intervalli di byte.

Fonti: Cloudflare Blog.