MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Ein Überblick über MariaDB Xpand (ehemals ClustrixDB)

MariaDB Xpand ist ein neues Produkt von MariaDB. Es war früher als ClustrixDB bekannt und wurde im September 2018 von der MariaDB Corporation übernommen.

ClustrixDB ist nicht mehr als separate Entität verfügbar, sondern ist jetzt Teil von MariaDB Enterprise Server. Jetzt Xpand genannt, erweitert es MariaDB Enterprise Server mit verteilter Daten- und Transaktionsverarbeitung und verwandelt es in eine verteilte SQL-Datenbank, die mit einer Shared-Nothing-Architektur auf Millionen von Transaktionen pro Sekunde skaliert werden kann. Xpand ist jedoch kein Alles-oder-Nichts-Prinzip, da DBAs sowohl replizierte als auch verteilte Tabellen verwenden können. Xpand eignet sich gut für komplexe Abfragen und Analyseverarbeitung, da es parallele Abfragen über die verfügbaren Knoten innerhalb des Clusters hinweg durchführen kann.

Im Grunde ist Xpand eine Shared-Nothing-Architektur und als Scale-out-SQL-Datenbank konzipiert, die von Grund auf neu aufgebaut wurde und ursprünglich auf handelsüblicher Hardware mit automatischer Datenumverteilung laufen konnte (so dass Sie niemals Shards verwenden müssen ). Es verfügt über eine integrierte Fehlertoleranz, auf die alle über eine einfache SQL-Schnittstelle zugegriffen werden kann, und unterstützt geschäftskritische MySQL-Funktionen (Replikation, Trigger, gespeicherte Routinen usw.). Die Lizenz ist nur als proprietäres Produkt verfügbar. Wenn Sie dieses Produkt also nutzen möchten, müssen Sie sich zuerst an den MariaDB-Vertrieb wenden, um eine gültige Lizenz zu erwerben.

Wann man MariaDB Xpand verwendet

Xpand wurde entwickelt, um große Datenmengen zu verarbeiten, und Sie können Ihre Datenbank effizienter skalieren. Das bedeutet, dass die Skalierung Ihres Clusters einfach und automatisch von Xpand selbst durchgeführt wird. Seit der Veröffentlichung von MariaDB Platform X5 ist Xpand bereits Teil der Plattform, die den Kunden als Teil der verteilten SQL-Lösung zur Verfügung gestellt wird. Die Xpand Smart-Engine ermöglicht es Kunden, über den optimalen Punkt der InnoDB-Speicher-Engine von hochleistungsfähigen gemischten Lese-/Schreib-Workloads auf einem einzelnen Knoten hinaus zu skalieren, mit der Option, Skalierung durch Replikation hinzuzufügen und eine hochverfügbare, fehlertolerante, verteilte Lösung für große Workloads skalieren.

Mit Xpand haben Sie die Flexibilität, auf Tischbasis zu skalieren. Beginnen Sie damit, Xpand nur für eine einzelne Tabelle zu verwenden, und erweitern Sie die Nutzung, wenn Ihre Anforderungen über das hinausgehen, was ein einzelner Knoten bewältigen kann. Steigern Sie die Nutzung von verteiltem SQL, wenn die Anforderungen Ihres Unternehmens über Replikation oder Clustering hinauswachsen. Wenn das Daten- oder Abfragevolumen so stark ansteigt, dass die Leistung abnimmt, können Sie mit Xpand Tabellen oder die gesamte Datenbank verteilen, um den Durchsatz und die Parallelität zu verbessern. Xpand verfügt über integrierte Hochverfügbarkeit und Elastizität, sodass Knoten nach Bedarf transparent hinzugefügt oder entfernt werden können, um zu skalieren.

