Wo liegt der Unterschied zu traditionellen Datenbanksystemen? Verteiltes SQL, Teil 1: Einführung

Ein Gastbeitrag von Alejandro Duarte* 4 min Lesedauer

Anbieter zum Thema

Lesen, schreiben, rechnen – das ist nicht immer ein Kinderspiel, gerade wenn es um die Performance anspruchsvoller Datenbanken geht. Wo traditionelle, monolithische Datenbanksysteme an ihre Grenzen stoßen, kann verteiltes SQL das Mittel zur Wahl sein. Wie das System funktioniert, wo es eingesetzt wird und wie es sich von klassischen Datenbanken unterscheidet, beschreibt Alejandro Duarte, Developer Advocate bei MariaDB, in diesem Gastbeitrag.

„Wo traditionelle, monolithische Datenbanksysteme an ihre Grenzen stoßen, kann verteiltes SQL das Mittel zur Wahl sein“ – Alejandro Duarte von MariaDB erläutert im Gastbeitrag die Gründe dafür.
„Wo traditionelle, monolithische Datenbanksysteme an ihre Grenzen stoßen, kann verteiltes SQL das Mittel zur Wahl sein“ – Alejandro Duarte von MariaDB erläutert im Gastbeitrag die Gründe dafür.
(Bild: Nmedia - stock.adobe.com)

Manch eine Anwenderin oder ein Anwender erinnert sich womöglich noch an die Einschränkungen von MySQL-Systemen aus vergangenen Zeiten, als die maximale Tabellengröße gerade einmal 4 Gigabyte betrug. Heutzutage liegt dieses Limit bei 64 Petabyte. Das ist für die aktuellen Anforderungen von Unternehmen an ihre Datenbanken durchaus angemessen, doch eine Frage bleibt offen: Ist das Client-Server-Datenbanksystem als solches noch zeitgemäß?

Die Grenzen traditioneller Datenbanken: der Onlinehandel als Beispiel

Die kurze Antwort lautet: nicht immer. Nehmen wir als Beispiel den Online-Handel, bei dem enorme Datenmengen verarbeitet werden. Tabellen wie das Produktsortiment werden vergleichsweise selten bearbeitet, müssen aber sehr vielen Lesezugriffen standhalten. Gleichzeitig verlangen Kaufprozesse eine hohe Verfügbarkeit und Skalierbarkeit.

Relationale Datenbanken in Client-Server-Systemen können bei besonders großem Zugriffsvolumen an ihre Grenzen kommen und durch Flaschenhälse zu Ausfällen führen. Als einzige Lösung verbleibt die vertikale Skalierung – also das Aufrüsten der Hardware-Kapazitäten der eingesetzten Server. Doch nicht immer ist dieser Ansatz wirksam oder wirtschaftlich. Hier kommt verteiltes SQL ins Spiel, und mit ihm die Möglichkeit der horizontalen Skalierung, auf die wir später zurückkommen werden.

Wie funktioniert verteiltes SQL?

In traditionellen relationalen Datenbanken verwaltet ein zentrales Datenbankverwaltungssystem (DBMS) die Daten auf einem monolithischen Server. Verteilte SQL-Systeme teilen stattdessen die Datenbanken auf eine Vielzahl an Knotenpunkten in einem Cluster auf. Auf jedem dieser Knotenpunkte läuft eine Kopie des DBMS, das in der Lage ist, parallel zu anderen Knotenpunkten Lese- und Schreiboperationen auszuführen.

Um die Konsistenz und Verfügbarkeit der Daten zu gewährleisten, nutzen verteilte SQL-Systeme eine Vielzahl an Techniken. Hierzu zählen beispielsweise Konsensalgorithmen, verteilte Sperrung und Synchronisierung sowie automatische Replikation und Sharding. Darüber hinaus verfügen verteilte SQL-Systeme häufig über fortschrittliche Funktionen wie automatisches Failover, Fehlertoleranz und Datenbeständigkeit, die sicherstellen, dass das System auch dann noch funktioniert, wenn ein oder mehrere Knoten im Cluster ausfallen.

Die Vorteile von verteiltem SQL

