【发布时间】:2016-02-21 18:13:24
【问题描述】:
我了解 hazelcast 配置中的 <min-eviction-check-millis> 定义了在检查此地图的分区是否可驱逐之前应该经过的最短时间(以毫秒为单位)。因此,在每个配置的时间间隔内,都会根据配置的驱逐策略在地图中执行驱逐。我有以下与该领域相关的问题。
第一季度。驱逐操作是否在操作线程上运行?
第二季度。驱逐操作会锁定它正在处理的整个分区吗?
第三季度。如果我要遵循 100 毫秒的默认值(我认为这是一个非常小的值),我是否需要预期任何性能损失。
第四季度。在以下场景中,驱逐操作多久执行一次。
<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 秒。
对上述问题的回答将帮助我就在大规模部署中用于这些配置的值做出明智的决定。
【问题讨论】:
标签: java hazelcast distributed-caching distributed-cache hazelcast-imap