В настоящее время я играю с кластером Percona XtraDB, который основан на кластере Galera. В документации Galera я увидел следующее: 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 должна работать только в режиме master-slave. Это означает, что только один узел должен разрешать запись.
Но я провел эксперимент: имея кластер из 3 узлов (на одном ПК с помощью Docker), я изменил уровень изоляции на всех узлах на READ-COMMITTED, перезапустил эти узлы и попытался выполнить запросы на запись на каждом узле — все успешно, что противоречит предупреждению выше.
Итак, вот мои вопросы:
- Как Galera реагирует на уровни изоляции, отличные от «ПОВТОРЯЕМОЕ ЧТЕНИЕ»?
- Как я могу проверить, работает ли кластер в режиме master-master или master-slave? Разве ведомые узлы не должны отклонять запросы на запись?