[前][次][番号順一覧][スレッド一覧]

mysql:16620

From: 内村健司 <内村健司 <uchimura.kenji@xxxxxxxxxx>>
Date: Mon, 21 Dec 2020 14:45:13 +0900
Subject: [mysql 16620] Re: 準同期レプリケーションの非同期切り替について

yoku0825さん、はじめまして。


ご連絡ありがとうございます。


> > ・rpl_semi_sync_master_timeout=1000(10秒)

> 

> rpl_semi_sync_master_timeout=1000 は1秒です。

> メールの書き間違いか、10秒(デフォルトはこちら)と1秒を取り間違えているかが気になります。

> なお、semisyncプラグインは「一度タイムアウトするとAsyncにフォールバックする」ので、

> 最初の1秒または10秒待たされた以降はタイムアウトを待たずにAsyncレプリケーションでレプリカに流れます。



「rpl_semi_sync_master_timeout」については「10000」(10秒)でした。ゼロを一つ少なかったです。すいません。


> > Rpl_semi_sync_master_no_tx

> 

> これがカウントアップされそうなあたりをちょっと見てみましたが、binlog_order_commitとかslave_preserve_commit_orderとか関係あるのかないのかなコードが出てきます。

> 心当たりはありますか?

> 

> https://github.com/mysql/mysql-server/blob/mysql-8.0.19/plugin/semisync/semisync_master.cc#L701-L718



これについては心当たりはありません。
設定したパラメータにもなかったような気がします。。。


> > スレーブからエラーを返した来た際も非同期への切り替えが行われるように見えます。

> 

> どんなエラーでしょうか…? (リレーログの書き込みに失敗したとしても、明確なエラー応答はせずに黙ってACKを返さないものだと思っていました)



エラーは「Rpl_semi_sync_master_no_tx」がカウントアップされたことを言っておりました。


「Rpl_semi_sync_master_status」がOFFになった原因を調べていたら、
「Rpl_semi_sync_master_no_tx」の値が増加した時間帯に「Rpl_semi_sync_master_status」が「OFF」になっていた為、
相関があるのかなと思った次第です。

「Rpl_semi_sync_master_status」が「OFF」になった時間帯はアプリケーションが1秒当たり100件以上のインサート文発行している時間帯でしたので、
そいつが原因で「Rpl_semi_sync_master_no_tx」がカウントアップされ、「Rpl_semi_sync_master_status」がOFFになったのでは??と想定しております。


以上です。




On Mon, 21 Dec 2020 13:29:11 +0900
yoku0825 <yoku0825@xxxxxxxxxx> wrote:

> こんにちは、yoku0825といいます。

> 

> 先に伺っておきたいのですが、

> 

> > ・rpl_semi_sync_master_timeout=1000(10秒)

> 

> rpl_semi_sync_master_timeout=1000 は1秒です。

> メールの書き間違いか、10秒(デフォルトはこちら)と1秒を取り間違えているかが気になります。

> なお、semisyncプラグインは「一度タイムアウトするとAsyncにフォールバックする」ので、

> 最初の1秒または10秒待たされた以降はタイムアウトを待たずにAsyncレプリケーションでレプリカに流れます。

> 

> 

> > Rpl_semi_sync_master_no_tx

> 

> これがカウントアップされそうなあたりをちょっと見てみましたが、binlog_order_commitとかslave_preserve_commit_orderとか関係あるのかないのかなコードが出てきます。

> 心当たりはありますか?

> 

> https://github.com/mysql/mysql-server/blob/mysql-8.0.19/plugin/semisync/semisync_master.cc#L701-L718

> 

> 

> > スレーブからエラーを返した来た際も非同期への切り替えが行われるように見えます。

> 

> どんなエラーでしょうか…? (リレーログの書き込みに失敗したとしても、明確なエラー応答はせずに黙ってACKを返さないものだと思っていました)

