Denn wie bei jeder anderen Optimierung passt es nicht zu jeder Arbeitslast.
Galera kann von einer hohen Transaktionsrate überfordert sein oder wenn Transaktionen viele Zeilen aktualisieren. Außerdem kann es bei Ihren Anwendungen zu Verzögerungen bei COMMIT kommen, wenn der Cluster synchronisiert wird.
Galera aktualisiert auch andere Knoten nicht synchron. Es werden nur Worksets synchron übertragen. Auf diese Weise ähnelt es der Standardreplikation im semisynchronen Modus. Daher besteht immer noch eine geringe Wahrscheinlichkeit, veraltete Daten von einem anderen Clusterknoten zu lesen. Es gibt eine Option, mit der Sie SELECT zwingen können, zu warten, bis die Warteschlange der Worksets die Datenbank aktualisiert hat. Dies bedeutet jedoch, dass Sie bei SELECT Verzögerungen haben. Und es besteht sogar die Möglichkeit, dass SELECT blockiert wird, was nicht intuitiv zu sein scheint.
Galera ist brillant, aber keine einheitliche Technologie. Es gibt immer noch gute Gründe, die asynchrone Replikation zu verwenden.
wsrep_causal_reads
... auf ON gesetztSET GLOBAL wsrep_causal_reads = 'ON';
, um die Auswahl zu treffen und zu warten, bis alle Schreibsätze abgeschlossen sind.Einige Nachteile von Galera sind:
Es gibt auch einige Einschränkungen, die beachtet werden sollten, aber möglicherweise umgangen werden können:
Weitere Informationen finden Sie unter Codership (und hier zum Blockieren von DDL), MariaDB und Percona .
BEARBEITEN: Beachten Sie auch, dass einige argumentieren, dass eng gekoppelte Datenbankcluster, wie z. B. Galera, wegen der Probleme, die sich aus der inhärenten Unzuverlässigkeit der Netzwerkschicht ergeben, keine geoverteilten Knoten haben sollten. Stattdessen müssen in diesen Fällen asynchrone Lösungen verwendet werden. Siehe: Vorgehensweise bei MySQL-Hochverfügbarkeit: Geografische Knotenverteilung mit Galera-basiertem Replikationsmissbrauch . Dennoch bloggen die Galera besagt , dass (2015):
quelle