0

我目前正在使用基于 Galera Cluster 的 Percona XtraDB Cluster。在 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 应该只能在主从模式下工作。这意味着只有一个节点应该允许写入。

但我做了一个实验:拥有一个有 3 个节点的集群(在使用 Docker 的单台 PC 上),我将所有节点上的隔离级别更改为 READ-COMMITTED,重新启动这些节点并尝试在每个节点上进行写入查询 - 全部成功,这与上面的警告相冲突。

所以,这里我的问题是:

  1. Galera 如何对非“REPEATABLE-READ”隔离级别做出反应?
  2. 如何查看集群是主主还是主从模式?从节点不应该拒绝写查询吗?
4

1 回答 1

0

据我所知,不同的信息源(如thisthis),“本地”隔离级别可能是 DBMS 引擎支持的任何级别。后一篇文章说:

单个集群节点可以在 MySQL/InnoDB 支持的范围内提供任何隔离级别。

只有节点之间的通信工作方式不同:Galera 根本不支持SERIALIZABLE级别并且可以与其他级别一起工作。

关于第二个问题。Galera 始终以“master-master”模式工作(链接?)。并且只有配置中的一些手动更改可以强制“从”实例拒绝“写入”查询。

不过,如果有人有更多信息或知道我的答案是错误的 - 欢迎写下你的答案。

于 2019-02-28T15:26:26.713 回答