株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

5.7からのデフォルトはAFTER_SYNC、それまでの設定はAFTER_COMMITに該当する

準同期レプリケーション動作時のレプリケーション方式で、AFTER_SYNCはLossless型と言われている。
5.6までは、rpl_semi_sync_master_wait_pointというパラメータ自体なかった。

AFTER_COMMITでは、Slave側のストレージエンジンへのCOMMITが完了する前にクライアントへOKを返す。
あくまで、Slave側へのリレーログへの書き込みが完了したらクライアントへOKを返すので、データベースの状態は、常に一致しているとは言い切れない。
なので、Slaveが追従しているタイミングで、Masterが切り替わった場合、それまでに発行されてたクエリがないことになってしまう。

一方、AFTER_SYNCでは、COMMITする前にACK(受信確認)を待つようになっている。
ということは、Master上でCOMMITしたトランザクションは、SlaveでもCOMMITしたといえる。
なので、原則的にデータベースの内容は完全一致するはず。というすごくイケてるパラメータ。
(のはず。であっているよね( ^ω^)・・・)

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)