我知道<min-eviction-check-millis>
在 hazelcast 配置中定义了在检查此地图的分区是否可驱逐之前应该经过的最短时间(以毫秒为单位)。因此,在每个配置的时间间隔内,都会根据配置的驱逐策略在地图中执行驱逐。我有以下与该领域相关的问题。
Q1。驱逐操作是否在操作线程上运行?
Q2。驱逐操作会锁定它正在处理的整个分区吗?
Q3。如果我要遵循默认值 100 毫秒(我认为这是一个非常小的值),我是否需要预期任何性能损失。
Q4。在以下场景中执行驱逐操作的频率。
<map name="employees">
<in-memory-format>BINARY</in-memory-format>
<backup-count>1</backup-count>
<max-idle-seconds>1800</max-idle-seconds>
<eviction-policy>NONE</eviction-policy>
<time-to-live-seconds>0</time-to-live-seconds>
<min-eviction-check-millis>1000</min-eviction-check-millis>
<max-size>0</max-size>
<eviction-percentage>0</eviction-percentage>
<merge-policy>com.hazelcast.map.merge.PutIfAbsentMapMergePolicy</merge-policy>
</map>
请注意,虽然没有配置驱逐策略和百分比,但最大空闲时间设置为 1800 秒。
对上述问题的回答将帮助我对在大规模部署中用于这些配置的值做出明智的决定。