Über den Horizont hinaus: horizontale Skalierungen im MySQL-Stil mit TiDB
Mit der weltweit steigenden Menge an Daten stoßen herkömmliche relationale Datenbanken wie MySQL schnell an ihre Grenzen – sowohl in Bezug auf die Speicherkapazität als auch auf die Skalierbarkeit. Titanium Database (TiDB) bietet hierfür eine kostengünstige und flexible Lösung.
TiDB ist laut Hersteller eine Open-Source-Datenbank, die sich durch ihre verteilte Architektur, Cluster-Native-Umgebung und MySQL-Kompatibilität auszeichnet. Sie vereint die Vorteile von "Hybrid Transactional" sowie "Analytical Processing" (HTAP), um sowohl transaktionale als auch analytische Workloads effizient zu bewältigen. Was genau hinter diesen Eigenschaften steckt und wie TiDB im Detail funktioniert, erfahren Sie in diesem Blogartikel.
Die Cluster-Lösung ist nahezu vollständig MySQL-kompatibel, da sie sowohl das MySQL-Protokoll verwendet als auch die SQL-Syntax von MySQL unterstützt. Dadurch können viele bestehende MySQL-Anwendungen ohne Anpassungen direkt mit TiDB betrieben werden. Diese hohe Kompatibilität vereinfacht den Umstieg von MySQL auf TiDB erheblich.
Nahtloser Übergang von MySQL zu TiDB
Zusätzlich stellt TiDB eigene Tools bereit, die den Migrationsprozess unterstützen und erleichtern. Mit TiDB Data Migration (DM) können Daten aus MySQL-Quellen vollständig oder inkrementell übertragen werden. Dies ermöglicht nicht nur eine einfache Übernahme der Daten, sondern auch die Möglichkeit, den Betrieb der ursprünglichen MySQL-Datenbank während der Migration aufrechtzuerhalten. Durch diese sogenannte Zero-Downtime-Migration können Unternehmen den Wechsel durchführen, ohne dass es zu nennenswerten Unterbrechungen kommt.
Eine weitere praktische Eigenschaft ist die Unterstützung der gleichzeitigen Migration mehrerer MySQL-Datenbanken. Falls eine MySQL-Datenbank aufgrund von Kapazitätsbeschränkungen in mehrere Datenbanken aufgeteilt wurde, können diese während der Migration in einem einzigen TiDB Cluster konsolidiert werden. Das spart nicht nur Ressourcen, sondern reduziert auch die Komplexität der Systemarchitektur.
Ein Blick auf die Architektur: Mehrere Cluster arbeiten zusammen
Die verteilte Architektur von TiDB basiert auf Knoten, die miteinander kommunizieren und gemeinsam Daten verarbeiten. Diese Struktur ermöglicht eine hohe Skalierbarkeit und Verfügbarkeit.
Schon in der kleinsten Ausbaustufe besteht TiDB aus mehreren Clustern, wie die folgende Abbildung zeigt:
Kurz zu den Aufgaben der einzelnen Cluster, Details findet ihr in der Dokumentation:
Das PD Cluster (PD = Placement Driver) ist die Komponente zur Verwaltung der Metadaten des gesamten Clusters. Hier werden die Metadaten der Echtzeitdatenverteilung jedes einzelnen TiKV-Knotens und die Topologiestruktur des gesamten TiDB-Clusters gespeichert. Auch wird hier die TiDB-Dashboard-Verwaltungsoberfläche bereitgestellt.
Das TiDB-Server-Cluster ist eine zustandslose SQL-Schicht, die die SQL-Anfragen verarbeitet und an die Speicherknoten weiterleitet.
Das Storage Cluster beinhaltet die Speicherknoten, von denen es zwei verschiedene Arten gibt, auf die im Folgenden genauer eingegangen wird.
Um diese Cluster komfortabel zu verwalten, gibt es für Kubernetes einen eigenen Operator. Dieser automatisiert die Bereitstellung, Skalierung, Selbstheilung, Updates und andere Betriebsaufgaben eines TiDB-Clusters.
TiKV: Schlüssel zur Skalierbarkeit und Hochverfügbarkeit
Die Skalierbarkeit wird unter anderem durch den Titanium Key Value Store (TiKV) erreicht, der als Speichersystem fungiert und durch das Hinzufügen weiterer Knoten dynamisch erweitert werden kann. Gleichzeitig sorgt die automatische Replikation der Daten innerhalb von TiKV dafür, dass jede Datenregion mehrfach auf verschiedenen Knoten gespeichert wird. Dadurch wird die Hochverfügbarkeit gewährleistet, da der Cluster selbst bei einem Ausfall einzelner Knoten funktionsfähig bleibt. Die Aufteilung der Daten führt TiDB durch einen eigenen Algorithmus durch, jedoch können mittels manueller Einstellungen, Anpassungen an dem Verteilungsfahren vorgenommen werden. Beim Betrieb von TiDB in der Cloud werden die Daten gleichzeitig auf verschiedene Standorte aufgeteilt, weshalb TiDB dann sogar vor Umweltkatastrophen geschützt sein kann.
OLTP und OLAP vereint: Das HTAP-Modell von TiDB
Um die gleichzeitige Verarbeitung von Transaktionen und Analysen zu gewährleisten, setzt TiDB auf das sogenannte Hybrid Transactional and Analytical Processing (HTAP). HTAP kombiniert die Verarbeitung von Online Transactional Processing (OLTP) und Online Analytical Processing (OLAP) in einer einzigen Plattform.
OLTP ist für die Verarbeitung von Transaktionen zuständig und wird durch die zeilenbasierte Speicherung der Daten im TiKV-Speichersystem realisiert. Typische Operationen umfassen dabei die CRUD-Operationen (Create, Read, Update, Delete).
OLAP ermöglicht hingegen komplexe Analysen über große Datenmengen. Diese Funktionalität wird durch den TiFlash-Speicher sichergestellt, der Daten spaltenbasiert speichert, um eine schnelle und effiziente Abfrageleistung zu ermöglichen. Dabei werden nicht alle Daten standardmäßig in TiKV und TiFlash gespeichert. Stattdessen kann auf Tabellen- oder Datenbankebene festgelegt werden, welche Daten in TiFlash repliziert werden sollen. So bleibt die Speicher- und Abfrageeffizienz erhalten, während gleichzeitig OLAP-Workloads gezielt optimiert werden können.
Funktionseinschränkungen: Was TiDB (noch) nicht kann
Obwohl die Datenbank MySQL-kompatibel ist, gibt es einige Funktionalitäten, die nicht vollständig unterstützt werden. Dazu gehören beispielsweise Funktionen, Prozeduren, Tablespaces, Trigger, Events sowie bestimmte Zeichensätze.
Fazit
TiDB ist besonders hilfreich für MySQL-Datenbanken, deren Datenvolumina sich in kurzen Intervallen regelmäßig verdoppeln und bei denen die Skalierbarkeit von MySQL an ihre Grenzen stößt. TiDB ist skalierbar, hochverfügbar und lässt komplexe Analysen über den gesamten Datenbestand zu – eine flexible Alternative, die immer mehr Unternehmen überzeugt.
Seminarempfehlungen
MYSQL ADMINISTRATION DB-M-01
Mehr erfahrenKUBERNETES ESSENTIALS KUB-01
Mehr erfahrenStudent bei ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare