Конфигурация переполнения кэша Apache Geode с постоянными данными

У меня есть ПОСТОЯННЫЙ кеш, настроенный следующим образом: -

<region name="stock-hist" refid="PARTITION_PERSISTENT" >
  <region-attributes disk-store-name="myOverflowStore" disk-   synchronous="false">
<partition-attributes local-max-memory="1024" />
<eviction-attributes>
  <!-- Overflow to disk when 100 megabytes of data reside in the
       region -->
  <lru-memory-size maximum="100" action="overflow-to-disk"/>
</eviction-attributes>
</region-attributes>

Проблема в том, что когда я сохраняю, скажем, 8 ГБ данных, кеш выходит из строя из-за слишком большого объема памяти. Я не хочу, чтобы это произошло. Например, мне нужно, чтобы данные переполнялись на диск, когда они превышали 100 МБ, но возвращали их в кеш, если я пытался получить к ним доступ. Я также хочу постоянный кеш.

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

Как это работает?


person Amit Pandey    schedule 14.10.2016    source источник


Ответы (1)


Это вариант использования, для которого In-Memory Data Grid не предназначен. Исходя из проблемы, которую вы описываете, вам следует рассмотреть возможность использования реляционной БД ИЛИ вам следует увеличить объем памяти для использования сетки данных IN-MEMORY. Функции перелива предназначены для использования в качестве предохранительного клапана, а не для «нормального» использования.

Я не понимаю, когда вы говорите, что "оно" вылетает из-за "слишком большого" объема памяти, так как ему явно "недостаточно" памяти. Я подозреваю, что не определено достаточно места на диске. Если вы так не думаете, проверьте явное и неявное выделение дискового пространства.

Что касается вытеснения/истечения срока действия по времени, см. «PARTITION_HEAP_LRU» по адресу: http://gemfire.docs.pivotal.io/docs-gemfire/latest/reference/topics/region_shortcuts_reference.html

person Wes Williams    schedule 16.10.2016
comment
Я думаю, что Geode позволяет сохранять данные. Итак, я пытаюсь использовать это, я хотел, чтобы данные сохранялись на диск после того, как, скажем, был использован 1 ГБ памяти. Это невозможно для базы данных. Я не уверен, что вы поняли мою проблему, однако вы используете partition_persistent_overflow, чтобы получить эту функцию. у меня все работает - person Amit Pandey; 28.10.2016