2011-02-02 12 views
4

バージョン1.7.5以降、MongoDBはいわゆるシングルサーバ耐性をサポートしています。 documentationによれば、これは、サーバークラッシュのイベントで応答可能なwrite-ahead-logを使用することによって実現されます。MongoDBは(ジャーナリングを有効にして)いつfsync()を呼び出しますか?

私はトラブルにMongoDBのドキュメントで「Journaling」ページの「謝辞をコミット」セクションを理解することがあります。

あなたがグループを待つことができますがGetLastErrorをコマンドで確認をコミットします。 --durで実行している場合、fsync:trueオプションは、データが物理的にジャーナルに書き込まれた後にを返します(実際にfsyncしているのではなく)です。グループコミット間隔(see above)はかなりのものであることに注意してください。fsyncを使用せずにgetLastErrorを呼び出すか、レプリケーションでw:パラメータを使用して呼び出すことをお勧めします。 1.8.0以降のリリースでは、コミット確認の遅延が短くなります。

これは、ジャーナリングがディスクへの変更をフラッシュするためにオペレーティングシステムに依存していることを意味しますか?または、ユーザーがfsyncされているかどうかに関係なく、write-ahead-logが100msごとにfsyncされていることを意味しますか?

答えて

1

write-ahead-logは100msごとにfsyncされます。