Package org.elasticsearch.indices
Class IndicesRequestCache
java.lang.Object
org.elasticsearch.indices.IndicesRequestCache
- All Implemented Interfaces:
Closeable
,AutoCloseable
,RemovalListener<org.elasticsearch.indices.IndicesRequestCache.Key,
BytesReference>
public final class IndicesRequestCache
extends Object
implements RemovalListener<org.elasticsearch.indices.IndicesRequestCache.Key,BytesReference>, 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
Modifier and TypeFieldDescriptionA setting to enable or disable request caching on an index level.static final Setting<org.elasticsearch.core.TimeValue>
static final Setting<ByteSizeValue>
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
onRemoval
(RemovalNotification<org.elasticsearch.indices.IndicesRequestCache.Key, BytesReference> notification)
-
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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
onRemoval
public void onRemoval(RemovalNotification<org.elasticsearch.indices.IndicesRequestCache.Key, BytesReference> notification) - Specified by:
onRemoval
in interfaceRemovalListener<org.elasticsearch.indices.IndicesRequestCache.Key,
BytesReference>
-