通常のMongodbセットアップでは、データベースの書き込みが正常に戻ってからそのデータを読み取ることができるようになるまでに遅延が発生する可能性があります。これには2つの理由があります:
- パフォーマンスを向上させるために、データがディスクにコミットされる前に「安全でない」書き込みが返される可能性があります。
- Mongodbはレプリカセットを使用しており、レプリケーションの遅延があります。通常、読み取りは負荷分散の形式としてレプリカに分散されるため、安全な書き込みを使用している場合でも、書き込みたばかりのサーバーとは異なるサーバーから読み取りを行っている可能性があり、書き込みたばかりのデータが表示されない可能性があります。
Mongoidを使用して書き込んだデータをいつでもすぐに読み戻すことができるようにするには、データベースセッションオプションのconsistency: :strong, safe: true
を設定する必要があります。 、どちらもデフォルトではありません。