O cache DNS da Cloudflare armazena mais de 25 bilhões de entradas, e cada byte desperdiçado custa 250 GB em toda a rede. Ao fazer cinco mudanças sucessivas na forma como as entradas são armazenadas em memória, eles reduziram a pegada por entrada em mais de 50%, liberando aproximadamente 100 terabytes de RAM—equivalente a 130 servidores Gen 13. As otimizações também melhoraram o desempenho: a taxa de inserção aumentou 43% e a latência de busca diminuiu 19%, provando que reduzir o uso de memória pode acelerar as operações.
As principais mudanças envolveram substituir os tipos Vec e String por Box<[T]> e Box<str>, eliminando campos de capacidade desnecessários e superalocação de heap. Cada entrada de cache usava originalmente 8 campos Vec/String, cada um com 24 bytes de overhead; ao mudar para slices, economizaram 64 bytes por entrada. Isso foi medido por meio de benchmarks com alocadores personalizados e validado em produção, onde as economias de memória foram significativas sem sacrificar a velocidade.
O artigo detalha o processo técnico, desde o benchmarking com tráfego representativo (56% registros A, 25% AAAA, 19% TXT) até a implementação gradual nos data centers. Ele enfatiza que pequenas economias por entrada se acumulam massivamente em escala, e que a análise cuidadosa pode levar a ganhos tanto de memória quanto de desempenho.
Entidades-chave: Empresas: Cloudflare
Perguntas frequentes: Como a Cloudflare reduziu o uso de memória do cache DNS em 100 TB?
A Cloudflare substituiu os campos Vec e String nas entradas de cache por Box<[T]> e Box<str>, eliminando a sobrecarga de capacidade e o desperdício de heap, economizando 64 bytes por entrada, totalizando ~100 TB em 25 bilhões de entradas.
Fonte: Hacker News · Resumido por HeadlinesBriefing