Я собирался предложить вам продолжить работу Идея базы данных Эрика и узнать, как базы данных управляют своими буферами - эффективное внедрение собственного управления виртуальной памятью.
Но, подумав об этом больше, я пришел к выводу, что большинство операционных систем уже лучше справляются с реализацией кэширования файловой системы, чем вы можете сделать без низкоуровневого доступа в Java.
Есть один урок из управления буфером базы данных, который вы могли бы рассмотреть, однако. Базы данных используют понимание плана запросов для оптимизации стратегии управления.
В реляционной базе данных часто лучше всего исключить самый последний использованный блок из кэша. Например, «молодой» блок, содержащий дочернюю запись в соединении, больше не будет просматриваться, в то время как блок, содержащий его родительскую запись, все еще используется, даже если он «старше».
Кэши файлов операционной системы, с другой стороны, оптимизированы для повторного использования недавно использованных данных (и чтения перед самыми последними использованными данными). Если ваше приложение не соответствует этому шаблону, возможно, стоит самостоятельно управлять кешем.