Используя Java, я хотел бы создать карту, которая может расти и расти и потенциально быть больше, чем объем доступной памяти. Теперь очевидно, что при использовании стандартной POJO HashMap мы исчерпаем память, и JVM аварийно завершит работу. Поэтому я думал о карте, которая, если узнает, что память заканчивается, может записать текущее содержимое на диск.
Кто-нибудь реализовал что-нибудь подобное или знает какие-нибудь существующие решения?
Я пытаюсь прочитать очень большой ASCII файл (скажем, 50 Гб) по строке за раз. Каждая строка содержит ключ и значение. Ключи могут быть продублированы в файле. Затем я буду хранить каждую строку в Map, которая является ключами к списку значений. Эта карта - объект, который будет просто расти и расти.
Любой совет будет очень признателен.
Phil
Update:
Спасибо всем за комментарии и советы. С проблемой, которую я описал, база данных является правильным, масштабируемым решением. Я должен был указать, что это временная карта, которая должна быть создана и использоваться в течение короткого периода времени для помощи в разборе файла. В этом случае предложение Майкла "хранить только номер строки вместо фактического значения" является наиболее подходящим. Отметить ответ(ы) Майкла как рекомендуемое решение.