Cloudflare hat seine Dienste zum Aufbau von DNS-Zonen aktualisiert und dadurch die mediane Aufbauzeit von 7,7 Sekunden auf 3,3 Sekunden verkürzt sowie den Speicherverbrauch der Zone-Builder-Server um 85 % gesenkt. Die Verbesserungen sollen ein wachsendes Volumen an Domainänderungen bewältigen, ohne mehr Daten als nötig neu aufzubauen.
Eine DNS-Zone enthält die Einträge, Einstellungen und Metadaten einer Domain. Wenn ein Kunde einen Eintrag oder eine Einstellung ändert, verteilt Cloudflare die Aktualisierung über sein DNS-Netzwerk. Das Unternehmen erhält inzwischen etwa 800 Zonenänderungen pro Sekunde, verglichen mit 250 vor vier Jahren. Einige gehostete Domains enthalten außerdem mehr als 20 Millionen Einträge, wodurch vollständige Neuaufbauten sowohl beim Speicherbedarf als auch beim Netzwerkverkehr hohe Anforderungen stellen.
Cloudflare hatte zuvor bereits partielle Aktualisierungen für Änderungen an Einträgen eingeführt. Einstellungen ließen sich schwieriger verarbeiten, weil ein Ereignis in einer Zone zugehörige Änderungen auslösen konnte und eingehende Änderungsereignisse nicht immer genügend Informationen enthielten, um den erforderlichen Arbeitsaufwand zu bestimmen. Daher lösten Aktualisierungen von Einstellungen häufig einen vollständigen Neuaufbau aus.
Die Entwickler änderten das Ereignissystem so, dass es Gründe und zusätzliche Details enthält. Dadurch können Aktualisierungen klassifiziert und, wenn möglich, mit kleineren Neuaufbauten verarbeitet werden. Änderungen an Apex-Einträgen oder Metadaten sowie Aktualisierungen von Nameservern oder Wildcards können nun mit gezielten Verfahren ausgeführt werden. In Fällen, für die es keine Methode zur partiellen Aktualisierung gibt, werden weiterhin vollständige Neuaufbauten durchgeführt, und große Zonen werden in kleineren Teilen aktualisiert. Cloudflare zufolge sank der Speicherverbrauch durch diese Änderungen von 50–79 GB auf etwa 7 GB.
Das Team führte außerdem zwei Scheduler zusammen und änderte deren Umgang mit eingehenden Aufträgen. Der überarbeitete Scheduler kann mehrere Änderungen an derselben Zone gruppieren und kleinere Aufträge verarbeiten, während ein langsamerer Neuaufbau läuft. Zuvor mussten Anfragen möglicherweise hinter einem langsamen Auftrag warten, weil Nachrichten der Reihe nach verarbeitet wurden. Dadurch entstanden Warteschlangen, die dann schubweise abgearbeitet wurden. Cloudflare zufolge verbessert der überarbeitete Ansatz die Nebenläufigkeit und ermöglicht eine gleichmäßigere Verarbeitung der Aktualisierungen.
Quellen: Tom's Hardware.