Hazelcast 3.6.2 Карта выселения не работает с Spring и max-size-policy как PER_NODE в 3.6.2

Я хочу получить Map eviction max-size="4" PER_NODE, работающий на весне Hazelcast 3.6.2. Это ниже моя карта, определенная весной.

<hz:map name="sfdRequestMap" in-memory-format="OBJECT" eviction-policy="LRU" max-size="4" max-size-policy="PER_NODE" eviction-percentage="25">
</hz:map>

Я также проверил, действительно ли эта политика выселения установлена ​​для определенной карты, и это так. Также выселение через секунды работает для этой карты, но выселение при переопределении максимального размера - нет. Я использую Hazelcast 3.6.2. Я также пытался удалить формат в памяти, изменить политику выселения и т. Д. И т. Д.

Ожидаемое поведение состоит в том, что когда карта превысит количество элементов (более 4), начнется выселение. Фактическое поведение состоит в том, что выселение никогда не начинается.

Любая помощь приветствуется.

1 ответ

Решение

Hazelcast Map внутренне выполняет выселение на основе разделов, что означает, что когда вы используете PER_NODE политика с maxSize 5000, он переводит этот maxSize в partition-max-size с помощью этого уравнения partition-max-size = maxSize * memberCount / partitionCount, И когда число записей в этом разделе превышает partition-max-sizeНа этом разделе начинается выселение. Минимальное значение для partition-max-size внутренне установлен 1 не выселять каждую добавленную запись. Так partitionCount минимальный устанавливаемый максимальный размер (количество разделов по умолчанию - 271).

Другие вопросы по тегам