Cloud Computing und Rechenzentren

Cloudflare führt MySQL-Unterstützung in Hyperdrive nach Behebung eines seltenen Caching-Fehlers ein

Cloudflare hat die allgemeine Verfügbarkeit der MySQL-Unterstützung in Hyperdrive angekündigt, einem Dienst zur Bündelung von Datenbankverbindungen für die Workers-Plattform. Vorausgegangen war die Behebung eines Protokollfehlers, der bei etwa 0,001 % der zwischengespeicherten Anfragen leere Antworten oder Hänger verursachte.

2026-10-14
4 Min. Lesezeit
8 Aufrufe
certi.news Editorial Team
Cloudflare führt MySQL-Unterstützung in Hyperdrive nach Behebung eines seltenen Caching-Fehlers ein

Cloudflare hat die allgemeine Verfügbarkeit der MySQL-Unterstützung in Hyperdrive angekündigt. Dabei handelt es sich um einen Dienst, den das Unternehmen für Workers-Nutzer zur Bündelung und Wiederverwendung von Datenbankverbindungen über das Unternehmensnetzwerk anbietet. Der Übergang von der Betaversion zur allgemeinen Verfügbarkeit erfolgte nach der Behebung von rund 20 Fehlern, darunter ein seltener Fehler beim Zwischenspeichern von Abfrageergebnissen, der zu leeren Antworten führte, obwohl Daten erwartet wurden.

Das Problem trat mit einer Rate von etwa 0,001 % auf, wodurch seine Erkennung über Tracing-Protokolle erschwert wurde. Cloudflare stellte fest, dass der Fehler nur bei aktiviertem Caching auftrat, nachdem der Kunde mit der höchsten Nutzung des MySQL-Dienstes während der Betaphase ihn gemeldet hatte.

Wie funktioniert Hyperdrive?

Hyperdrive hält SQL-Verbindungen im Cloudflare-Netzwerk warm und offen und teilt sie anschließend zwischen Workers-Anfragen, anstatt für jede Anfrage eine neue Verbindung herzustellen. Außerdem kann der Dienst häufige Abfrageergebnisse im lokalen CDN-Speicher zwischenspeichern, wodurch die Latenz und die Belastung der ursprünglichen Datenbank reduziert werden.

Die Architektur des Dienstes besteht aus einem Client-Knoten, der in der Nähe des Workers arbeitet, und einem Endpoint-Knoten, der den Verbindungspool verwaltet und sich in einem Rechenzentrum in der Nähe der ursprünglichen Datenbank befindet. Die beiden Knoten können denselben Cache nutzen, wenn sie im selben Rechenzentrum betrieben werden.

Der Fehler lag in unterschiedlichen Formaten des MySQL-Protokolls

Hyperdrive arbeitet mit MySQL von zwei verschiedenen Seiten: Es fungiert als Server gegenüber dem Worker und als Client gegenüber der ursprünglichen Datenbank. Da sich die vom Worker ausgehandelten Protokollfunktionen von den Funktionen unterscheiden können, die Hyperdrive gegenüber der Datenbank verwendet, muss der Dienst die Ergebnisnachrichten neu formatieren, damit sie zum endgültigen Client passen.

Die Untersuchung konzentrierte sich auf die Art und Weise, wie Ergebnisgruppen beendet werden. Einige MySQL-Bibliotheken, darunter die verbreitete Bibliothek mysql2 in Node.js, unterstützen die Funktion CLIENT_DEPRECATE_EOF nicht. Fehlt diese Funktion, verwendet der Server EOF-Pakete, während das neuere Protokollverhalten sie am Ende einer Ergebnisgruppe durch ein OK-Paket ersetzt.

Der Client-Knoten speicherte bisweilen die Bytes, nachdem er sie an die Fähigkeiten des Workers angepasst hatte, während der Endpoint-Knoten eine standardisierte Version mit den Hyperdrive-Funktionen erwartete. Wenn einer der Knoten ein vom jeweils anderen gespeichertes Ergebnis las, konnte er die Nachrichten im falschen Format verarbeiten, was zu einem vorzeitigen EOF, einem Hänger oder einem leeren Ergebnis führte.

Was hat sich praktisch geändert?

