DB-Cluster-System Vitess 20 bietet mehr DML-Optionen für Abfragen​

Release 20 des Vitess Cluster-Systems stellt erweiterte DML-Funktionen zum Konfigurieren von Querys bereit. Der Kubernetes Operator erreicht Version 2.13.0.​

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen

(Bild: Erstellt mit ChatGPT durch iX)

Lesezeit: 2 Min.

Das Cloud-native Cluster-System Vitess liegt ab sofort in Version 20 vor. Mit dem Update des bei der Cloud Native Computing Foundation (CNCF) gehosteten Projekts liefert das Entwicklerteam zudem den Vitess Kubernetes Operator in Version 2.13.0 aus. Neben einigen Updates bestehender Funktionen sowie verschiedenen Änderungen, die mit Breaking Changes verbunden sind, sollen die meisten Neuerungen zu einer besseren Benutzerfreundlichkeit beitragen. Unter anderem bietet das Release erweiterten Support für die Data Manipulation Language (DML), der zusätzliche Optionen für Querys eröffnet.

Laut Ankündigung im CNCF-Blog dürfen Anwenderinnen und Anwender von Vitess 20 auf eine höhere Kompatibilität bei Abfragen vertrauen. Die Ergänzungen reichen von Vindex-Hinweisen über Sharded-Updates mit Limits und Multi-Table-Updates bis hin zu erweiterten Löschoperationen, die zu mehr Kontrolle und Effizienz beim Verwalten von Sharded-Daten beitragen sollen. Vindex-Hinweise etwa erlauben gezielteren Einfluss auf das Shard-Routing zu nehmen.

SELECT * FROM user USE VINDEX (hash_user_id, secondary_vindex) WHERE user_id = 123;
SELECT * FROM order IGNORE VINDEX (range_order_id) WHERE order_date = '2021-01-01';

Einer der Breaking Changes, die Anwenderinnen und Anwender beim Wechsel auf das neue Release berücksichtigen müssen, betrifft die Umbenennung verschiedener Metriken, die für den Einsatz der Cluster-Überwachungs- und Wiederherstellungskomponente VTOrc relevant sind. Die alten Namen bleiben zwar vorerst in /debug/vars erhalten, sollen in späteren Releases aber entfallen. Die folgende Tabelle stellt alte und neue Metrikbezeichnungen gegenüber – einschließlich der in Prometheus üblichen Namen, zu denen sie jeweils aufgelöst werden:

Alte Metrikbezeichnung Neue Metrikbezeichnung Name in Prometheus
analysis.change.write AnalysisChangeWrite vtorc_analysis_change_write
audit.write AuditWrite vtorc_audit_write
discoveries.attempt DiscoveriesAttempt vtorc_discoveries_attempt
discoveries.fail DiscoveriesFail vtorc_discoveries_fail
discoveries.instance_poll_seconds_exceeded DiscoveriesInstancePollSecondsExceeded vtorc_discoveries_instance_poll_seconds_exceeded
discoveries.queue_length DiscoveriesQueueLength vtorc_discoveries_queue_length
discoveries.recent_count DiscoveriesRecentCount vtorc_discoveries_recent_count
instance.read InstanceRead vtorc_instance_read
instance.read_topology InstanceReadTopology vtorc_instance_read_topology
emergency_reparent_counts EmergencyReparentCounts vtorc_emergency_reparent_counts
planned_reparent_counts PlannedReparentCounts vtorc_planned_reparent_counts
reparent_shard_operation_timings ReparentShardOperationTimings vtorc_reparent_shard_operation_timings_bucket

Für die bei Webanwendungen häufig zu findende mandantenfähige Architektur, bei der jeder Mandant seine eigene Datenbank mit identischen Schemata nutzt, soll die neue experimentelle Funktion VReplication Multi-Tenant-Importe vereinfachen. Um in einer solchen Architektur Herausforderungen wie das Provisionieren und Skalieren zu erleichtern, bietet sich ein geshardeter Vitess-Keyspace an, der mit einer einzigen logischen Datenbank alle Mandanten bedient. Der dazu erforderliche Datenimport in den Keyspace lässt sich in Vitess 20 per VReplication über den MoveTables-Workflow mit den Flags --shards und --tenant umsetzen.

Ebenfalls noch als experimentell gelten neue Funktionen im Vitess Kubernetes Operator 2.13.0. Der Operator bietet nun die Möglichkeit, automatisierte und zeitgesteuerte Backups einzurichten. Details zur Handhabung dieser Sicherungsfunktionen liefert ein aktualisierter User Guide.

Weitergehende Informationen zum neuen Major Release finden sich im CNCF-Blogbeitrag zur Verfügbarkeit von Vitess 20. Einen detaillierten Überblick aller Neuerungen liefern die Release Notes auf GitHub.

(map)