LoginSignup
1
1

More than 5 years have passed since last update.

MariaDBのParallel Replicationの粒度

Posted at

ざっくりとしたメモ

マスターとスレーブが1:1の場合はテーブル単位での粒度で並列化を行う
仕組みとしてはグループコミットをcidを利用して、同じcid内だったらお互いに競合しないから異なるワーカースレッドによって並列化する。
違うcidだったら(テーブル内の同じ行を更新したり)競合する可能性があるので順番待ちする、という戦略

マルチソースレプリケーション等を行う場合はGTIDを用いて並列化する。
GTIDの最初のブロックであるdomain IDを見て、domain IDの粒度で並列化を行う。
あちらのサーバのDBにdomain id1を割り当てて、こちらのサーバのDBにdomain id2を割り当てると
domain id1内で行われたトランザクションの順序(e.g. T1->T2->T3)と
domain id2内で行われたトランザクションの順序(e.g. T4->T5->T6)は保つが
双方のレプリケーション適応は任意の順で挟まれた形で適応される(e.g.1 T1->T2->T4->T5->T3->T6, e.g.2 T1->T4->T5->T2->T6->T3)

どちらにしてもeventual consistencyなので必ず最新のデータにアクセスしたいならマスターにアクセスが必要

MySQL5.6のslave-parallel-workersの設定で並列化される粒度はDB毎なのでテーブル単位での並列化は行えない

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1