Open3

MySQL互換のPercona XtraDB Cluster (PXC)について

Junichi SatoJunichi Sato

DDLの実行に注意する

PXCはマルチマスターであるため、DDLの実行に注意が必要。
DDLの実行方法には、TOI (Total Order Isolation)とRSU (Rolling Schema Upgrade) がある。

TOIでは、全ノードでDDLが同時に実行されるが、DDLが完了するまではトランザクションが待ち状態になる。テーブルが巨大な場合、ALTER TABLEをサービス稼働中に実行しないほうが良い。

RSUでは、DDL実行中のノードがクラスタから分離されDDLを実行する。復帰した後に更新差分が適用されて、クラスタに復帰する。1ノードずつ更新することでサービス停止せずにDDLを実行できるが、DDLが反映されたカラムの削除や変更などは実行できない。

サービス停止せずに、削除や変更などを行いたいとき、pt-online-schema-changeを利用することも可能。ただしサーバーの負荷が高くなる。

参考: PXC(Galera Cluster)におけるDDLの挙動について

Junichi SatoJunichi Sato

マルチマスターについて (一般的な話)

  • マスター・スレーブ

    • 書き込みはマスター、読み込みはスレーブ
    • 台数が増えるとマスターの負荷が増えていく
  • マルチマスター

    • 全てのサーバーがマスターであり、スレーブでもある
    • 台数が増えてもマスターの負荷は増えにくいが、メンテナスが難しくなる

参考: mysqlでマルチマスター レプリケーションを設定してみる