Ponieważ, jak każda inna optymalizacja, nie pasuje do każdego obciążenia.
Galera może zostać przytłoczona wysokim tempem transakcji lub gdy transakcje aktualizują wiele wierszy. Może to również powodować opóźnienia aplikacji w trybie COMMIT podczas synchronizacji klastra.
Galera również nie aktualizuje synchronicznie innych węzłów. Po prostu przesyła zadania synchronicznie. W ten sposób przypomina trochę standardową replikację w trybie półsynchronicznym. Dlatego nadal istnieje niewielka szansa na odczyt nieaktualnych danych z innego węzła klastra. Istnieje opcja, którą można ustawić, aby wymusić na SELECT czekanie, aż kolejka zadań zaktualizuje bazę danych, ale oznacza to, że masz opóźnienia w SELECT. A nawet szansa na zablokowanie SELECT, co wydaje się sprzeczne z intuicją.
Galera jest genialna, ale nie jest uniwersalną technologią. Nadal istnieją dobre powody, aby używać replikacji asynchronicznej.
wsrep_causal_reads
... ustawiona na WŁĄCZONA z,SET GLOBAL wsrep_causal_reads = 'ON';
aby selekcje czekały na zakończenie wszystkich zestawów zapisu.Niektóre wady Galera obejmują:
Istnieją również pewne ograniczenia, na które należy zwrócić uwagę, ale być może można je obejść:
Aby uzyskać więcej informacji, zobacz szczegóły w Codership (i tutaj na temat blokowania DDL), MariaDB i Percona .
EDYCJA: Zauważ też, że niektórzy twierdzą, że ciasno powiązane klastry baz danych, takie jak Galera, nie powinny mieć węzłów rozproszonych geograficznie z powodu problemów wynikających z nieodłącznej niewiarygodności warstwy sieci. Zamiast tego w takich przypadkach należy zastosować rozwiązania asynchroniczne. Zobacz: Jak nie robić MySQL Wysoka dostępność: dystrybucja węzłów geograficznych z niewłaściwym użyciem replikacji opartej na Galera . Niemniej blog Galera stwierdza, że (2015):
źródło