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).