2016-08-05 29 views
3

我使用hazelcast存儲對於一個小時間窗口(可能30至50分鐘,但不超過60分鐘)很重要的數據。條目越老,它就越不重要,這意味着如果我們可以擺脫一些條目來避免OutOfMemory是較舊的條目。Hazelcast - 最早的條目首先被驅逐

我將這些條目的TTL配置爲60分鐘,但當內存不足時,我想可靠地擺脫最早的條目,即使它們沒有過期。

我檢查了配置EvictionPolicy.LRU,但配置它我可以看到一些最近添加到地圖的條目被逐出。我想這是由於採樣算法用於選擇驅逐條目,如解釋here

是否有包含此用例的分佈式對象的任何實現?

回答

1

從Hazelcast 3.7開始,您將能夠定義a custom eviction policy並實現任何算法。 你可以找到一個樣本here

謝謝

+0

嘿,那很棒,會檢查出來!預計在某些情況下,'LRU'實現會刪除最後添加的條目嗎?我可以通過添加一個條目偵聽器來看到這樣的行爲,只是在添加或刪除條目時打印某些條目,在某些情況下,我可以看到最近添加的條目驅逐並保持條目不超過幾小時(使用'hz 3.6。 4')。 –

+0

在3.7版本中,最後添加的條目的驅逐應該不再是問題。請參閱:https://github.com/hazelcast/hazelcast/issues/4334 – mrck