Increase the maximum number of filters that may be in the cache. (#30655)
We added this limit because we occasionally saw cases where most of the memory usage of the cache was spent on the keys (ie. queries) rather than the values, which caused the cache to vastly underestimate its memory usage. In recent releases, we disabled caching on heavy `terms` queries, which were the main source of the problem, so putting more entries in the cache should be safer.
This commit is contained in:
parent
25959ed8cf
commit
54740cc551
|
@ -52,8 +52,10 @@ public class IndicesQueryCache extends AbstractComponent implements QueryCache,
|
||||||
|
|
||||||
public static final Setting<ByteSizeValue> INDICES_CACHE_QUERY_SIZE_SETTING =
|
public static final Setting<ByteSizeValue> INDICES_CACHE_QUERY_SIZE_SETTING =
|
||||||
Setting.memorySizeSetting("indices.queries.cache.size", "10%", Property.NodeScope);
|
Setting.memorySizeSetting("indices.queries.cache.size", "10%", Property.NodeScope);
|
||||||
|
// mostly a way to prevent queries from being the main source of memory usage
|
||||||
|
// of the cache
|
||||||
public static final Setting<Integer> INDICES_CACHE_QUERY_COUNT_SETTING =
|
public static final Setting<Integer> INDICES_CACHE_QUERY_COUNT_SETTING =
|
||||||
Setting.intSetting("indices.queries.cache.count", 1000, 1, Property.NodeScope);
|
Setting.intSetting("indices.queries.cache.count", 10_000, 1, Property.NodeScope);
|
||||||
// enables caching on all segments instead of only the larger ones, for testing only
|
// enables caching on all segments instead of only the larger ones, for testing only
|
||||||
public static final Setting<Boolean> INDICES_QUERIES_CACHE_ALL_SEGMENTS_SETTING =
|
public static final Setting<Boolean> INDICES_QUERIES_CACHE_ALL_SEGMENTS_SETTING =
|
||||||
Setting.boolSetting("indices.queries.cache.all_segments", false, Property.NodeScope);
|
Setting.boolSetting("indices.queries.cache.all_segments", false, Property.NodeScope);
|
||||||
|
|
Loading…
Reference in New Issue