Genau wie bei MariaDB ColumnStore, der spaltenorientierten intelligenten Engine, sind Engine-übergreifende JOINs zwischen replizierten und verteilten Tabellen möglich (und erwünscht). Im Gegensatz zu anderen verteilten SQL-Implementierungen, die die gesamte Datenbank verteilen und daher einen erheblichen Overhead für kleinere Tabellen haben, ermöglicht MariaDB die kombinierte Verwendung von InnoDB für replizierte kleine Datensätze und massive verteilte Datensätze über Xpand.

Leider gibt es keine formelle Dokumentation zum Status der Änderung von ClustrixDB zu MariaDB Xpand, daher sollten Sie sich vielleicht immer noch auf https://docs.clustrix.com/ verlassen, um zu erfahren, wie ClustrixDB funktioniert. Es ist auch bekannt, dass GTID von ClustrixDB nicht unterstützt wird, obwohl sich dies seit der Veröffentlichung von MariaDB 10.5 geändert haben könnte.

Wie funktioniert MariaDB Xpand?

Bereitstellung mit MariaDB Xpand erfordert, dass Sie MariaDB Enterprise Server mit installiertem Xpand-Plug-in haben und die Xpand-Knoten daneben laufen. Es ist ähnlich wie beim Einrichten der Replikation von MaxScale und MariaDB Server für Hochverfügbarkeit, und Sie können MaxScale oben platzieren, um Verbindungen zu verwalten und ein transparentes Failover zwischen den Frontend-Enterprise-Server-Instanzen mit replizierten kleineren Datensätzen in InnoDB durchzuführen. Dies wird auch empfohlen Für ein optimales Leistungserlebnis mit Xpand müssen die Front-End-Server und -Knoten auf separaten physischen Servern ausgeführt werden. Sehen Sie sich die Topologiearchitektur von MariaDB Xpand unten von MariaDB an, wie dies funktioniert:

https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /

Um weiter oben zu erklären, teilt Xpand eine Reihe von Slices für jede Tabelle, die mit Xpand erstellt wird. Jeder Slice wird auf einem primären Knoten gespeichert und dann auf einen oder mehrere andere Knoten repliziert, um die Fehlertoleranz sicherzustellen. Jeder Xpand-Knoten kann sowohl Lese- als auch Schreibvorgänge durchführen. Und jeder Knoten hat eine Karte der Datenverteilung.

Für Leseoperationen wird der größte Teil der Abfrage nach unten zu Xpand geschoben, wo die Abfrage ausgewertet wird und relevante Teile der Abfrage dann an die entsprechenden Xpand-Knoten gesendet werden. MariaDB Enterprise Server sammelt die Rückgabedaten von den Xpand-Knoten, um eine Ergebnismenge zu generieren.

Für Schreibvorgänge verwendet MariaDB Xpand eine Komponente namens „Rebalancer“, um Daten automatisch und transparent über die verfügbaren Xpand-Knoten zu verteilen.

MariaDB Xpand als verteiltes SQL

Jeder Xpand-Knoten kann sowohl lesen als auch schreiben. Wenn eine Abfrage von MariaDB Enterprise Server empfangen wird, wird sie von einem Abfrageoptimierer ausgewertet und Teile der Abfrage werden an die relevanten Xpand-Knoten gesendet. Die Ergebnisse werden gesammelt und eine einzelne Ergebnismenge an den Client zurückgegeben.

MariaDB Xpand nutzt eine Shared-Nothing-Architektur; Ein einzelner Knoten verarbeitet jede Anfrage, und Arbeitsspeicher und Speicher werden nicht gemeinsam genutzt.

MariaDB Xpand HA und Fehlertoleranz

MariaDB Xpand ist von Haus aus fehlertolerant. Xpand verwaltet zwei Kopien aller Daten mithilfe eines Rebalancer-Prozesses, der im Hintergrund ausgeführt wird. Xpand kann einen einzelnen Knoten- oder Zonenausfall ohne Datenverlust erleiden.

Bei einem Knotenausfall werden die Daten von den verbleibenden Knoten neu verteilt, wodurch der Datenschutz automatisch ohne Eingriff wiederhergestellt wird. Bei einem Zonenausfall führt der Rebalancer die gleiche Operation zwischen Knoten und verbleibenden Zonen durch.

