Posted at

MariaDB Galera Clusterでマルチマスタレプリケーションの際のwsrep_auto_increment_controlについて

More than 1 year has passed since last update.


はじめに

MariaDB Galera Clusterでマルチマスタレプリケーションをキメているみなさんこんにちは。

マルチマスタの場合、クラスタを構成する各ノードで衝突が起きないようにGaleraがイイ感じにしてくれてるわけですが、AUTO_INCREMENTもイイ感じにしてくれているようです。


AUTO_INCREMENT

そもそもAUTO_INCREMENTって何という方は前回記事を書きましたのでご参照ください。

MariaDBのAUTO_INCREMENTについて

上記の記事にも書いていますが、マルチマスタの場合、クラスタサイズ分のINCREMENTを設定し、OFFSETは1ずつズラす必要があります。


wsrep_auto_increment_control

そこで登場するのがこのパラメータです。

wsrep-auto-increment-control - Galera Cluster Documentation

まさにクラスタ内のAUTO_INCREMENTで使う値をイイ感じにしてくれると書いてますね!

Galera用語で言うところのPrimary Componentsに接続しているノードの数にincrementとoffsetを調節してくれます。これによって2つのノードが同じincrementの値を使う可能性を下げてくれます。

defaultでONのパラメタなので、特に気にする必要はないですが、シングルマスタの場合は明示的にOFFにしてもいいかもしれません。


値を確認してみる

検証環境で実際に確認してみました。以下、3ノードのクラスタです。

[root@mariadb1 ~]# mysql -u root -e "SHOW STATUS LIKE 'wsrep_cluster_size'" 

+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+

[root@mariadb1 ~]# mysql -uroot -e "SHOW VARIABLES LIKE '%auto_inc%';"
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| auto_increment_increment | 3 |
| auto_increment_offset | 2 |
| wsrep_auto_increment_control | ON |
+------------------------------+-------+

[root@mariadb2 ~]# mysql -uroot -e "SHOW VARIABLES LIKE '%auto_inc%';"
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| auto_increment_increment | 3 |
| auto_increment_offset | 3 |
| wsrep_auto_increment_control | ON |
+------------------------------+-------+

[root@mariadb3 ~]# mysql -uroot -e "SHOW VARIABLES LIKE '%auto_inc%';"
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| auto_increment_increment | 3 |
| auto_increment_offset | 1 |
| wsrep_auto_increment_control | ON |
+------------------------------+-------+

incrementはクラスタサイズになっていて、offsetはちゃんとズレてますね!


おわりに

逆にマルチマスタじゃないひとのほうが気を付けるべきパラメータでしたね。


参考