MongoDBには、グローバル書き込みロック があります。 。これは、一度に1つの更新のみを続行できることを意味します。
db.serverStatus() コマンドは、グローバル書き込みロックの問題を診断するのに役立ちます。
試すことができるいくつかのことを次に示します。
1)mongodb2.0を使用していることを確認してください。古いバージョンよりも並行性が優れています。 2.2の同時実行性はさらに向上します。
2)書き込みをキューに入れて非同期にし、すべて単一のスレッドを使用して実行します。通常、一度に1つのスレッドのみがグローバル書き込みロックを使用しようとするため、これは同時実行に役立つ可能性があります。
3)最新バージョンを使用していて、書き込みをシングルスレッドにできない場合は、シャーディングを検討してください。シャーディングは単なるサイズ以上のものです。書き込みの同時実行性にとって、少なくとも同じくらい重要です。シャーディングすると、各セグメントは独自のグローバル書き込みロックを使用して独自のプロセスで実行されます。これにより、システム全体でより多くの書き込みを処理できるようになります。