Wie ereignisgesteuerte Vorberechnung und Snapshot-Bereitstellung die RPC-Latenz um 97,5 % (5.000 ms → 125 ms) senkten und eine Verfügbarkeit von 99,99 % bei täglich Milliarden von Netzwerkkonfigurationsanfragen erreichten.
von Manish Bansal, Yankai Zhang und Chen He
Die Serverless-Compute-Plattform von Databricks bildet die Basis für praktisch alle unsere Daten- und KI-Produkte, wie SQL-Warehouses, Notebooks, ML-Serving-Endpunkte und mehr. Die Plattform startet täglich zig Millionen VMs auf AWS, Azure und GCP.
Bevor ein Serverless-Workload ausgeführt werden kann, muss die VM ihre Netzwerkkonfiguration kennen: Auf welche Speicherziele kann sie zugreifen? Gibt es Private-Link-Endpunkte, über die der Datenverkehr geleitet werden soll? Gibt es aktuelle Änderungen in Unity Catalog, die Zugriff auf neue Speicherziele gewähren? Beginnen wir mit der Nutzung neuer Ziele, die über Delta Sharing freigegeben wurden?
Die Herausforderung besteht darin, dass die Netzwerkkonfiguration nicht an einem einzigen Ort gespeichert ist. Sie muss aus mehreren Upstream-Diensten zusammengestellt werden, von denen jeder einen Teil zum Gesamtbild beiträgt.
Im ursprünglichen Design rief unser Netzwerkkonfigurationsdienst bei jedem Start eines Serverless-Clusters synchron alle Upstream-Dienste auf, aggregierte deren Antworten, berechnete die Netzwerkkonfiguration pro Workspace und gab sie an die Serverless-Dataplane zurück. Dies geschah auf dem kritischen Pfad der Cluster-Erstellung.

Obwohl die alte Architektur einfach war und bei geringer Skalierung gut funktionierte, litt sie unter grundlegenden Problemen, die sich in den folgenden Metriken auf unserem Betriebs-Dashboard widerspiegelten:
Mit dem rasanten Wachstum der Serverless-Nutzung wurde das synchrone Modell zunehmend untragbar. Jeder synchrone Aufruf löste teure Operationen über alle Workspaces hinweg aus, was häufig zu doppelten Berechnungen führte. Dies verursachte eine zusätzliche Last, die proportional zur Anzahl der Tenants und ihrer konfigurierten Ressourcen anstieg.
Wir haben die Art und Weise, wie Databricks Netzwerkkonfigurationen bereitstellt, von Grund auf neu konzipiert. Sie basiert auf folgenden Kernprinzipien:

Die Architektur trennt zwei Pfade sauber voneinander. Der Verwaltungspfad läuft asynchron im Hintergrund: Upstream-Dienste senden Änderungsereignisse an eine Message Queue, die von einem Ereignisprozessor verarbeitet wird, um zu ermitteln, welche Workspaces betroffen sind, und um Update-Benachrichtigungen pro Workspace zu verteilen. Ein lokaler Ereignismanager ruft dann die relevanten Details vom Upstream ab, berechnet die Netzwerkkonfiguration des Workspaces neu und speichert das Ergebnis in einem vorberechneten Snapshot-Speicher. Ein periodischer Abgleichsdienst (Reconciler) synchronisiert zudem alle Workspaces im Hintergrund neu, um Eventual Consistency zu gewährleisten, selbst wenn Ereignisse verloren gehen. Der Bereitstellungspfad hingegen ist kritisch und schnell: Wenn ein Serverless-Cluster startet und eine Netzwerkkonfiguration benötigt, stellt der Netzwerkkonfigurationsdienst diese direkt aus dem Snapshot-Speicher mit einem einzigen Lesezugriff bereit. Dies erfordert keine Aufrufe von Upstream-Diensten und reduziert deren Last erheblich.
Wenn ein Kunde eine neue Unity Catalog-Verbindung erstellt, sendet Unity Catalog ein Änderungsereignis an die Message Queue. Der Ereignisprozessor empfängt das Ereignis, ermittelt, welche Workspaces mit dem betroffenen Metastore verknüpft sind, und verteilt eine Update-Benachrichtigung pro Workspace. In der Partition des jeweiligen Workspaces empfängt der Ereignismanager diese Benachrichtigung, ruft die aktualisierten Verbindungsdetails ab, berechnet die Netzwerkkonfiguration des Workspaces neu und speichert sie mit einer neuen Versionskennzeichnung. Ab diesem Zeitpunkt wird die Netzwerkkonfiguration bei einer Anfrage eines Serverless-Clusters direkt aus dem Snapshot-Speicher bereitgestellt, ohne dass Upstream-Aufrufe erforderlich sind.
Nach der Einführung der neuen Architektur zeigten sich bahnbrechende Ergebnisse bei allen Betriebskennzahlen:
| Metrik | Vorher (Alt) | Nachher (Neu) | Verbesserung |
|---|---|---|---|
| Latenz (RPC p99) | ~5.000 ms | 125 ms | 97,5 % Reduzierung |
| Server-Erfolgsrate | 99,8 % | 99,99 % | Reduzierte Ausfallzeit |

Über die Hauptkennzahlen hinaus:
Dieses Projekt hat uns einige Lehren über den Betrieb von Netzwerkinfrastrukturen im Cloud-Maßstab aufgezeigt:
Vorberechnung entkoppelt kritische Pfade. Durch das Verschieben aufwendiger Aggregationen in den Hintergrund wird der Bereitstellungspfad denkbar einfach und schnell. Dies ist die architektonische Entscheidung mit den größten Auswirkungen. Sie hat eine Abhängigkeitskette über mehrere Dienste hinweg in einen einzigen Speicherlesevorgang verwandelt.
Ereignisgesteuerte Architektur tauscht Konsistenz gegen Skalierbarkeit ein, und der Abgleich (Reconciliation) bietet das Sicherheitsnetz. Ereignisbasiertes Push verarbeitet den Regelfall effizient, während ein periodischer Abgleichsdienst alles auffängt, was durchs Raster fällt.
Design auf Erweiterbarkeit von Tag eins an. Dank der modularen, stufenbasierten Architektur erfordert die Unterstützung einer neuen Upstream-Datenquelle lediglich die Implementierung einer neuen Stufe – ganz ohne Änderungen an der Kern-Pipeline. Wenn sich die Produktpalette von Databricks erweitert, skaliert das Netzwerkkonfigurationssystem einfach mit.
Heute verarbeitet dieses System täglich Milliarden von Netzwerkkonfigurationsanfragen für die weltweite Serverless-Flotte von Databricks – mit einer Latenz von ca. 125 ms und einer Verfügbarkeit von 99,99 %. Da Serverless-Compute weiterhin rasant wächst, stellt die ereignisgesteuerte Architektur sicher, dass die Bereitstellung der Netzwerkkonfiguration direkt mitskaliert.
Wir sind immer auf der Suche nach Ingenieurinnen und Ingenieuren, die gerne Herausforderungen im Bereich verteilter Systeme auf globaler Ebene anpacken. Wenn dich solche Aufgaben begeistern, würden wir uns freuen, von dir zu hören. Schau dir einfach die offenen Stellen auf databricks.com/careers an!
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.