public interface SolrCache<K,V> extends SolrInfoBean, SolrMetricProducer
Modifier and Type | Interface and Description |
---|---|
static class |
SolrCache.State
Enumeration of possible States for cache instances.
|
SolrInfoBean.Category, SolrInfoBean.Group
Modifier and Type | Field and Description |
---|---|
static String |
ASYNC_PARAM |
static String |
CLEANUP_THREAD_PARAM |
static String |
EVICTIONS_PARAM |
static String |
HIT_RATIO_PARAM |
static String |
HITS_PARAM |
static String |
INITIAL_SIZE_PARAM |
static String |
INSERTS_PARAM |
static String |
LOOKUPS_PARAM |
static String |
MAX_IDLE_TIME_PARAM |
static String |
MAX_RAM_MB_PARAM |
static String |
MAX_SIZE_PARAM |
static String |
RAM_BYTES_USED_PARAM |
static String |
SHOW_ITEMS_PARAM |
static String |
SIZE_PARAM |
Modifier and Type | Method and Description |
---|---|
void |
clear()
:TODO: copy from Map
|
default void |
close()
Frees any non-memory resources
|
V |
computeIfAbsent(K key,
IOFunction<? super K,? extends V> mappingFunction)
Get an existing element or atomically compute it if missing.
|
V |
get(K key)
:TODO: copy from Map
|
int |
getMaxRamMB()
Returns maximum size limit (in MB) if set and supported, -1 otherwise.
|
int |
getMaxSize()
Returns maximum size limit (number of items) if set and supported, -1 otherwise.
|
SolrCache.State |
getState()
Returns the last State set on this instance
|
Object |
init(Map args,
Object persistence,
CacheRegenerator regenerator)
The initialization routine.
|
String |
name()
Name the Cache can be referenced with by SolrRequestHandlers.
|
V |
put(K key,
V value)
:TODO: copy from Map
|
V |
remove(K key) |
void |
setMaxRamMB(int maxRamMB)
Set maximum size limit (in MB), or -1 for unlimited.
|
void |
setMaxSize(int maxSize)
Set maximum size limit (number of items), or -1 for unlimited.
|
void |
setState(SolrCache.State state)
Set different cache states.
|
int |
size()
:TODO: copy from Map
|
void |
warm(SolrIndexSearcher searcher,
SolrCache<K,V> old)
Warm this cache associated with
searcher using the old
cache object. |
getCategory, getDescription, getMetricNames, getMetricRegistry, getMetricsSnapshot, getName, registerMetricName
getSolrMetricsContext, getUniqueMetricTag, initializeMetrics, initializeMetrics
static final String HIT_RATIO_PARAM
static final String HITS_PARAM
static final String INSERTS_PARAM
static final String EVICTIONS_PARAM
static final String LOOKUPS_PARAM
static final String SIZE_PARAM
static final String MAX_SIZE_PARAM
static final String RAM_BYTES_USED_PARAM
static final String MAX_RAM_MB_PARAM
static final String MAX_IDLE_TIME_PARAM
static final String INITIAL_SIZE_PARAM
static final String CLEANUP_THREAD_PARAM
static final String SHOW_ITEMS_PARAM
static final String ASYNC_PARAM
Object init(Map args, Object persistence, CacheRegenerator regenerator)
args
map.
The persistence object will exist across different lifetimes of similar caches. For example, all filter caches will share the same persistence object, sometimes at the same time (it must be thread-safe). If null is passed, then the cache implementation should create and return a new persistence object. If not null, the passed in object should be returned again.
Since it will exist across the lifetime of many caches, care should be taken to not reference any particular cache instance and prevent it from being garbage collected (no using inner classes unless they are static).
The persistence object is designed to be used as a way for statistics to accumulate across all instances of the same type of cache, however the object may be of any type desired by the cache implementation.
The CacheRegenerator
is what the cache uses during auto-warming to
regenerate an item in the new cache from an entry in the old cache.
String name()
int size()
V computeIfAbsent(K key, IOFunction<? super K,? extends V> mappingFunction) throws IOException
key
- keymappingFunction
- function to compute the element. If the function returns a null
result the cache mapping will not be created. NOTE: this function
must NOT attempt to modify any mappings in the cache.IOException
- if and only if mappingFunction threw an IOException.
A cache mapping will not be created in this casevoid clear()
void setState(SolrCache.State state)
SolrCache.State getState()
void warm(SolrIndexSearcher searcher, SolrCache<K,V> old)
searcher
using the old
cache object. this
and old
will have the same concrete type.default void close() throws IOException
close
in interface AutoCloseable
close
in interface SolrMetricProducer
IOException
int getMaxSize()
void setMaxSize(int maxSize)
int getMaxRamMB()
void setMaxRamMB(int maxRamMB)
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.