2011-10-28 10 views
1

何らかの形のストレージに1秒間に何千ものトランザクションを挿入して、それをすばやくクエリできるようにする必要があります。1秒間に何千ものトランザクションのために推奨されるデータベース/ストレージ

私がしたいのは、すべてのTCP要求(キーは送信元または送信先IPアドレス)を記録することです。 次に、別の要求が来たら、IPによる事前の要求がストア/データベース/キャッシュにあるかどうかをチェックし、適切な処置を実行します。

SQLExpress、SQLCompact、SQLIte、MongoDB、Firebird?これらのどれかが十分に速いのでしょうか?

私はちょうど何らかの記述のメモリ内のデータ構造を使うべきですか?

ストアが同時に複数のスレッドからアクセスする必要があります...

任意の提案をしてください...

UPDATE:RaptorDB?何かいいことがあるの ?上記の他のDatabases/noSQLと一緒に検討する価値はありますか? http://www.codeproject.com/KB/database/RaptorDB.aspx

+2

重要な情報が1つ欠落しています:どのくらいの期間、あなたは問い合わせる必要がありますか?あなたはクエリのためにメモリ内のデータ構造を持ち、履歴のためにバッチでディスクに書き込むことができます。 – driis

+0

約1時間を見ると、2時間のデータが必要な場合があります。ネットワークには1000個のPCが搭載されていますので、1時間のtcpトラフィックデータをメモリに保存する際のメモリ使用について少し気になります。 – user296191

+0

これは、データベース管理者スタックエクスチェンジサイトの問題です。 –

答えて

0

これらの速度では、ボトルネックがディスクになる可能性があります。標準的なSATAドライブは、毎秒数十トランザクションしか実行できません。ディスクを補うには、多くのRAMをスローして、データベースが主にメモリに格納されるようにします。

また、連想配列を使用する独自のロガーをローリングするだけで、すべてをメモリ上で実行できます。送信されているすべてのデータを記録する必要がありますか、またはPC AがPC Bにデータを送信したという事実だけですか?

関連する問題