入力ファイルから読み取られた大量の要素を操作するスタンドアロンの Java アプリケーションがあり、各要素は識別子に関連付けられています。各要素に対して、次のことを行います (もちろん、とりわけ):
- 要素がその識別子を使用してまだ処理されていないことを確認してください。
- 何らかの統計的方法を使用して要素をグリッドにマップします。グリッドの各セルは、割り当てられた一意の要素と、各要素で計算されたいくつかのプロパティを追跡します。
グリッド自体と同様に、要素の数が非常に多くなる場合があります (数百万)。各セルは、要素が割り当てられるとすぐにオンザフライで作成され、空のセルが保存されるのを回避します。
問題は、大量のデータを使用すると、メモリの問題が自然に発生することです。メモリの問題を回避しながら大量のデータを処理するための最良の戦略は何ですか?
私はいくつかのことを念頭に置いていますが、誰かがすでにこの種の問題を抱えているかどうかを知りたいです。もしそうなら、その経験を共有してください。
- 組み込みの軽量 SQL データベース
- Ehcache や apache jcs などのキャッシング ソリューション
- Cassandra などの NoSQL キー値ストア
考え?