Package org.apache.jackrabbit.oak.cache
Class CacheLIRS.Builder<K,V>
java.lang.Object
org.apache.jackrabbit.oak.cache.CacheLIRS.Builder<K,V>
A builder for the cache.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaverageWeight
(int averageWeight) Set the average weight of an entry.build()
evictionCallback
(CacheLIRS.EvictionCallback<K, V> evicted) maximumSize
(long maxSize) Set the maximum size (in number of entries).maximumWeight
(long maxWeight) Set the total maximum weight.segmentCount
(int segmentCount) stackMoveDistance
(int stackMoveDistance) How many other item are to be moved to the top of the stack before the current item is moved.Set the weigher which is used if memory usage of an entry is not explicitly set (when adding entries).
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
recordStats
-
module
-
weigher
public CacheLIRS.Builder<K,V> weigher(org.apache.jackrabbit.guava.common.cache.Weigher<K, V> weigher) Set the weigher which is used if memory usage of an entry is not explicitly set (when adding entries).- Parameters:
weigher
- the weigher- Returns:
- this
-
maximumWeight
Set the total maximum weight. If the cache is heavier, then entries are evicted.- Parameters:
maxWeight
- the maximum weight- Returns:
- this
-
averageWeight
Set the average weight of an entry. This is used, together with the maximum weight, to calculate the length of the internal array of the cache. For higher performance, the weight should be set relatively low, at the cost of some space. To save space, the average weight should be set high, at the cost of some performance.- Parameters:
averageWeight
- the average weight- Returns:
- this
-
maximumSize
Set the maximum size (in number of entries). This is the same as setting the average weight of an entry to 1, and the maximum weight to the maximum size.- Parameters:
maxSize
- the maximum size- Returns:
- this
-
segmentCount
-
stackMoveDistance
How many other item are to be moved to the top of the stack before the current item is moved. The default is 16. Using higher values will avoid re-ordering in many cases, so less time is spent reordering. But this somewhat reduces cache hit rate, and eviction will become more random. Typically, cache hit rate can be improved by using smaller values, and access performance can be improved using larger values. Using values larger than 128 is not recommended. -
evictionCallback
-
build
-
build
-