Google Cloud hat die Einführung neuer benutzerdefinierter Quellenlesevorgänge für Dataflow angekündigt, die die Kosten senken und die Effizienz steigern sollen. Diese Funktion ist eine Reaktion auf die hohen Kosten, die mit der Skalierung von Workloads verbunden sind, insbesondere in Streaming-Umgebungen, in denen Latenzen eine große Rolle spielen.
Moderne Autotuning-Strategien haben oft damit zu kämpfen, Engpässe zu bewältigen, die durch Hot Keys oder Hot Worker entstehen, was sich auf die Datenfrische auswirkt. Eine Streaming-Umgebung wie Apache Kafka kann beispielsweise zu Hotspots in der Pipeline führen. Ein Autoscaler versucht möglicherweise, dies im Nachhinein durch zusätzliche Compute-Einheiten zu kompensieren. Dies ist jedoch nicht nur kostspielig, sondern auch langsam. Ein Autoscaler reagiert erst, wenn sich ein Rückstand an Nachrichten angesammelt hat, und verursacht Overhead beim Hochfahren neuer Worker.
Die neue Funktion für den Lastausgleich verteilt Workloads besser und entlastet proaktiv überlastete Worker, sodass mehr Daten mit weniger Ressourcen und geringeren Latenzen verarbeitet werden können.
Echte Anwendergewinne
Die folgenden Beispiele zeigen Produktions-Pipelines von Dataflow-Großkunden, die von der Einführung des Lastausgleichs profitiert haben.
Fälle 1 - Der Lastausgleich reduzierte die Skalierungsereignisse für Benutzer-Worker und ermöglichte es der Pipeline, mit weniger Workern eine bessere Leistung zu erzielen. (75 % weniger Worker führten zu einer täglichen Kostenreduzierung von 64 % in Google Compute Engine, und der Rückstand sank von ~1 Minute auf ~10 Sekunden)
Fälle 2 - Der Lastausgleich ermöglichte die Skalierung mit der Eingangsrate, anstatt aufgrund des hohen Rückstands bei der maximalen Anzahl von Workern stecken zu bleiben. (57 % weniger Worker bei gleicher Eingangsrate führten zu einer monatlichen Kostenreduzierung von 37 % in Compute Engine, und der Spitzenrückstand sank von ~4,5 Tagen auf ~5,2 Stunden)
Fälle 3 - Der Lastausgleich ermöglichte einen um +27 % höheren Durchsatz bei einem reduzierten Rückstand von ~1 Tag bei gleicher Anzahl von Workern.
Lastausgleich bei der Arbeit
Wenn eine Pipeline startet, weiß Dataflow nicht im Voraus, wie viele Daten aus einer bestimmten Datenquelle eingehen werden. Tatsächlich kann sich dies während der Lebensdauer der Pipeline ändern. Wenn mehrere Themen beteiligt sind, kann es daher zu folgender Situation kommen:
Wenn Worker 1 nicht in der Lage ist, mit der Last von 30 MB/s Schritt zu halten, müssen Sie einen dritten Worker hochfahren, um Thema 2 zu bearbeiten. Mit Lastausgleich können Sie eine bessere Lösung erreichen: Verteilen Sie die Last neu und lassen Sie die Pipeline mit nur zwei Workern Schritt halten.
Wenn der Lastausgleich aktiviert ist, wird die Arbeit automatisch und intelligent verteilt, indem die Live-Eingangsrate jedes Themas betrachtet wird, wodurch verhindert wird, dass Hot Worker die gesamte Pipeline blockieren. Dies geht über unausgeglichene Themen hinaus; es können auch Ungleichgewichte auf Schlüsselebene erkannt und Schlüssel zwischen Workern umverteilt werden*, wodurch ein Ausgleich im Kern erreicht wird.
Standardmäßig aktiviert
Wir haben den benutzerdefinierten Quellenausgleich im Juli in der Produktionsumgebung von Dataflow in allen Regionen aktiviert. Diese Funktion ist standardmäßig für alle Kunden für alle Dataflow-Streaming-Engine-Pipelines verfügbar. Starten Sie mit Dataflow und dem Google Cloud Managed Service für Apache Kafka direkt über die Google Cloud Console. Bleiben Sie dran für zukünftige Updates und erfahren Sie mehr, indem Sie sich an das Google Cloud-Vertriebsteam wenden.
* Der Lastausgleich kann einzelne Schlüssel nicht in zwei Teile aufteilen, sodass Hot Keys nur abgeschwächt werden können. Wenn wir grundsätzlich keine gute Aufteilung der Arbeit vornehmen können, kann der Lastausgleich die Pipeline nicht reparieren.