2011-01-24 6 views
2

私はmongodbを使用してユーザーのイベントを格納しています。すべてのユーザーに、イベントの配列を含むドキュメントがあります。このシステムは、数千のイベントを1分間に処理し、それぞれのイベントをmongoに挿入します。mongodb many inserts updates performance

問題は、プロファイラを使用して更新操作のパフォーマンスが低下し、パフォーマンスに影響するWriteResult.getErrorが発生していることです。

それは意味がありますが、更新は非同期ですが、操作結果を取得したい場合、操作が完了するまで待つ必要があります。

私の質問は、更新を非同期に保つ方法がありますが、エラーが発生した場合にのみ例外が発生します(99.999回はエラーがないので、システムは何も待機しません)。私は例外がプロセスフローのどこかで発生することを意味すると理解していますが、私はそれで生きることができます。

他の提案はありますか?

アプリケーションはJavaで書かれているので、私たちはJavaドライバを使用していますが、関連性はよくわかりません。

+1

ため

db.collectionName.ensureIndex({"event.type":1}) 

ようウルコレクションに索引付けを行う必要があります前に行われていない場合は、あなたのJavaドライバーに安全なモードをdesactivateがありますか? – shingara

+0

いいえ、それはどういう意味ですか? – LiorH

+0

WriteConcernをNORMALに設定してください:http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html#NORMAL – pingw33n

答えて

1

あなたの記録にインデックスを付けましたか? あなたのパフォーマンスには問題があるかもしれません。

あなたはより多くのヘルプの訪問http://www.mongodb.org/display/DOCS/Indexes

+0

はい私は感謝しました – LiorH