首页 > 解决方案 > Apache Ignite 自定义驱逐策略是否根据缓存属性值驱逐记录

问题描述

我们可以根据缓存属性应用自定义的堆外驱逐策略吗?(例如 - 假设我们将 Employee POJO 对象存储在状态属性值为 true/false 的缓存中,是否可以根据状态属性从缓存中逐出记录?)

根据 Apache Ignite 文档,我们只能自定义堆上驱逐策略(通过 EvictionPolicy 接口)。是否也可以自定义 PageEvictionMode?

// 为这个区域启用 RANDOM_2_LRU 驱逐。regionCfg.setPageEvictionMode(DataPageEvictionMode.RANDOM_2_LRU);

标签: ignite

解决方案


页面驱逐算法比堆上条目的算法复杂得多。不幸的是,因此,它的可配置性较低。

DataPageEvictionMode是一个枚举。它只有三个可能的值DISABLEDRANDOM_LRURANDOM_2_LRU

您可以通过以下链接找到它们的描述: https ://apacheignite.readme.io/docs/evictions

基于条目属性的页面驱逐是不可能的,因为条目以几乎随机的顺序分布在页面之间。您不能告诉页面内存删除某些特定条目。只能驱逐整个页面。


推荐阅读