Durch seinen dezentralen Aufbau bietet verteiltes SQL einige Vorteile gegenüber herkömmlichen Datenbanksystemen. Dazu gehören:

  • (Horizontale) Skalierbarkeit: Verteilte SQL-Systeme können durch Hinzufügen weiterer Knotenpunkte zum Cluster horizontal skaliert werden, sodass das System große Datenmengen und hohen Datenverkehr effektiver bewältigen kann als herkömmliche Datenbanken.
  • Fehlertoleranz und Hochverfügbarkeit: Verteilte SQL-Systeme sind so konzipiert, dass sie redundant und fehlertolerant sind, das heißt, sie speichern ihre Daten mehrfach an mehr als nur einem Ort und können auch dann mit einer hohen Wahrscheinlichkeit (über 99,9 Prozent) weiterarbeiten, wenn ein Knoten im Cluster ausfällt. Konsensalgorithmen verhindern das Abspeichern falscher Daten.
  • Leistung: Verteilte SQL-Systeme können Abfragen parallel über mehrere Knoten hinweg verarbeiten und bieten so eine höhere Leistung als herkömmliche Datenbanken.
  • Flexibilität: Verteilte SQL-Systeme können vor Ort, in der Cloud oder in hybriden Umgebungen eingesetzt werden und lassen sich leicht vergrößern oder verkleinern, um veränderten Geschäftsanforderungen gerecht zu werden.

Wann ist verteiltes SQL die richtige Wahl?

Die Vorteile verteilter SQL-Systeme sind nicht von der Hand zu weisen, doch nicht immer sind sie deswegen das Mittel zur Wahl. Die verbesserten Möglichkeiten zur Skalierung und Verfügbarkeit sind vor allem relevant für sehr große Datenbanken und/oder solche, die ein hohes Lese- und Schreibvolumen aufweisen. Hier ist wieder das vorangegangene Beispiel des Online-Handels zu nennen.

Das kostenlose E-Book „Distributed SQL for Dummies“ von MariaDB bietet grundlegende und weiterführende Informationen zum Thema.
Das kostenlose E-Book „Distributed SQL for Dummies“ von MariaDB bietet grundlegende und weiterführende Informationen zum Thema.
(Bild: John Wiley & Sons Inc und MariaDB plc)

Bei vergleichsweise kleinen Datenbanken dagegen ist der Mehrwert von verteiltem SQL nicht immer gegeben, da das Verfahren mit Mehraufwand verbunden ist. Das Gleiche gilt für Datenbanken, die aus einer Vielzahl kleiner Tabellen bestehen. Das Verteilen der Lese- und Schreiboperationen bei einer einzelnen, kleinen Transaktion ist aufwendiger (und somit auch teurer) als die direkte Abwicklung in einer monolithischen Datenbank. Zudem ist es komplexer, ein verteiltes System aufzusetzen als ein traditionelles. Mit steigendem Datenbankvolumen oder Datendurchsatz – wir denken an den Tera- und Petabyte-Bereich – kann sich ein verteiltes SQL-System jedoch als ein echter Gamechanger erweisen.

Fazit

Ist die Last zu groß, sollte man sie aufteilen – das gilt besonders für Datenbanken. Um Skalierbarkeit und Hochverfügbarkeit auch bei großem Datenverkehr zu gewährleisten, bietet es sich häufig an, die Arbeit auf mehrere Server aufzuteilen, statt einen einzelnen aufzurüsten. Durch moderne Algorithmen zur Datenredundanz und Aufteilung der Zugriffslast sind verteilte SQL-Systeme resistenter gegenüber Ausfällen, leistungsstärker bei vielen parallelen Zugriffen und flexibler in der Vergrößerung, Verkleinerung oder Migration des Datenbanksystems.

Einen hervorragenden Ausgangspunkt für jene, die sich intensiver mit verteiltem SQL auseinandersetzen möchten, bietet das kostenlose E-Book „Distributed SQL for Dummies“ von MariaDB.

Alejandro Duarte, Developer Advocate bei MariaDB
Alejandro Duarte, Developer Advocate bei MariaDB
(Bild: Copyright Alejandro Duarte. alejandro.d.a@gmail.com)

* Der Autor: Alejandro Duarte, Developer Advocate bei MariaDB

(ID:49429611)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung