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

Я хочу, чтобы карта выселения max-size = "4" PER_NODE работала над Hazelcast 3.6.2 spring. Ниже представлена ​​моя карта, созданная весной.

<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), начнется выселение. Фактическое поведение таково, что выселение никогда не начинается.

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


person jobbert    schedule 25.04.2016    source источник
comment
какое поведение вы наблюдаете? Я полагаю, записи не выселяются. это верно?   -  person Jaromir Hamala    schedule 25.04.2016
comment
Это правильно :)   -  person jobbert    schedule 25.04.2016
comment
Я протестировал его с 10 записями для получения дополнительной информации.   -  person jobbert    schedule 25.04.2016


Ответы (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).

person mrck    schedule 25.04.2016
comment
Итак, если у меня 4 члена в моем кластере hazelcast, и вы хотите, чтобы в моем кеше было 20 элементов, maxSize должен быть: 271/4 * 20 = +/- 1360? Где ты нашел это? Есть ли документация? - person jobbert; 26.04.2016
comment
Вы можете увидеть это в документации здесь: github.com/hazelcast/hazelcast-reference-manual/blob/ - person mrck; 26.04.2016