1

2つのフェーズを実行するアプリケーションを構築しています。

  1. 実行フェーズ-最初のフェーズは非常に INSERT集中的です(ハードウェアが1秒で実行できる限り多くの挿入)。これは基本的に、実行された作業のログ記録です。
  2. 検証フェーズ-次のフェーズでは、フェーズ1で生成されたログを照会し、外部ソースと比較して UPDATE、レコードに対して実行し、いくつかの統計を保存します。このプロセスは、フェーズ1の2番目の優先順位です。

私は、それらを並行して実行し、実行フェーズで書き込みロックを最小限に抑えることが可能かどうかを確認しようとしています。これを行う1つの方法は、検証フェーズを、実行フェーズによって現在挿入されているチャンクにない古いレコードからのクエリのみに制限することだと思いました。MongoDBに、find()構成可能な時間内にアクセスされなかったチャンクからのクエリのみに制限するものはありますか?

4

2 に答える 2

2

レプリカセットを設定することをお勧めします。マスターに挿入し、セカンダリからフェッチします。そうすれば、挿入がまったくブロックされません。

于 2011-06-21T16:50:42.087 に答える
1

上記のレプリカセットをslaveOkで使用し、マスターで更新できます。

フィルタリングには、タイムスタンプフィールドまたはObjectId(すでにタイムスタンプが含まれています)を使用できます。

于 2011-06-21T21:56:54.603 に答える