Infinispan: Как получить уведомление, когда запись исключена из бэк-файлов SingleFileStore
Стандартное событие вытеснения срабатывает, когда запись в кеш исключается из кеша в памяти. В нашем случае нам нужно уведомление только тогда, когда оно удалено из постоянного перезапуска дискового кэша, который настроен как SingleFileStore. Это вообще возможно?
Мы используем Infinispan в качестве локального кэша, поэтому любые соображения по поводу кластеризации для нас являются спорными.
Наша конфигурация кэша выглядит следующим образом:
manager.defineConfiguration("eviction-test-cache", new ConfigurationBuilder()
.persistence().addSingleFileStore().location("eviction-test")
.maxEntries(500).preload(true).purgeOnStartup(false)
.eviction().strategy(LRU).maxEntries(100L)
.build());
2 ответа
Это было добавлено к: https://developer.jboss.org/message/935198
Чтобы процитировать мой ответ оттуда:
Здесь maxEntries=500 относится только к SingleFileStore и удаляет записи без уведомлений, поскольку это выходит за рамки обычной области выселения. Если вы хотите, вы можете создать улучшенную JIRA, чтобы добавить какое-то уведомление специально для SingleFileStore (хотя я не совсем уверен, как это будет выглядеть). Другой вариант заключается в том, что вы можете использовать новое хранилище файлов мягкого индекса [1], которое можно получить в [2] (в этом нет проблемы сохранения каждого ключа в памяти.
[1] http://infinispan.org/docs/8.0.x/user_guide/user_guide.html
[2] http://mvnrepository.com/artifact/org.infinispan/infinispan-persistence-soft-index