Wenn der ausgefallene Knoten ersetzt wird, verteilt der Rebalancer die Daten neu und stellt MariaDB Xpand auf die vorgesehene Knotenanzahl wieder her.

Horizontales Scale-Out mit MariaDB Xpand

MariaDB Xpand ist von Natur aus flexibel. Wenn die Last auf MariaDB Enterprise Server zunimmt, können Sie Ihrer Bereitstellung zusätzliche Server hinzufügen und mithilfe von MariaDB MaxScale die Last zwischen ihnen ausgleichen. Jeder Server kann sich mit den Xpand-Knoten verbinden, um auf Daten zuzugreifen, die in Xpand-Tabellen gespeichert sind.

Wenn die Last auf MariaDB Xpand zunimmt, können Sie skalieren, indem Sie neue Knoten hinzufügen. Wenn Sie der Bereitstellung einen Xpand-Knoten hinzufügen, verteilt der Neuverteilungsprozess Daten von den vorhandenen Knoten neu. Nach Abschluss kann der Xpand-Knoten nun sowohl Lese- als auch Schreibvorgänge von MariaDB Enterprise Servern verarbeiten.

Wenn die Last auf MariaDB Xpand abnimmt, können Sie herunterskalieren, indem Sie Knoten entfernen. Wenn Sie einen Xpand-Knoten aus der Bereitstellung entfernen, verteilt der Rebalancing-Prozess Daten auf die verbleibenden Knoten und stellt so die Fehlertoleranz sicher.

Was macht MariaDB Xpand skalierbar?

Es gibt keine Engpässe und keine Single Points of Failure. Alle Prozessoren werden zur Unterstützung der Abfrageverarbeitung herangezogen. Abfragen werden parallelisiert und über den Cluster auf die relevanten Daten verteilt. Neue Knoten werden automatisch erkannt und in den Cluster aufgenommen. Workloads und Daten werden automatisch auf alle Knoten im Cluster verteilt. Clusterweite relationale SQL- und ACID-Eigenschaften eliminieren die Mehrknotenkomplexität bei der Entwicklung und Verwaltung von mehrschichtigen Anwendungen. Die Komplexität, die normalerweise erforderlich ist, um vorhandene Datenbankmodelle zu skalieren, um große Datenmengen zu verarbeiten, wird eliminiert. Und wenn Ihre Datenbank wächst, fügen Sie einfach Knoten hinzu.

Es gibt mehrere Dinge, die die Skalierbarkeit und Leistung beeinflussen:

  • Shared-Nothing-Architektur, die potenzielle Engpässe beseitigt. Vergleichen Sie dies mit Shared-Disk-/Shared-Cache-Architekturen, die Engpässe aufweisen, nicht skalieren und schwierig zu verwalten sind.
  • Parallelisierung von Abfragen, die mit den relevanten Daten auf den/die Knoten verteilt werden. Die Ergebnisse werden so nah wie möglich an den Daten erstellt, dann zur Konsolidierung an den anfordernden Knoten zurückgeleitet und an den Client zurückgegeben.

Dies unterscheidet sich stark von anderen Systemen, die routinemäßig große Datenmengen zu dem Knoten verschieben, der die Abfrage verarbeitet, und dann alle Daten löschen, die nicht zur Abfrage passen (normalerweise viele Daten). . Indem nur qualifizierte Daten über das Netzwerk zum anfordernden Knoten verschoben werden, reduziert Xpand den Netzwerkverkehrsengpass erheblich. Darüber hinaus nehmen mehr Prozessoren am Datenauswahlprozess teil. Durch die parallele Auswahl von Daten auf mehreren Knoten produziert das System schneller Ergebnisse, als wenn alle Daten von einem einzigen Knoten ausgewählt würden, der zuerst alle erforderlichen Daten von dem anderen sammeln muss Knoten im System.

