1

mongodb c# ドライバーの WriteConcern 設定について少し混乱しています。

WriteConcern.Acknowledged は Journal= true および FSYNCED = true を意味しますか?

プライマリに確実に書き込みたい場合、WriteConcern.Acknowledged で十分ですか?

4

2 に答える 2

2

WriteConcern = Acknowledgedプライマリが書き込み操作を受信したことのみを意味します。書き込み呼び出しが戻る前にデータがディスクに書き込まれるという保証はありません。データがプライマリ ノードのディスクに確実に書き込まれるようにする場合は、接続文字列で実行できるjournal=trueとが必要です。fsync=true

于 2013-05-09T17:38:06.100 に答える
1

私は C# プログラマーではありませんが、セマンティクスだけで言えば、そうではありません。

書き込みのジャーナルと Fysncing はmongod、ディスクへの 2 回の書き込みを効果的に待っているため、正直なところ、両方を同時に設定しても意味がありません:/

Journal を使用する方がよいでしょう。ジャーナリングされた書き込みが必要な場合。繰り返しになりますが、ジャーナリングされた書き込みは確認済みの書き込みとは異なります。ジャーナリングされた書き込みは、応答が返される前にディスク上に持続性を与えますが、確認済みの書き込みは、ディスクに書き込まれるのではなく、返されるために受信する必要があるだけです。

WriteConcern.Acknowledgedいいえ、古い設定と同じではありませんが、それでJournal= true and FSYNCED =true十分であり、おそらくそれらの設定でやり過ぎていたと思います.

編集

あなたのタイトルに設定W = 1があることに気付きました。これは Fsync ではなく、代わりにacknowledged. したがって、以前と同じ書き込みを取得するために必要なことは、実際にジャーナルオプションを書き込み懸念に追加することでWriteConcern.Acknowledgedあり、これにより、以前と同じ書き込み懸念が得られるはずです。

于 2013-05-09T14:29:47.247 に答える