germanyuksettings

Was bedeutet Galera

Galera Cluster
Codership entwickelt Replikations- und Clustering-Lösungen für Open-Source-Datenbanken und übernimmt dabei neue Ideen aus der jüngsten DBMS- und Distributed-Computing-Forschung, um eine grundlegend neue Hochverfügbarkeitslösung zu entwickeln. Das Flaggschiffprodukt, Codership's Galera Cluster (mehr Infos Cluster Seminare) ™ for MySQL, eine synchrone aktiv-aktive Cluster-Software, bietet hohe Systemverfügbarkeit ohne Datenverlust und Skalierbarkeit für Webgeschäfte mit hohem Datenaufkommen. Galera ist ein Open-Source-Produkt und wird mit MariaDB Galera Cluster und Percona XtraDB Cluster betrieben. Es ist in Linux- und OpenStack-Distributionen enthalten.

Online-Dienste stehen heute vor 3 Anforderungen, die die Wahl einer Datenbank-Clustering-Lösung bestimmen: 
  • Die Notwendigkeit eines kontinuierlichen Betriebs und eines höheren Grades an Hochverfügbarkeit (siehe Hochverfügbarkeit Schulungen) als traditionell erforderlich,
  • die Fähigkeit zur Skalierung, wenn die Beliebtheit der Dienste wächst - Sprünge von 20-mal über Nacht oder mehr sind üblich
  • die Fähigkeit zur Skalierung minimiert die Infrastrukturkosten, wenn sie auf Cloud-Technologie laufen.

Galera Cluster ist auf einer Kommunikations-Schicht aufgebaut, die eine virtuelle synchrone QoS (Quality of Service) implementiert. Die virtuelle Synchronität vereinheitlicht die Dienste der Datenlieferung und der Cluster-Mitgliedschaft und bietet einen klaren Formalismus für die Semantik der Nachrichtenlieferung. Während die virtuelle Synchronität die Konsistenz garantiert, garantiert sie nicht die zeitliche Synchronität, die für einen reibungslosen Multi-Master-Betrieb erforderlich ist. Um dem entgegenzuwirken, implementiert Galera Cluster eine eigene, zur Laufzeit konfigurierbare zeitliche Ablaufsteuerung. Die Flusskontrolle hält die Knoten auf den Bruchteil einer Sekunde synchron. Ein minimaler Galera Cluster besteht aus 3 Knoten und es wird empfohlen, mit einer ungeraden Anzahl von Knoten zu laufen. Der Grund dafür ist, dass, sollte es ein Problem bei der Anwendung einer Transaktion auf einem Knoten geben (z.B. Netzwerkproblem oder die Maschine reagiert nicht mehr), die beiden anderen Knoten ein Quorum (d.h. eine Mehrheit) haben und in der Lage sind, mit dem Transaktions-Commit fortzufahren.

Wenn eine Transaktion COMMIT ausgibt, werden vor dem eigentlichen COMMIT alle Änderungen (INSERTs / UPDATEs / DELETEs), die am DB-Knoten aufgetreten sind, zusammen mit den modifizierten Zeilen "PRIMARY KEYS" als WRITE-SET gesammelt. Der Quellknoten sendet dann dieses WRITE-SET an alle Knoten im Cluster, einschließlich des Ursprungsknotens, und führt dann einen deterministischen Zertifizierungstest des Schreibsatzes unter Verwendung der PRIMARY KEYS im Schreibsatz und der tatsächlichen PRIMARY KEY-Werte in den Knoten durch. Dieser Test dient dazu, die Integrität des Schreibsatzes zu bestimmen. Wenn der Test fehlschlägt, verwirft der Ursprungsknoten den Schreibsatz, und der Cluster rollt die ursprüngliche Transaktion zurück. Wenn der Zertifizierungstest erfolgreich ist, werden die Transaktions-Commits und Schreibvorgänge auf alle Knoten im Cluster angewendet, wodurch die Replikation (siehe Replikation Seminare) durchgeführt wird.

Im Galera Cluster müssen sich alle Knoten auf einen Konsens über das Ergebnis der Transaktion einigen, und die Replikation erfolgt. Daraufhin benachrichtigt der Ursprungsknoten den Client über den erfolgreichen Transaktions-Commit. Jeder Transaktion wird eine globale Ordinalsequenznummer zugewiesen. Während des deterministischen Zertifizierungstests auf dem Schreibsatz prüft der Cluster die aktuelle Transaktion mit der letzten erfolgreichen Transaktion.

Zertifizierungsbasierte Replikationsmethode

Die Hauptidee bei der zertifikatsbasierten Replikation ist, dass eine Transaktion konventionell ausgeführt wird, bis sie den Commit-Punkt erreicht, vorausgesetzt, es gibt keinen Konflikt. Dies wird als optimistische Ausführung bezeichnet.

Wenn der Client einen COMMIT-Befehl ausgibt, aber bevor der eigentliche Commit-Punkt erreicht ist, werden alle von der Transaktion und den Primärschlüsseln der geänderten Zeilen an der Datenbank (mehr dazu Datenbank Schulung) vorgenommenen Änderungen in einem Schreibsatz gesammelt. Die Datenbank sendet diesen Schreibsatz dann an alle anderen Knoten.

Der Schreibsatz wird dann unter Verwendung der Primärschlüssel einem deterministischen Zertifizierungstest unterzogen. Dies wird auf jedem Knoten im Cluster durchgeführt, einschließlich des Knotens, von dem der Schreibsatz stammt. Er bestimmt, ob der Knoten den Schreibsatz anwenden kann oder nicht.

Wenn der Zertifizierungstest fehlschlägt, verwirft der Knoten den Schreibsatz, und der Cluster rollt die ursprüngliche Transaktion zurück. Wenn der Test erfolgreich ist, wird die Transaktion festgeschrieben, und der Schreibsatz wird auf den Rest des Clusters angewendet.

Generische Replikationsbibliothek

Die Replikationsfunktionalität von Galera ist als Shared Library implementiert und kann mit jedem Transaktionsverarbeitungssystem verknüpft werden, das die wsrep API Hooks implementiert. Die Galera Replikationsbibliothek ist ein Protokollstack, der Funktionalität zur Vorbereitung, Replikation und Anwendung von Transaktionsschreibsätzen bietet.












129.311
TEILNEHMENDE
2.561
SEMINARTHEMEN
32.036
DURCHGEFÜHRTE SEMINARE
aegallianzaxabayerElement 1boschdeutsche-bankdeutsche-postdouglasfordfujitsuhenkelhermeslufthansamercedesnokiasonytelekomvwzdf