Когда в EHCACHE активируется overFlowToDisk? - PullRequest
9 голосов
/ 05 сентября 2010

У меня есть несколько вопросов по атрибуту «overflowToDisk» элемента?

1) Я прочитал по этому URL , что:

overflowToDisk устанавливает, может ли элемент переполняться на дисккогда хранилище памяти достигло максимального предела.

«Память» выше относится к памяти JVM, выделенной для процесса Java, выполняющего EHCACHE, или есть какой-либо параметр для указания размера памяти кэш-памяти?

2) Когда по какой-либо причине завершается работа частей EHCACHEочищается ли этот диск и исчезает ли все в кэше?

Ответы [ 2 ]

11 голосов
/ 15 октября 2010

Элементы начинают переполняться на диск, когда у вас в хранилище памяти их более maxElementsInMemory . В следующем примере создается кэш, в котором хранится 1000 элементов в памяти и, если вам нужно хранить больше, до 10000 на диске:

<cache name="cacheName"
       maxElementsInMemory="1000"
       maxElementsOnDisk="10000"
       overflowToDisk="true"
       timeToIdleSeconds="..."
       timeToLiveSeconds="...">
</cache>

Что касается второго вопроса, взгляните на параметр diskPersistent . Если установлено значение true, Ehcache будет хранить ваши данные на диске, когда вы остановите JVM. Следующий пример демонстрирует это:

<cache name="cacheName"
       maxElementsInMemory="1000"
       maxElementsOnDisk="10000"
       overflowToDisk="true"
       diskPersistent="true"
       timeToIdleSeconds="..."
       timeToLiveSeconds="...">
</cache>
4 голосов
/ 29 апреля 2014

Начиная с Ehcache 2.6, модель хранения больше не является переполненной, а многоуровневой. В многоуровневой модели хранения все данные всегда будут представлены на уровне низший . Предметы будут присутствовать на более высоких уровнях в зависимости от их жаркости .

Возможные уровни для Ehcache с открытым исходным кодом:

  • В куче, которая находится в куче JVM
  • На диске, который является самым низким

По определению, высокие уровни имеют меньшую задержку, но меньшую пропускную способность, чем более низкие уровни.

Таким образом, для кэша с открытым исходным кодом, настроенного на overflowToDisk, все данные всегда будут находиться на уровне диска. Он сохранит ключ в памяти и данные на диске.

Ответ скопирован с этого другого вопроса .

...