2013-11-28 55 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 *簇大小。」另外,你說增加併發級別會增加段的數量。 這兩個不同?他們每個人的意義是什麼? –

相關問題