2016-10-27 43 views
1

閱讀關於新的Eviction Algorithm的文檔,可從Hazelcast 3.7獲得,我不太清楚該節中提到的參數如何與實際的驅逐策略參數相關聯。Hazelcast 3.7驅逐算法

也就是說,該算法說明用途:

GlobalCapacity: User defined maximum cache size (cluster-wide). 
PartitionCount: Number of partitions in the cluster (defaults to 271). 
BalancedPartitionSize: Number of elements in a balanced partition state, BalancedPartitionSize := GlobalCapacity/PartitionCount. 
Deviation: An approximated standard deviation (tests proofed it to be pretty near), Deviation := sqrt(BalancedPartitionSize). 

而驅逐策略配置提及(其中包括一些其他人):

<hazelcast> 
    <map name="default"> 
    ... 
    <time-to-live-seconds>0</time-to-live-seconds> 
    <max-idle-seconds>0</max-idle-seconds> 
    <eviction-policy>LRU</eviction-policy> 
    <max-size policy="PER_NODE">5000</max-size> 
    ... 
    </map> 
</hazelcast> 

一個假設來進行的是GlobalCapacity以某種方式連接到max-size屬性??

任何幫助澄清這是最受歡迎的! :)

回答

1

GlobalCapacity:用戶定義的最大緩存大小(全集羣範圍)。
PartitionCount:集羣中分區的數量(默認爲271)。

BalancedPartitionSize:平衡分區中元素的數量 state,BalancedPartitionSize:= GlobalCapacity/PartitionCount。
偏差:一個近似的標準偏差(測試證明它相當接近 ),偏差:= sqrt(BalancedPartitionSize)。

以上是用於解釋參考手冊中算法的變量。它們不是API變量。

但是,特別是在你的問題:是的,全球容量是等價的,並可以由用戶在map-config內用max-size配置來定義。

+1

謝謝@javanes!好的,所以在我例如對'max-size'使用'per_node'策略,但是如果我使用的是一種類型的策略' 10'? 在我的用例中,我有不同數量的地圖,所以如果我正確理解這一點,我更願意在每個地圖上使用總的jvm度量。 – gsaslis