Cloudflare behob das Problem, indem alle Knoten eine standardisierte Version des Abfrageergebnisses im Cache speichern. Diese wird unabhängig davon, welcher Knoten sie gespeichert hat, immer entsprechend den Hyperdrive-Funktionen codiert. Nach der Einführung der Fehlerbehebung verschwand das Problem der leeren Zeilen, und die Erfolgsrate der Client-Verbindungen erreichte laut Cloudflare 99,99 %.

Das Unternehmen behob außerdem weitere während des Tests aufgetretene Probleme, darunter einen Fehler bei der Codierung von Emojis. Die Verwendung von utf8 verwies faktisch auf utf8mb3, das nicht alle vier Byte langen Unicode-Codepunkte unterstützt. Der Dienst wechselte zu utf8mb4. Zudem setzte er die Codierung nach der Ausführung des Befehls COM_RESET_CONNECTION erneut, da dieser Befehl die Verbindung auf die Standardeinstellung des Servers zurücksetzt, die latin1 sein kann.

Verfügbarkeit und Einschränkungen

Die MySQL-Unterstützung ist ab heute allgemein über das Cloudflare-Dashboard oder das Tool wrangler verfügbar und kann mit kompatiblen MySQL-Datenbanken verwendet werden, einschließlich der Verbindung zu einer neuen PlanetScale-Datenbank. Der Fall verdeutlicht, dass die Bündelung von Verbindungen und das Caching in einer vermittelnden Schicht nicht nur von der Korrektheit von SQL abhängen, sondern auch eine genaue Übereinstimmung zwischen den Protokollzuständen und dem von jeder Schicht erwarteten Format erfordern.

Nachrichtenquelle
Cloudflare Blog
Originalquelle öffnen ↗
c
Autor

certi.news Editorial Team

Das Wichtigste

Cloudflare hat die allgemeine Verfügbarkeit der MySQL-Unterstützung im Hyperdrive-Dienst für die Workers-Plattform angekündigt, nachdem ein seltener Fehler im Caching behoben wurde, der leere Antworten oder hängende Zustände verursachte. Die Unterstützung ist jetzt über das Cloudflare-Dashboard und das wrangler-Tool verfügbar, mit Verbesserungen bei der Kompatibilität mit dem MySQL-Protokoll und der Unicode-Kodierung.

  • Hyperdrive bündelt MySQL-Verbindungen und verwendet sie zwischen Workers-Anfragen über das Cloudflare-Netzwerk wieder.
  • Das Problem trat bei aktiviertem Caching bei etwa 0,001 % der Anfragen auf und wurde durch unterschiedliche Darstellungen von MySQL-Protokollnachrichten zwischen den Client- und Endpoint-Knoten verursacht.
  • Nun speichern alle Knoten eine standardisierte Version der Abfrageergebnisse entsprechend den Fähigkeiten von Hyperdrive. Laut Cloudflare führte dies zum Verschwinden des Problems mit leeren Zeilen und zu einer Erfolgsquote von 99,99 % bei Client-Verbindungen.
  • Cloudflare hat außerdem die Unterstützung für Emojis verbessert, indem von utf8mb3 auf utf8mb4 umgestellt wurde, und setzt die Kodierung nach dem Befehl COM_RESET_CONNECTION zurück.
  • Die MySQL-Unterstützung ist allgemein über das Cloudflare-Dashboard oder das wrangler-Tool verfügbar und kann mit kompatiblen MySQL-Datenbanken verwendet werden, einschließlich neuer PlanetScale-Datenbanken.

FAQ

Was ist Hyperdrive?

Hyperdrive ist ein Dienst von Cloudflare für Workers-Nutzer, der SQL-Verbindungen bündelt und wiederverwendet. Außerdem kann der Dienst häufige Abfrageergebnisse in der Nähe der Anfragen zwischenspeichern.

Was war die Ursache des von Cloudflare behobenen Fehlers?

Der Fehler entstand durch unterschiedliche Fähigkeiten des MySQL-Protokolls zwischen den Knoten, die mit dem Worker kommunizieren, und den Knoten, die mit der ursprünglichen Datenbank kommunizieren. Dadurch wurden manchmal gespeicherte Nachrichten in einem ungeeigneten Format gelesen.

Wie ist die MySQL-Unterstützung verfügbar?

Sie ist allgemein über das Cloudflare-Dashboard oder das wrangler-Tool verfügbar.

Aus derselben Kategorie

Das könnte Sie interessieren

Alle Nachrichten anzeigen