我们可以根据缓存属性应用自定义的堆外驱逐策略吗? (例如 - 假设,我们将Employee POJO对象存储在status属性值为true / false的缓存中,是否可以根据status属性从缓存中逐出记录?)
根据Apache Ignite文档,我们只能自定义堆上驱逐策略(通过EvictionPolicy接口)。是否可以自定义PageEvictionMode? p>
//为此区域启用RANDOM_2_LRU驱逐。 regionCfg.setPageEvictionMode(DataPageEvictionMode.RANDOM_2_LRU);
答案 0 :(得分:1)
页面逐出算法比堆栈条目复杂得多。不幸的是,因此,它的可配置性较差。
DataPageEvictionMode
是一个枚举。它只有三个可能的值:DISABLED
,RANDOM_LRU
和RANDOM_2_LRU
。
您可以通过以下链接找到他们的描述: https://apacheignite.readme.io/docs/evictions
基于条目属性的页面驱逐是不可能的,因为条目以几乎随机的顺序分布在页面中。您无法告诉页面内存删除某些特定条目。只有整个页面才能被驱逐。