Javaを使用して、私は成長し、成長し、潜在的に利用可能なメモリのサイズよりも大きいマップを作成したいと思います。今では明らかに標準のPOJO HashMapを使用してメモリが使い果たされ、JVMがクラッシュします。だから私はマップのラインに沿って、メモリが不足していることを認識すると、現在の内容をディスクに書き込むことができると考えていました。Javaで非常に大規模なマップを作成する
誰もこのようなことを実装していますか、そこにある既存のソリューションを知っていますか?
私がしようとしているのは、一度に1行に非常に大きなASCIIファイル(たとえば50Gb)を読み込むことです。各行にはキーと値が含まれています。キーはファイルに複製できます。次に、各行を値のリストのキーであるマップに保存します。このマップは、成長し成長するオブジェクトです。
アドバイスをいただければ幸いです。
フィル
アップデート:すべてのコメントやアドバイス、みんなのために
感謝。私が記述した問題では、データベースは正しい、スケーラブルなソリューションです。私はこれが一時的なマップであり、ファイルの解析を助けるために短期間に作成して使用する必要があると述べたはずです。この場合、「実際の値の代わりに行番号のみを格納する」というマイケルの提案が最も適切です。マイケルの答えを推奨する解決策としてマークしてください。
そのようなHSQLとして、インメモリデータベースを使用する方が簡単ではないでしょうか? – mcfinnigan
マッピングするキー/値の種類は何ですか? –
私はデータベースアプローチに熱心ではありません。それはあまりにも重すぎます。 – Phil