2013-11-28 54 views
1

我已经将驱逐最大条目记录为2000年,并将策略记录为LRIS。但是,在达到2000年的上限之前开始驱逐行动。所以,我的问题是,在这里引起这种驱逐战略的工作是否存在某种内存限制?如果是的话,它是如何以及在哪里指定的?Infinispan驱逐策略

现在,我已将驱逐战略改为无。

任何帮助将不胜感激。

回答

2

Infinispan尚未提供任何基于内存的驱逐。

Infinispan使用并行哈希映射将哈希空间拆分成段(a.k.a. buckets),并且每个段都独立地消除它拥有的条目。

因此,当您在内部设置maxEntries=2000时,并发哈希映射正在创建容量为maxEntries/numberSegments的段。当某个细分已满时,驱逐在该细分受众群中触发并移除条目。

就你而言,有些细分已经快满了,并且在达到2000条目之前。

你可以尝试以下方法:

  • 增加并发级别(在<locking concurrencyLevel="yyy">,默认16)。段的数量随着并发级别的增加而增加
  • 尝试实现更好的hashCode()函数以使它们的密钥更好地传播。

干杯。

+0

我阅读了有关缓存的“段”属性,其文档中提到:“散列空间段(每个簇)的数量。建议值为10 *簇大小。”另外,你说增加并发级别会增加段的数量。 这两个不同?他们每个人的意义是什么? –

相关问题