簡単に言うと、時系列データをドキュメントに保存する必要があります。私は、30分間のデータを担当するドキュメントを持つことが合理的であると判断しました。ドキュメントは次のようになります。
しかし、これは毎秒更新される約数百/千のドキュメントの1つにすぎません。
{
_id: "APAC.tky001.cpu.2011.12.04:10:00",
field1: XX,
field2: YY,
1322971800: 22,
1322971801: 23,
1322971802: 21,
// and so on
}
これは、30分ごとに、、およびを使用してドキュメントを作成することを意味_id
しfield1
ますfield2
。次に、毎秒、タイムスタンプと値の組み合わせを追加したいと思います。
私はmongocライブラリを使用しています。これは超高速であると想定していましたが、これを実行する方法にはmongo_update
、一括で実行できないものが必要です。使用する方法はないと思いますmongo_insert_batch
。
残念ながら、それは非常に遅いです-ひどいパフォーマンス。私はこれを完全に間違ってやっていますか?ひどいことは、大雑把な作業を行うことで600 /秒を取得し、代替データベース(名前の名前付けではない)では27,000/秒を取得することを意味します。
コードはおおよそ次のとおりです。
for (i=0;i<N;i++) {
if (mongo_update(c,n,a,b,MONGO_UPDATE_UPSERT,write_concern) != MONGO_OK)
// stuff
}
書き込みの懸念をオフまたはオンに設定しても違いはありません。