Package org.elasticsearch.indices
Class IndicesRequestCache
java.lang.Object
org.elasticsearch.indices.IndicesRequestCache
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,RemovalListener<org.elasticsearch.indices.IndicesRequestCache.Key,BytesReference>
public final class IndicesRequestCache extends java.lang.Object implements RemovalListener<org.elasticsearch.indices.IndicesRequestCache.Key,BytesReference>, java.io.Closeable
The indices request cache allows to cache a shard level request stage responses, helping with improving
similar requests that are potentially expensive (because of aggs for example). The cache is fully coherent
with the semantics of NRT (the index reader cache key is part of the cache key), and relies on size based
eviction to evict old reader associated cache entries as well as scheduler reaper to clean readers that
are no longer used or closed shards.
Currently, the cache is only enabled for count requests, and can only be opted in on an index level setting that can be dynamically changed and defaults to false.
There are still several TODOs left in this class, some easily addressable, some more complex, but the support is functional.
-
Field Summary
Fields Modifier and Type Field Description static Setting<java.lang.Boolean>
INDEX_CACHE_REQUEST_ENABLED_SETTING
A setting to enable or disable request caching on an index level.static Setting<org.elasticsearch.common.unit.TimeValue>
INDICES_CACHE_QUERY_EXPIRE
static Setting<ByteSizeValue>
INDICES_CACHE_QUERY_SIZE
-
Method Summary
Modifier and Type Method Description void
close()
void
onRemoval(RemovalNotification<org.elasticsearch.indices.IndicesRequestCache.Key,BytesReference> notification)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
INDEX_CACHE_REQUEST_ENABLED_SETTING
A setting to enable or disable request caching on an index level. Its dynamic by default since we are checking on the cluster state IndexMetadata always. -
INDICES_CACHE_QUERY_SIZE
-
INDICES_CACHE_QUERY_EXPIRE
-
-
Method Details
-
close
public void close()- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
onRemoval
public void onRemoval(RemovalNotification<org.elasticsearch.indices.IndicesRequestCache.Key,BytesReference> notification)- Specified by:
onRemoval
in interfaceRemovalListener<org.elasticsearch.indices.IndicesRequestCache.Key,BytesReference>
-