Как насчет базы данных ? Ведь они созданы для этого.
Я бы посоветовал вам взглянуть на базу данных NoSQL . В зависимости от ваших потребностей, существуют также базы данных в памяти [которые, очевидно, могут страдать от той же проблемы нехватки памяти] и базы данных, которые можно копировать, развернуть или связать с вашим приложением.
Я бы не хотел связываться с подробностями хранения вручную, а файлы отображения памяти - это то, что некоторые базы данных (по крайней мере, MongoDB) делают внутри. По сути, вы бы катили свою собственную БД, и написание базы данных не тривиально - даже если вы сузите вариант использования.
Redis или Membase звучат как подходящие альтернативы для вашей проблемы. Насколько я вижу, оба способны управлять использованием оперативной памяти за вас, то есть считывать данные с диска по мере необходимости и кэшировать данные в оперативной памяти для быстрого доступа. Конечно, здесь будут играть роль ваши шаблоны доступа.
Имейте в виду, что много усилий было потрачено на создание этих БД. Согласно Википедии, Zynga использует Membase , а Redis спонсируется VMWare.