Cloud-native: DB-Cluster-System Vitess 7 baut Unterstützung für SQL aus

Neben der Ergänzung zusätzlicher SQL-Funktionen hat das Vitess-Team vor allem an der Stabilität des neuen Major Release gearbeitet.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: Gorodenkoff / Shutterstock.com)

Von

Das Cloud-native Cluster-System Vitess ist unter anderen zur horizontalen Skalierung von MySQL-Datenbankanwendungen konzipiert. Das Entwicklerteam hinter dem von der Cloud Native Computing Foundation (CNCF) gehosteten Projekt hat nun Version 7 vorgelegt, mit der nahezu vollständige Kompatibilität mit MySQL angestrebt wird. Dazu sind neben zahlreichen Fehlerbereinigungen und Verbesserungen auch weitere Ergänzungen der SQL-Syntax in Vitess eingeflossen.

Zu den wichtigsten Erweiterungen bei der Unterstützung für SQL zählen Savepoints, Replica Transactions und die Möglichkeit, Systemvariablen pro Sitzung festzulegen. Anwendern über set-Statements zu erlauben, Systemvariablen auch auf Session-Ebene zu ändern, hatte das Team bereits in Version 6 angekündigt. Die Funktion ist vorläufig aber noch als experimentell gekennzeichnet. Transaktionen auf Read-only-Replicas sind hingegen nun generell möglich, nachdem die neue gateway_implementation von tabletgateway standardmäßig aktiviert ist. Nach Auswahl des gewünschten tablet_type (use keyspace@replica) lassen sich Transaktionen mit BEGIN starten.

In Vitess 7 hat sich das Entwicklerteam einigen technischen Schulden gewidmet, nachdem Teile des Codes für immer wieder neu hinzugefügte Funktionen offenbar nicht mehr pflegbar waren. Um die Stabilität des Cluster-Systems grundlegend zu verbessern, wurden unter anderen der Healthcheck von VTGate sowie der Tablettserver und Tabletmanager von VTTablet neu geschrieben. Dadurch wurden nicht nur einige der genannten SQL-Syntax-Ergänzungen möglich, auch weitere neue Funktionen sollen in spätere Releases einfließen können. Bereits neu in Vitess 7 sind Funktionen, die auf VReplication aufsetzen – darunter VStream Copy, das ein Streaming ganzer Tabellen oder Datenbanken ermöglicht und somit die Basis für Anwendungen zur Erfassung von Änderungsdaten schafft.

Vitess wurde ursprünglich bei YouTube entwickelt, um die Verwaltung großer Speichermengen zu optimieren. Daraus erwuchs ein Cloud-natives Cluster-System, dass MySQL-Datenbank-Anwendungen mit der Skalierbarkeit von NoSQL-Datenbanken kombinieren soll. Vitess greift dazu auf die Methode des Sharding zurück, um die Daten über verschiedene Server- beziehungsweise Cloud-Instanzen verteilen zu können, ohne die eigentliche Applikation anpassen zu müssen. Da MySQL Sharding nicht nativ unterstützt, muss Vitess die entsprechende Logik in die SQL-Syntax übertragen. Die vollständige Anpassung an MySQL konnte das Vitess-Team auch in Version 7 noch nicht abschließen – peilt dies aber für Vitess 8 an.

Weitergehende Informationen zum neuen Major Release finden sich im CNCF-Blogbeitrag zur Ankündigung von Vitess 7 sowie auf der Website des Projekts und in den Release Notes auf GitHub.

(map)