org.apache.solr.util
Class ConcurrentLFUCache<K,V>
java.lang.Object
org.apache.solr.util.ConcurrentLFUCache<K,V>
public class ConcurrentLFUCache<K,V>
- extends Object
A LFU cache implementation based upon ConcurrentHashMap.
This is not a terribly efficient implementation. The tricks used in the
LRU version were not directly usable, perhaps it might be possible to
rewrite them with LFU in mind.
This API is experimental and subject to change
- Since:
- solr 1.6
ConcurrentLFUCache
public ConcurrentLFUCache(int upperWaterMark,
int lowerWaterMark,
int acceptableSize,
int initialSize,
boolean runCleanupThread,
boolean runNewThreadForCleanup,
ConcurrentLFUCache.EvictionListener<K,V> evictionListener,
boolean timeDecay)
ConcurrentLFUCache
public ConcurrentLFUCache(int size,
int lowerWatermark)
setAlive
public void setAlive(boolean live)
get
public V get(K key)
remove
public V remove(K key)
put
public V put(K key,
V val)
getLeastUsedItems
public Map<K,V> getLeastUsedItems(int n)
- Returns 'n' number of least used entries present in this cache.
This uses a TreeSet to collect the 'n' least used items ordered by ascending hitcount
and returns a LinkedHashMap containing 'n' or less than 'n' entries.
- Parameters:
n
- the number of items needed
- Returns:
- a LinkedHashMap containing 'n' or less than 'n' entries
getMostUsedItems
public Map<K,V> getMostUsedItems(int n)
- Returns 'n' number of most used entries present in this cache.
This uses a TreeSet to collect the 'n' most used items ordered by descending hitcount
and returns a LinkedHashMap containing 'n' or less than 'n' entries.
- Parameters:
n
- the number of items needed
- Returns:
- a LinkedHashMap containing 'n' or less than 'n' entries
size
public int size()
clear
public void clear()
getMap
public Map<Object,org.apache.solr.util.ConcurrentLFUCache.CacheEntry<K,V>> getMap()
destroy
public void destroy()
getStats
public ConcurrentLFUCache.Stats getStats()
finalize
protected void finalize()
throws Throwable
- Overrides:
finalize
in class Object
- Throws:
Throwable
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.