Cloudflare ha riprogettato la struttura dei dati nella cache del DNS pubblico 1.1.1.1, ottenendo una riduzione significativa dell’utilizzo della memoria e un miglioramento delle prestazioni. L’ottimizzazione ha coinvolto l’architettura Big Pineapple e diversi componenti sviluppati in Rust, con effetti misurabili sulla capacità, sulla velocità di scrittura e sui tempi di risposta.
cloudflare riduce la memoria della cache dns 1.1.1.1
Nei test di riferimento, lo spazio occupato da ogni elemento della cache è passato da 953 a 420 byte, con una diminuzione del 56%. Considerando l’intera infrastruttura, il risparmio raggiunge circa 100 TB di memoria. La piattaforma Big Pineapple gestisce infatti oltre 250 miliardi di record DNS memorizzati nella cache e supporta anche Gateway DNS e DNS Firewall.
Su una quantità così elevata di dati, anche una riduzione di un solo byte per elemento produce un effetto rilevante sull’intero sistema. La base tecnica dell’intervento è stata preparata anche attraverso l’adozione della cache ARC al posto del precedente modello KV Store e mediante l’utilizzo dell’hashing coerente, che assegna le richieste dello stesso dominio a gruppi di nodi prestabiliti.
big pineapple ottimizza la struttura dei dati
Il team di Cloudflare ha analizzato ogni componente conservato nella cache, eliminando spazio non più necessario e informazioni duplicate. L’intervento si è articolato in cinque modifiche principali applicate alla gestione dei dati DNS.
cloudflare sostituisce vecchi tipi rust
La prima modifica ha riguardato i tipi Vec e String di Rust. Queste strutture mantengono anche una capacità aggiuntiva per eventuali espansioni, ma le risposte DNS inserite nella cache non vengono successivamente modificate. Per questo motivo sono stati utilizzati tipi Box di dimensione fissa.
La sostituzione consente di risparmiare 64 byte per elemento considerando otto strutture Vec e String presenti in ogni record. Nel complesso, il risparmio supera 15 TB di memoria sull’intera cache.
cloudflare unifica le sezioni delle risposte dns
Le risposte DNS comprendono normalmente le sezioni relative a risposte, informazioni autorevoli e dati aggiuntivi. In precedenza ogni sezione veniva conservata in un elenco separato. Il nuovo modello riunisce tutto in un’unica lista e utilizza due posizioni da 2 byte per indicare i confini tra le diverse parti.
Questa soluzione riduce di 28 byte lo spazio occupato da ogni elemento. Anche diversi valori booleani sono stati combinati attraverso singoli bit, limitando il riempimento inserito da Rust per allineare correttamente i dati in memoria.
big pineapple elimina i nomi di dominio duplicati
Molti record DNS riportano il nome del dominio a cui appartengono, anche quando questo coincide con il dominio utilizzato nella ricerca. Big Pineapple non conserva più due volte lo stesso nome: quando necessario, lo ricostruisce direttamente dalla chiave della cache.
Il nome completo viene mantenuto soltanto nei casi in cui il record debba puntare a un dominio differente, come accade con i record CNAME. La modifica consente di eliminare ulteriori duplicazioni nella struttura dei dati.
cloudflare migliora la gestione dei record dns
Un ulteriore intervento ha riguardato i tipi enumerati, o enum, utilizzati per rappresentare i diversi record DNS. In precedenza ogni tipo disponeva di uno spazio uniforme pari a 144 byte, dimensionato sul record NAPTR più grande.
I record A richiedono invece appena 4 byte, mentre i record AAAA ne utilizzano 16. Poiché queste due categorie rappresentano oltre l’80% del traffico DNS di Cloudflare, i dati più voluminosi sono stati trasferiti in un’area di memoria separata. Il risparmio arriva così a 120 byte per ogni record A o AAAA.
cloudflare accelera lettura e scrittura della cache
La distribuzione dei dati in aree separate avrebbe potuto aumentare il numero delle allocazioni e costringere il processore a recuperare informazioni da posizioni diverse. Per evitare questo effetto, Cloudflare ha codificato parte dei record DNS nel formato di trasmissione di rete, conservandoli come una sequenza di byte in una singola area continua.
La concentrazione dei dati rende la lettura più rapida e permette, nella maggior parte dei casi, di copiare direttamente l’intera sequenza durante la composizione della risposta. I test hanno registrato una riduzione del 5% nei tempi di ricerca e un aumento del 13% degli elementi inseribili nella cache ogni secondo, anche grazie al riutilizzo dei buffer temporanei.
big pineapple libera circa 100 tb di memoria
Dopo l’applicazione delle ottimizzazioni, la memoria utilizzata da ogni elemento è scesa da 953 a 420 byte, mentre la memoria effettivamente allocata è passata da 1,1 KB a 461 byte. Il valore p99 della memoria residente è diminuito da 9,3 GB a 5,3 GB, con una riduzione del 43%.
Sull’intero gruppo di server Big Pineapple sono stati liberati circa 100 TB, una quantità equivalente alla RAM complessiva di circa 130 server Cloudflare di tredicesima generazione. La velocità di scrittura della cache è aumentata da 625.000 a 893.000 elementi al secondo, mentre la latenza delle query è scesa da 828 a 670 nanosecondi, con una riduzione del 19%.
cloudflare punta a una cache dns più ampia
Le modifiche sono state distribuite gradualmente negli ambienti di produzione tra il 18 maggio e il 6 luglio 2026. La memoria recuperata sarà utilizzata per ampliare la capacità della cache DNS senza incrementare il consumo complessivo.
Conservando un numero maggiore di risposte, il sistema potrà ridurre il ricorso ai server DNS upstream. Cloudflare sta inoltre valutando ulteriori interventi per ottimizzare la cache Big Pineapple.








Lascia un commento