Galera Cluster は MySQL/MariaDB をマルチマスタ構成で冗長化するためのアプリケーション。 マルチマスタなので、本来はどのノードに対しても書き込みを行うことができる。 ただ、後述する理由からどうやら書き込みに使うノードはひとつに制限した方が良さそうだと考えるようになった。 まず、Galera Cluster がノード間でデータの整合性を保つのに使用するメカニズムは楽観的排他制御にもとづいている。 楽観的排他制御は、対象のリソース (テーブル・行) を操作する際に、自分が知っている状態から変更されているかを確認することで、割り込んでしまうのを自ら防ぐというもの。 そのため、リソースに排他ロックをかけたとしてもノードをまたぐと別のトランザクションからのアクセスをブロックすることができない。 代わりに、対象が別のノードから既に変更されていることをノードが検出した場合、ク
![Galera Cluster の書き込みノードはひとつに制限した方が良さそう - CUBE SUGAR CONTAINER](https://cdn-ak-scissors.b.st-hatena.com/image/square/6735bc18a5c8d8911570ef145b9ca38c8de99ad9/height=288;version=1;width=512/https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F51kU2EFP5UL._SL160_.jpg)