Package net.sf.ehcache.store
Interface Policy
-
- All Known Implementing Classes:
AbstractPolicy,FifoPolicy,LfuPolicy,LruPolicy
public interface PolicyAn eviction policy.The Cache will use a policy at startup. There are three policy implementations provided in ehcache: LRU, LFU and FIFO. However many other policies are possible. That the policy has access to the whole element enables policies based on the key, value, metadata, statistics, or a combination of any of the above.
- Author:
- Greg Luck
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleancompare(Element element1, Element element2)Compares the desirableness for eviction of two elementsjava.lang.StringgetName()ElementselectedBasedOnPolicy(Element[] sampledElements, Element justAdded)Finds the best eviction candidate based on the sampled elements.
-
-
-
Method Detail
-
getName
java.lang.String getName()
- Returns:
- the name of the Policy. Inbuilt examples are LRU, LFU and FIFO.
-
selectedBasedOnPolicy
Element selectedBasedOnPolicy(Element[] sampledElements, Element justAdded)
Finds the best eviction candidate based on the sampled elements. What distinguishes this approach from the classic data structures approach is that an Element contains metadata (e.g. usage statistics) which can be used for making policy decisions, while generic data structures do not. It is expected that implementations will take advantage of that metadata.- Parameters:
sampledElements- this should be a random subset of the populationjustAdded- we probably never want to select the element just added. It is provided so that it can be ignored if selected. May be null.- Returns:
- the selected Element
-
compare
boolean compare(Element element1, Element element2)
Compares the desirableness for eviction of two elements- Parameters:
element1- the element to compare againstelement2- the element to compare- Returns:
- true if the second element is preferable for eviction to the first element under ths policy
-
-