Cloudflare spart 100 Terabyte RAM durch Optimierung ein
Die Web-Infrastruktur-Plattform Cloudflare hat den Speicherbedarf seines DNS-Dienstes 1.1.1.1 deutlich reduziert und dabei rund 100 Terabyte Arbeitsspeicher im gesamten Netzwerk freigemacht. Der Schlüssel dafür lag nicht in neuer Hardware, sondern in einer Überarbeitung der Speicherstrukturen der DNS-Cache-Plattform Big Pineapple. Dort werden ständig mehr als 250 Milliarden DNS-Einträge vorgehalten.
Schon kleine Einsparungen machen bei dieser Größenordnung einen großen Unterschied. Cloudflare zufolge können zusätzliche acht Byte pro Cache-Eintrag den Speicherbedarf des gesamten Netzwerks bereits um rund zwei Terabyte erhöhen. Die Entwickler untersuchten deshalb Schritt für Schritt, welche Informationen tatsächlich dauerhaft benötigt werden und wo Speicher unnötig reserviert wurde.
Unter anderem ersetzte das Team veränderbare Datenstrukturen durch platzsparende, unveränderliche Varianten. Außerdem wurden mehrere Listen zusammengeführt und Domainnamen nicht mehr redundant gespeichert, wenn sie ohnehin der angefragten Domain entsprachen. Besonders viel Speicher ließ sich bei den Rust-Datentypen einsparen, indem seltene und große DNS-Record-Varianten ausgelagert wurden. Häufige A- und AAAA-Einträge mussten dadurch deutlich weniger Speicher belegen.
Zusätzlich entschied sich Cloudflare dafür, DNS-Daten direkt im kompakten Wire-Format als zusammenhängendes Byte-Array abzulegen. Insgesamt sank der Speicherbedarf pro Cache-Eintrag dadurch von 953 auf 420 Byte, also um 56 Prozent. Gleichzeitig ging die Zahl der Speicherallokationen um 58 Prozent zurück, was die Effizienz der Plattform weiter verbessert.
In der Praxis summieren sich diese kleinen Optimierungen zu einer beeindruckenden Größenordnung. Rund 100 Terabyte RAM stehen Cloudflare nun dauerhaft zusätzlich zur Verfügung. Das Unternehmen will den gewonnenen Speicher jetzt nutzen, um die Kapazität des DNS-Caches weiter auszubauen.