Файлы с отображением памяти: плюсы и минусы?

Мне нужно обмениваться данными между двумя приложениями Java, работающими на одной машине (две разные JVM). Я уточняю, что объем передаваемых данных велик (около 7 ГБ). Приложения должны получать доступ к данным очень быстро, потому что они должны отвечать на входящие запросы с очень высокой скоростью. Я не хочу, чтобы каждое приложение хранило копию данных.

Я видел, что один из вариантов - использовать файлы с отображением памяти. Приложение A получает данные откуда-то (скажем, из базы данных) и сохраняет их в файлах. Затем приложение B может получить доступ к этим файлам с помощью java.nio . Я не знаю точно, как работают файлы с отображением памяти, я знаю только, что данные хранятся в файле и что этот файл (или его часть) отображается в область памяти (виртуальная память?). Итак, два приложения могут читать-писать данные в памяти, и изменения автоматически (я полагаю?) Фиксируются в файле. Я также не знаю, существует ли максимальный размер файла, который будет полностью отображен в памяти.

Мой первый вопрос: каковы разные возможности для двух приложений обмениваться данными в этом сценарии (я имею в виду, принимая во внимание, что объем данных очень велик и доступ к этим данным должен быть очень быстрым)? Я уточняю, что этот вопрос не относится к вводу-выводу с отображением памяти, он просто для того, чтобы узнать, каковы другие способы решения той же проблемы.

Мой второй вопрос: каковы плюсы и минусы использования файлов с отображением в память?

Спасибо

6
задан Bhesh Gurung 15 December 2011 в 22:04
поделиться