Interface Policy

All Known Implementing Classes:
AbstractPolicy, FifoPolicy, LfuPolicy, LruPolicy

public interface Policy

An 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.

Greg Luck

Method Summary
 boolean compare(Element element1, Element element2)
          Compares the desirableness for eviction of two elements
 String getName()
 Element selectedBasedOnPolicy(Element[] sampledElements, Element justAdded)
          Finds the best eviction candidate based on the sampled elements.

Method Detail


String getName()
the name of the Policy. Inbuilt examples are LRU, LFU and FIFO.


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.

sampledElements - this should be a random subset of the population
justAdded - we probably never want to select the element just added. It is provided so that it can be ignored if selected. May be null.
the selected Element


boolean compare(Element element1,
                Element element2)
Compares the desirableness for eviction of two elements

element1 - the element to compare against
element2 - the element to compare
true if the second element is preferable for eviction to the first element under ths policy


Copyright 2001-2016, Terracotta, Inc.