Da sich jeder Knoten auf eine bestimmte Partition konzentriert und Arbeitselemente an andere Knoten sendet, anstatt Rohdaten von anderen Knoten anzufordern, enthält der Cache jedes Knotens mehr Daten dieses Knotens und weniger redundante Daten von anderen Knoten. Dies bedeutet, dass die Cache-Trefferraten viel höher sind, wodurch die Notwendigkeit langsamer Festplattenzugriffe erheblich reduziert wird.

Bereitstellen von MariaDB Xpand

Es gibt zwei separate MariaDB Xpand-Bereitstellungen, um mit der Verwendung von MariaDB Xpand zu beginnen. Xpand-Bereitstellungen bestehen aus MariaDB Enterprise Server-Instanzen, den so genannten Front-End-Servern, auf denen das Xpand-Plug-in installiert ist, dann laufen die Xpand-Knoten neben diesen Front-End-Servern. Für die beste Leistung können der Enterprise Server und der Xpand-Knoten auf separaten physischen Servern installiert werden.

  1. Sie müssen den MariaDB Xpand Node einrichten. Xpand-Knoten werden in einer Bereitstellung konfiguriert, um das Speicher-Back-End für MariaDB Enterprise Server mit dem Xpand-Speicher-Engine-Plugin bereitzustellen. Server speichern Daten für Xpand-Tabellen auf Xpand-Knoten und nicht im lokalen Dateisystem. Für die Installation des Xpand-Knotens ist eine Lizenz erforderlich, bei der es sich um ein JSON-Objekt handelt, und Sie können sie nur erwerben, indem Sie sich an MariaDB Sales wenden. Der Installationsprozess ist nicht so schnell wie nur ein einziger Befehl oder Klick, daher empfehlen wir Ihnen, die Installationsanleitung für den Xpand-Knoten zu lesen.
  2. Stellen Sie einen Front-End-Server bereit. Wie ich hier über die von ihnen vorgenommenen Änderungen bemerkt habe, sieht es so aus, als ob die am meisten empfohlene Methode zur Verwendung von Xpand die Verwendung von MariaDB Enterprise Server 10.5 ist. Das Xpand 

MariaDB Xpand-Hardwarekompatibilität

Wenn Sie neugierig auf die Hardwarekompatibilität sind, kann die MariaDB-Plattform in einer Vielzahl von Umgebungen ausgeführt werden. Solange Ihre MariaDB-Server in den Umgebungen laufen oder gehostet werden können, die Sie derzeit verwenden, solange Sie in der Lage sind, die Xpand-Knoten zusammen mit den MariaDB-Servern einzurichten und Xpand-Plugins installiert haben, wird dies definitiv funktionieren. Aus ihrer Dokumentation ist die Liste der physischen und Cloud-Umgebungen unten aufgeführt:

  • Lokal (lokal)
  • Gemeinsam (colo)
  • Private Cloud
  • Öffentliche Cloud
  • Hybridisiert

Bezüglich der Hardwarearchitektur ist anzumerken, dass MariaDB Enterprise Server ab MariaDB Enterprise Server 10.4.10-4 (2019-11-18) nur x86_64-Hardwarearchitekturplattformen unterstützt.

Fazit

MariaDB Xpand vereinfacht Effizienz und Erweiterbarkeit auf sehr bequeme Weise. Der attraktivste Aspekt dieses Produkts ist, dass Sie auch die Standard-SQL-Funktionen von MariaDB verwenden können. Es kann in Ihre vorhandene MariaDB-Umgebung eingebettet werden, die die Vorteile seiner Funktionen und Skalierbarkeit nutzen kann. Obwohl das verlockend sein mag, erfordert es eine spezielle Lizenzierung und hohe Gebühren, damit Sie dieses Produkt nutzen können. Wenn es für Ihre Unternehmensanwendung einen Zweck erfüllt, ist MariaDB Xpand möglicherweise einen Versuch wert.