了解Infinispan Eviction,Expiration和File store?

时间:2015-03-11 09:42:59

标签: infinispan

考虑一个具有以下属性的Infinispan缓存(版本5.3.0.Final),

  1. 有文件存储
  2. 钝化设置为true。
  3. 在理解缓存行为时,我遇到了以下问题。

    1. 驱逐和过期是否有两个主题?
    2. 当到期线程运行时,文件中但已过期的条目会发生什么?那些加载回内存并删除吗?
    3. 这些线程的运行时间是多少?
    4. 文件存储文件是仅附加文件吗?
    5. 文件在此Infinispan版本中是否有索引?
    6. 这个Infinispan版本中存储的文件究竟是什么?它是关键价值还是仅仅是价值?

1 个答案:

答案 0 :(得分:3)

我不会谈论这样一个旧版本,但它可能是相同的。

  1. 命名有点凌乱,TBH。默认情况下,有一个ID为org.infinispan.executors.eviction的线程池,其中包含单个线程,它承载处理 expiration 的ScheduledTask。仅当您向数据容器添加内容时才会触发驱逐,并且由添加新项目的线程处理驱逐。

  2. 取决于缓存存储实现 - cachestore SPI有方法purgeExpired(),它强制从存储中删除过期的条目。没有什么需要加载到内存中。

  3. 默认情况下为1分钟。在配置中搜索wakeUpInterval(或唤醒间隔)。

  4. 不,没有经典的文件存储。 SoftIndexFileStore使用类似的技术。

  5. FileCacheStore只有几个“桶”,基于密钥hashCode,SingleFileCacheStore(或KarstenFileCacheStore,取决于你的版本)有内存索引。

  6. 键和值。