Verteiltes SQL Eine Datenbankarchitektur für innovative Unternehmen

Autor / Redakteur: Ralf Gebhardt* / Dr. Jürgen Ehneß

Mit „verteiltem SQL“ betreiben Anwender eine Datenbank über mehrere unabhängige Knoten. Dadurch profitieren sie von einer elastischen Skalierung und hoher Ausfallsicherheit. Die Datenbank ist immer verfügbar und wächst mit dem Geschäft.

Firma zum Thema

Relationale Datenbanksysteme sind ein Hemmnis für internationale Cloud-Dienste mit Millionen von Kunden.
Relationale Datenbanksysteme sind ein Hemmnis für internationale Cloud-Dienste mit Millionen von Kunden.
(Bild: gemeinfrei / Pixabay )

Cloud-Dienste sind in vielen Fällen international ausgerichtet: Sie sollen Millionen Kunden auf der ganzen Welt ein gutes Nutzererlebnis bieten. Ein Hemmnis dabei sind die relationalen Datenbanksysteme (RDBMS), die im Hintergrund vieler Angebote arbeiten.

Ein Beispiel: Ein weltweit führender Hersteller von Android-Mobilgeräten verwendet verteiltes SQL für Anwendungen, die extreme Skalierbarkeit erfordern, beispielsweise um jeden Nutzer der Cloud authentifizieren zu können. Mehrere hundert Millionen Kunden nutzen diese Cloud-Dienste. Die Datenbanken verarbeiten täglich viele Milliarden Datenbankanweisungen und speichern mehrere hundert Petabyte. Traditionelle, monolithische SQL-Datenbanken sind mit solchen Anforderungen überlastet.

Verteiltes SQL als neues Modell für verteilte Datenbanken

Konzeptionelle Ansätze wie Replikation sind für dezentrale, weltweite Organisationen nicht ausreichend. Bei replizierten Datenbanken werden sehr große Datenmengen bewegt. Hierbei treten häufig hohe Latenzen auf. Denn das grundsätzliche Problem eines Cloud-Dienstes wie für den Mobilfunkhersteller sind die weltweit verteilten Nutzer. Zu Stoßzeiten wollen mehrere Millionen gleichzeitig lesen und schreiben, zugleich erwarten sie kurze Antwortzeiten.

Eine sinnvolle Lösung ist deshalb eine verteilte SQL-Datenbank. Dahinter verbirgt sich eine relationale Datenbankarchitektur, bei der mehrere Instanzen („Knoten“) des Datenbanksystems gleichzeitig und unabhängig voneinander arbeiten. Sie können sich in einem oder in mehreren Rechenzentren befinden. Das System verteilt automatisch neue und veränderte Daten sowie Abfragen auf diese Instanzen, sorgt für einen Lastausgleich und synchronisiert die Datenbankinhalte.

Dadurch wird ein einzelner Knoten nicht zu einem Engpass; hohe Leistung und Verfügbarkeit sind die Folge. Abfragen wiederum verteilt das System automatisch auf mehrere Knoten, sodass auch hier kein Flaschenhals entsteht. Ein weiterer Vorteil: Verteilte Datenbanken sind leicht skalierbar, denn bei Bedarf können beliebig viele Knoten hinzugefügt oder entfernt werden. Es gibt auf dem Markt eine ganze Reihe passender Datenbanksysteme. Doch viele davon sind stark spezialisiert und weichen vom SQL-Standard ab.

Allerdings bieten einige Systeme verteiltes SQL – moderne RDBMS mit Unterstützung für Cluster und verteilte Datenbanken. Sie wirken unabhängig von der Anzahl und der geographischen Position der Knoten wie eine einzige logische SQL-Datenbank. Administratoren greifen darauf wie auf ein monolithisches DBMS zu. Dasselbe gilt auch für API-Aufrufe durch Web- und Mobile-Apps.

Datenbankknoten sind unabhängig voneinander

Unternehmen passen sich mit verteiltem SQL rascher an ein wachsendes Geschäft oder eine hohe Volatilität der Rechenlast an. So kann beispielsweise ein E-Commerce-Unternehmen die Zahl der Knoten in der Vorweihnachtszeit erhöhen, um den erwarteten Benutzeransturm zu bewältigen. Nach dieser Hochphase ist es aber ebenso leicht möglich, die Anzahl wieder zu verringern, um Kosten zu sparen.

Ähnlich dynamisch sind beispielsweise auch die Zugriffe auf die Systeme von weltweit aktiven Finanzdienstleistern. Sie verteilen sich im Tagesverlauf unterschiedlich stark auf die einzelnen Weltregionen – je nachdem, ob dort gerade Tag oder Nacht ist. Eine zentrale Datenbank wäre dagegen immer vergleichsweise hoch ausgelastet und müsste erhebliche Reserven für Lastspitzen haben.

