Journal InTime


2015-05-14 (Thu) [長年日記]

_ MySQL/MariaDBの準同期レプリケーションの改善

MySQL 5.5/5.6、MariaDB 10.0の準同期レプリケーションでは、マスタ側でcommitした直後にスレーブからのバイナリログの受信完了通知を待つ仕組みになっているため、commitされたデータが他のセッションからreadされた後でスレーブにフェイルオーバーした際にそのデータが欠損する可能性があり、MySQL 5.7でloss-less semi-synchronous replicationという、commit前に受信完了通知を待つ仕組みが導入されている。

MariaDBの方には同様の修正が入ってないのかなと思ったら、10.1にEnhanced semisync replicationという名前で入っているようだ(この記事を見るとこちらの名前の方が由緒正しい?)。

MySQL 5.6向けのパッチはあるようだが、MariaDB 10.0向けのパッチは見当たらなかった。Googleさんのパッチ袋とかに入ってないだろうか。