Потому что, как и любая другая оптимизация, она не подходит для любой рабочей нагрузки.
Galera может быть перегружена высокой скоростью транзакций или когда транзакции обновляют много строк. Это также может привести к задержкам приложений в COMMIT, поскольку кластер синхронизирован.
Galera также не обновляет другие узлы синхронно. Он просто передает рабочие наборы синхронно. Таким образом, это похоже на стандартную репликацию в полусинхронном режиме. Поэтому существует небольшая вероятность чтения устаревших данных из другого узла кластера. Есть опция, которую вы можете установить, чтобы заставить SELECT ждать, пока очередь рабочих наборов не обновит базу данных, но это означает, что у вас есть задержки в SELECT. И даже шанс получить тупик на SELECT, который кажется нелогичным.
Galera великолепна, но не универсальна для всех. Есть все еще веские причины использовать асинхронную репликацию.
wsrep_causal_reads
... устанавливается на ON,SET GLOBAL wsrep_causal_reads = 'ON';
чтобы получить выборки, чтобы дождаться, пока все наборы записи не будут выполнены.Некоторые недостатки Galera включают в себя:
Есть также некоторые ограничения, которые следует отметить, но, возможно, их можно обойти:
Для получения дополнительной информации см. Подробности в Codership (и здесь о блокировке DDL), MariaDB и Percona .
РЕДАКТИРОВАТЬ: Обратите внимание, что некоторые утверждают, что тесно связанные кластеры базы данных, такие как Galera, не должны иметь географически распределенных узлов из-за проблем, связанных с присущей ненадежности сетевого уровня. Вместо этого в этих случаях должны использоваться асинхронные решения. См. Как не использовать MySQL High Availability: географическое распределение узлов с использованием Galera-репликации . Тем не менее, блог Galera утверждает, что (2015):
источник