Mit verteiltem SQL wird diese Situation leicht bewältigt, denn es erlaubt den Aufbau von weltweit verteilten Anwendungen. Hauptfaktor dabei ist die regionale Speicherung. Angenommen, ein Unternehmen besitzt jeweils etwa ein Dutzend Niederlassungen auf dem amerikanischen Kontinent, in der EMEA-Region und in Asien. Eine Form der geographischen Verteilung könnte je einen leistungsfähigen Knoten für jede Region vorsehen. Auf diese Weise entstehen keine unnötigen Latenzzeiten bei der Verbindung mit der Datenbank.

Dabei wird das Gesamtsystem als sogenannte „Shared-Nothing-Architektur“ gestaltet: Die einzelnen Knoten arbeiten unabhängig voneinander. Der Ausfall eines Systems hat keine Auswirkung auf die anderen. Die restlichen bearbeiten alle Lese- und Schreibzugriffe wie gewohnt weiter. Sobald der Knoten wieder verfügbar ist, sorgt das DBMS automatisch dafür, dass Änderungen an den Daten auf allen Systemen synchronisiert werden. Durch diese Redundanz ist die Ausfallsicherheit deutlich größer als bei anderen Datenbankarchitekturen. Aus Nutzersicht steht die Datenbank immer zur Verfügung.

Verteiltes SQL bietet alle Vorteile des Standards

Ein weiterer wichtiger Vorteil von verteiltem SQL: Die Systeme bieten alle wichtigen Merkmale des relationalen Modells sowie die gewohnte Standarddatenbanksprache. Dadurch ist die Einführungsphase eines solchen Systems nur sehr kurz. Sämtliche Grundfunktionen inklusive der Abfragesyntax sind kompatibel zu bekannten Systemen wie MariaDB, MySQL oder PostgreSQL.

Spezifische Erweiterungen für den Umgang mit verteilten Datenbanken benötigen so nur eine kurze Einarbeitungszeit für Administratoren. Eine einheitliche Datenbankoberfläche mit Webschnittstelle sorgt zudem dafür, dass Administratoren und Profianwender ihre gewohnten Arbeitsroutinen und Skripte nutzen können. Für technisch weniger kundige Endanwender gibt es zudem eine einheitliche Benutzeroberfläche in der Cloud. Und darüber hinaus sind DBMS für verteiltes SQL leicht in typische Geschäftsanwendungen zu integrieren.

Weltweit aktiven Unternehmen bietet verteiltes SQL zahlreiche Vorteile. Ein Beispiel: Hersteller aus der Industrieproduktion können ihr Support- und Ticketing-System in ihren Märkten ausrollen und dabei lokale Datenbank-Server nutzen. Durch verteiltes SQL erhält der Hersteller ein zentrales System, das Anfragen von allen Niederlassungen bündelt.

Ähnliches gilt auch für Anwendungen im industriellen Internet der Dinge. Die Zustandsüberwachung von Maschinen und Anlagen durch Sensoren erzeugt große Datenmengen, so dass lokale Datenspeicherung deutlich effektiver ist. Durch die Verteilung der Datenbank entsteht zugleich ein zentraler Datenspeicher für Analysen, beispielsweise mithilfe des maschinellen Lernens.

So zeigt sich, dass verteiltes SQL mit MariaDB Xpand eine zukunftssichere Architektur für diejenigen Datenbankanwendungen ist, die eine bessere Skalierbarkeit und weltweite Verteilung voraussetzen – ein wichtiges Kriterium etwa für deutsche B2B- und B2C-Unternehmen nicht nur aus dem Mittelstand, die häufig auf globale Märkte zielen.

Ralf Gebhardt, Product Manager bei der MariaDB Corporation.
Ralf Gebhardt, Product Manager bei der MariaDB Corporation.
(Bild: MariaDB)

*Der Autor: Ralf Gebhardt ist Product Manager bei der MariaDB Corporation, einem führenden Anbieter von Cloud-basierten und lokalen Datenbanklösungen. Er hat einen Abschluss als Diplom-Ingenieur in der Fachrichtung Technische Informatik von der BA Stuttgart sowie IBM Deutschland. Seit 2011 für MariaDB tätig, verfügt er aus vorherigen Stationen bei der MySQL GmbH, Sun Microsystems und Oracle über jahrelange Expertise in den Bereichen Software-Entwicklung, Support, Training und Consulting mit Bezug zu Datenbanken.

(ID:47124215)