最近、私は挿入操作によってmongodの遅いクエリが起きることが判明しました。 セカンダリmongodインスタンスが別のノードからのデータを同期すると、常にheppendします。レプリケート・セット・シンク
レプリケートセットには3つのメンバーがあり、クライアントドライバに「w:2」と書かれています。
oplog syncは挿入処理をブロックしますか? ドキュメントを同期ノードに挿入するとどうなりますか?
最近、私は挿入操作によってmongodの遅いクエリが起きることが判明しました。 セカンダリmongodインスタンスが別のノードからのデータを同期すると、常にheppendします。レプリケート・セット・シンク
レプリケートセットには3つのメンバーがあり、クライアントドライバに「w:2」と書かれています。
oplog syncは挿入処理をブロックしますか? ドキュメントを同期ノードに挿入するとどうなりますか?
writeConcernの設定w:2
は、レプリカセットの2人のメンバーが書き込みが起こったことを確認したときに書き込みが確認されることを意味します(https://docs.mongodb.com/v3.2/reference/write-concern/#w-option参照)。つまり、プライマリは1つのノードとしてカウントされるため、書き込みがoplogを介して他の1つのノードにレプリケートされるまで待機します。
これは、挿入/更新クエリの「速度」がネットワークの速度に左右されることを意味します。ネットワークが遅い、または輻輳している場合は、挿入が「遅い」と表示されます。これは複製が何もブロックしていないためではなく、輻輳したネットワークにw:2
を指定しただけの効果です。
同期ソースの変更とスローインサートの両方を引き起こすネットワーク輻輳が存在する可能性がありますが、レプリケーションプロセス自体は挿入操作をブロックしません。