> エラーを返すとしたらマスターのエラーログとかに残るのですかね(SQLスレッドは準同期レプリケーションに関わっていないので、SQLスレッドのエラーは関係ありません)

> 

> 

> yoku0825,

> 

> 2020年12月21日(月) 11:45 内村健司 <uchimura.kenji@xxxxxxxxxx>:

> >

> > 情報書き漏れました。すいません。

> >

> > mysql のバージョンは8.0.19の無償版です。

> > OSはrhel7.7です。

> >

> > 以上、よろしくお願いします。

> >

> > 2020/12/21 11:28、内村健司 <uchimura.kenji@xxxxxxxxxx>のメール:

> >

> > > こんにちは。内村と申します。

> > >

> > >

> > > 初めて投稿させていただきます。

> > > 準同期レプリケーションの非同期切り替えについてご教授ください。

> > >

> > >

> > > 現在、ロスレスの準同期でレプリケーションを構築しており、

> > > 「Rpl_semi_sync_master_status」をZabbixで監視(ON以外になったら、警告)する運用にしております。

> > >

> > >

> > > レプリケーションは以下の設定です。

> > > ・rpl_semi_sync_master_timeout=1000(10秒)

> > > ・rpl_semi_sync_master_wait_point=AFTER_SYNC

> > >

> > >

> > > マスター側のAPLでデータ更新量が少ないコミット処理を多数連続で発行した場合、

> > > 「Rpl_semi_sync_master_no_tx」の値が増加し、

> > > そのタイミングで「Rpl_semi_sync_master_status」がOFFになっております。

> > >

> > >

> > > 準同期から非同期への切り替えはマスターがスレーブにバイナリデータを転送し、

> > > 10秒返答がなかった場合のみ行われると考えていたのですが、

> > > スレーブからエラーを返した来た際も非同期への切り替えが行われるように見えます。

> > >

> > > 「Rpl_semi_sync_master_no_tx」の値が増加したら、「Rpl_semi_sync_master_status」が「OFF」になる。

> > > は動作として正しいのでしょうか。

> > >

> > >

> > > 準同期から非同期への切り替え契機は以下のパターンであってますでしょうか。

> > > ・スレーブから応答がない場合

> > > ・スレーブから応答エラーと返信が返ってきた場合 ★

> > >

> > > また、その他の条件でも非同期切り替えが発生するのでしょうか。

> > >

> > >

> > > ご存じの方がいらっしゃら、コメント・ご教授頂けると幸いです。

> > >

> > > 以上、よろしくお願いいたします。

> > >

> > >

> > > ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

> > > 内村健司

> > > インタービレッジ株式会社

> > >

> > > ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞


[前][次][番号順一覧][スレッド一覧]

     16617 2020-12-21 11:28 [内村健司 <uchimura.k] 準同期レプリケーションの非同期切り替について
     16618 2020-12-21 11:45 ┗[内村健司 <uchimura.k] Re: [mysql 16617] 準同期レプリケーションの非同期切り替について
     16619 2020-12-21 13:29  ┗[yoku0825 <yoku0825@x] Re: [mysql 16618] Re: [mysql 16617] 準同期レプリケーションの非同期切り替について
->   16620 2020-12-21 14:45   ┗[内村健司 <uchimura.k] Re: 準同期レプリケーションの非同期切り替について
     16621 2020-12-22 18:27    ┗[yoku0825 <yoku0825@x] Re: [mysql 16620] Re: 準同期レプリケーションの非同期切り替について
     16622 2020-12-22 22:15     ┗[内村健司 <uchimura.k] Re: 準同期レプリケーションの非同期切り替について
     16623 2020-12-23 00:51      ┗[yoku0825 <yoku0825@x] Re: [mysql 16622] Re: 準同期レプリケーションの非同期切り替について
     16624 2020-12-23 08:41       ┗[内村健司 <uchimura.k] Re: 準同期レプリケーションの非同期切り替について