Как изменение уровня изоляции влияет на Galera Cluster - PullRequest
0 голосов
/ 28 февраля 2019

Я сейчас играю с кластером Percona XtraDB, который основан на кластере Galera.В Galera docs я видел следующее : Warning: When using Galera Cluster in master-slave mode, all four levels are available to you, to the extend that MySQL supports it. In multi-master mode, however, you can only use the REPEATABLE-READ level.

И проблема в том, что мое приложение использует READ-COMMITTED уровень изоляции.Поэтому я хочу узнать, как работает Galera с этим уровнем изоляции.Согласно вышеупомянутому предупреждению, Galera должна работать только в режиме «ведущий-ведомый».Это означает, что только один узел должен разрешать запись.

Но я провел эксперимент: имея кластер с 3 узлами (на одном ПК с использованием Docker), я изменил уровень изоляции на всех узлах на READ-COMMITTED, перезапустилэти узлы и пытались выполнить запросы на запись на каждом узле - все выполнено успешно, что противоречит приведенному выше предупреждению.

Итак, вот мои вопросы:

  1. Как Galera реагирует на уровни изоляции, отличные от «REPEATABLE-READ»?
  2. Как проверить, работает ли кластер в режиме мастер-мастер или мастер-подчиненный?Разве подчиненные узлы не должны отклонять запросы на запись?

1 Ответ

0 голосов
/ 28 февраля 2019

Насколько я мог понять различные источники информации (например, это и это ), "локальный" уровень изоляции может быть любым из поддерживаемых ядром СУБД.В последней статье говорится:

Отдельные узлы кластера могут обеспечить любой уровень изоляции в той степени, в которой это поддерживается MySQL / InnoDB.

И только связь между узлами работает по-разному: Galera просто не поддерживает SERIALIZABLE уровень и может работать с другими.

И насчет второго вопроса.Галера всегда работает в режиме «мастер-мастер» (ссылка?).И только некоторые ручные изменения в конфигурации могут заставить «подчиненные» экземпляры отклонять запросы «записи».

Тем не менее, если у кого-то есть дополнительная информация или он знает, что мой ответ неверен - напишите свой ответ.

...