ジャーナリングを有効にして実行されている3つのMongo 3.2.13インスタンスのクラスターがあり、同時にアクセスされる何百ものDBとコレクションがあります。
クラスタのパフォーマンスを向上させるために、ジャーナリングを無効にするオプションをチェックしています。ドキュメントによると、WiredTigerは60秒ごとにチェックポイントを実行するため、クラッシュが発生した場合、最大60秒のデータを失うだけです。それで大丈夫です。
ジャーナリングを無効にすることの他のリスク/デメリットはありますか?
ジャーナルが無効になっているクラスターを実行すると、ディスクチェックアウトが約3秒ごとに1回発生することが確認されました。 ドキュメントで特に言及 としてチェックポイントが60秒ごとに作成されるため、これは混乱を招きました。
調べてみると、 mongoのJiraに関する次のコメント が見つかりました。
...レプリカセットへの書き込みが永続的であることを保証するため、複数の書き込みスレッドがある場合は常に、プライマリノードがチェックポイントを実行することが期待されます。
つまり、ジャーナリングが無効で、DBに書き込むスレッドが複数ある場合、チェックポイントが頻繁に発生し、インスタンス全体の速度が低下します。
もちろん、これは、ジャーナリングを再びオンにする十分な理由でした。
クリーンでないシャットダウンがある場合、MongoDBクラスターを再起動しても、データが一貫した状態になるとは限りません。 「一貫性がある」とは、トランザクション的に一貫している場合とそうでない場合があります。
また、問題が発生した場合、正式にサポートされない(Mogodb.Incとサポート契約を結んでエンタープライズ版を実行している場合)とは思わない。
同じ質問に非常に詳細に回答するAdam(MongoDB.Incの前の従業員)によるこの回答を読むことをお勧めします。