mongodb c# ドライバーの WriteConcern 設定について少し混乱しています。
WriteConcern.Acknowledged は Journal= true および FSYNCED = true を意味しますか?
プライマリに確実に書き込みたい場合、WriteConcern.Acknowledged で十分ですか?
mongodb c# ドライバーの WriteConcern 設定について少し混乱しています。
WriteConcern.Acknowledged は Journal= true および FSYNCED = true を意味しますか?
プライマリに確実に書き込みたい場合、WriteConcern.Acknowledged で十分ですか?
WriteConcern = Acknowledged
プライマリが書き込み操作を受信したことのみを意味します。書き込み呼び出しが戻る前にデータがディスクに書き込まれるという保証はありません。データがプライマリ ノードのディスクに確実に書き込まれるようにする場合は、接続文字列で実行できるjournal=true
とが必要です。fsync=true
私は C# プログラマーではありませんが、セマンティクスだけで言えば、そうではありません。
書き込みのジャーナルと Fysncing はmongod
、ディスクへの 2 回の書き込みを効果的に待っているため、正直なところ、両方を同時に設定しても意味がありません:/
。
Journal を使用する方がよいでしょう。ジャーナリングされた書き込みが必要な場合。繰り返しになりますが、ジャーナリングされた書き込みは確認済みの書き込みとは異なります。ジャーナリングされた書き込みは、応答が返される前にディスク上に持続性を与えますが、確認済みの書き込みは、ディスクに書き込まれるのではなく、返されるために受信する必要があるだけです。
WriteConcern.Acknowledged
いいえ、古い設定と同じではありませんが、それでJournal= true and FSYNCED =true
十分であり、おそらくそれらの設定でやり過ぎていたと思います.
あなたのタイトルに設定W = 1
があることに気付きました。これは Fsync ではなく、代わりにacknowledged
. したがって、以前と同じ書き込みを取得するために必要なことは、実際にジャーナルオプションを書き込み懸念に追加することでWriteConcern.Acknowledged
あり、これにより、以前と同じ書き込み懸念が得られるはずです。