diff --git a/core/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java b/core/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java index be7bf50bba0..4325da8f6e1 100644 --- a/core/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java +++ b/core/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java @@ -57,6 +57,7 @@ import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.store.IndexStoreConfig; import org.elasticsearch.indices.analysis.HunspellService; import org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService; +import org.elasticsearch.indices.cache.query.IndicesQueryCache; import org.elasticsearch.indices.cache.request.IndicesRequestCache; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; import org.elasticsearch.indices.recovery.RecoverySettings; @@ -140,6 +141,8 @@ public final class ClusterSettings extends AbstractScopedSettings { FsRepository.REPOSITORIES_LOCATION_SETTING, IndexStoreConfig.INDICES_STORE_THROTTLE_TYPE_SETTING, IndexStoreConfig.INDICES_STORE_THROTTLE_MAX_BYTES_PER_SEC_SETTING, + IndicesQueryCache.INDICES_CACHE_QUERY_SIZE_SETTING, + IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING, IndicesTTLService.INDICES_TTL_INTERVAL_SETTING, MappingUpdatedAction.INDICES_MAPPING_DYNAMIC_TIMEOUT_SETTING, MetaData.SETTING_READ_ONLY_SETTING, diff --git a/core/src/main/java/org/elasticsearch/index/cache/query/index/IndexQueryCache.java b/core/src/main/java/org/elasticsearch/index/cache/query/index/IndexQueryCache.java index 04f66290a5e..352d6af5ee9 100644 --- a/core/src/main/java/org/elasticsearch/index/cache/query/index/IndexQueryCache.java +++ b/core/src/main/java/org/elasticsearch/index/cache/query/index/IndexQueryCache.java @@ -22,7 +22,6 @@ package org.elasticsearch.index.cache.query.index; import org.apache.lucene.search.QueryCachingPolicy; import org.apache.lucene.search.Weight; import org.elasticsearch.ElasticsearchException; -import org.elasticsearch.common.inject.Inject; import org.elasticsearch.index.AbstractIndexComponent; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.cache.query.QueryCache; @@ -36,7 +35,6 @@ public class IndexQueryCache extends AbstractIndexComponent implements QueryCach final IndicesQueryCache indicesQueryCache; - @Inject public IndexQueryCache(IndexSettings indexSettings, IndicesQueryCache indicesQueryCache) { super(indexSettings); this.indicesQueryCache = indicesQueryCache; diff --git a/core/src/main/java/org/elasticsearch/index/cache/query/none/NoneQueryCache.java b/core/src/main/java/org/elasticsearch/index/cache/query/none/NoneQueryCache.java index 67408655726..70cbfeb3830 100644 --- a/core/src/main/java/org/elasticsearch/index/cache/query/none/NoneQueryCache.java +++ b/core/src/main/java/org/elasticsearch/index/cache/query/none/NoneQueryCache.java @@ -31,7 +31,6 @@ import org.elasticsearch.index.cache.query.QueryCache; */ public class NoneQueryCache extends AbstractIndexComponent implements QueryCache { - @Inject public NoneQueryCache(IndexSettings indexSettings) { super(indexSettings); logger.debug("Using no query cache"); diff --git a/core/src/main/java/org/elasticsearch/indices/cache/query/IndicesQueryCache.java b/core/src/main/java/org/elasticsearch/indices/cache/query/IndicesQueryCache.java index 23b4bc84c44..58c2cd5a953 100644 --- a/core/src/main/java/org/elasticsearch/indices/cache/query/IndicesQueryCache.java +++ b/core/src/main/java/org/elasticsearch/indices/cache/query/IndicesQueryCache.java @@ -32,9 +32,10 @@ import org.apache.lucene.search.Weight; import org.elasticsearch.common.component.AbstractComponent; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.lucene.ShardCoreKeyMap; +import org.elasticsearch.common.settings.Setting; +import org.elasticsearch.common.settings.Setting.Scope; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeValue; -import org.elasticsearch.common.unit.MemorySizeValue; import org.elasticsearch.index.cache.query.QueryCacheStats; import org.elasticsearch.index.shard.ShardId; @@ -48,10 +49,10 @@ import java.util.concurrent.ConcurrentHashMap; public class IndicesQueryCache extends AbstractComponent implements QueryCache, Closeable { - public static final String INDICES_CACHE_QUERY_SIZE = "indices.queries.cache.size"; - @Deprecated - public static final String DEPRECATED_INDICES_CACHE_QUERY_SIZE = "indices.cache.filter.size"; - public static final String INDICES_CACHE_QUERY_COUNT = "indices.queries.cache.count"; + public static final Setting INDICES_CACHE_QUERY_SIZE_SETTING = Setting.byteSizeSetting( + "indices.queries.cache.size", "10%", false, Scope.CLUSTER); + public static final Setting INDICES_CACHE_QUERY_COUNT_SETTING = Setting.intSetting( + "indices.queries.cache.count", 10000, 1, false, Scope.CLUSTER); private final LRUQueryCache cache; private final ShardCoreKeyMap shardKeyMap = new ShardCoreKeyMap(); @@ -66,21 +67,10 @@ public class IndicesQueryCache extends AbstractComponent implements QueryCache, @Inject public IndicesQueryCache(Settings settings) { super(settings); - String sizeString = settings.get(INDICES_CACHE_QUERY_SIZE); - if (sizeString == null) { - sizeString = settings.get(DEPRECATED_INDICES_CACHE_QUERY_SIZE); - if (sizeString != null) { - deprecationLogger.deprecated("The [" + DEPRECATED_INDICES_CACHE_QUERY_SIZE - + "] settings is now deprecated, use [" + INDICES_CACHE_QUERY_SIZE + "] instead"); - } - } - if (sizeString == null) { - sizeString = "10%"; - } - final ByteSizeValue size = MemorySizeValue.parseBytesSizeValueOrHeapRatio(sizeString, INDICES_CACHE_QUERY_SIZE); - final int count = settings.getAsInt(INDICES_CACHE_QUERY_COUNT, 1000); - logger.debug("using [node] query cache with size [{}], actual_size [{}], max filter count [{}]", - sizeString, size, count); + final ByteSizeValue size = INDICES_CACHE_QUERY_SIZE_SETTING.get(settings); + final int count = INDICES_CACHE_QUERY_COUNT_SETTING.get(settings); + logger.debug("using [node] query cache with size [{}] max filter count [{}]", + size, count); cache = new LRUQueryCache(count, size.bytes()) { private Stats getStats(Object coreKey) { diff --git a/core/src/test/java/org/elasticsearch/indices/cache/query/IndicesQueryCacheTests.java b/core/src/test/java/org/elasticsearch/indices/cache/query/IndicesQueryCacheTests.java index 83295e9548a..ad5b37a2f53 100644 --- a/core/src/test/java/org/elasticsearch/indices/cache/query/IndicesQueryCacheTests.java +++ b/core/src/test/java/org/elasticsearch/indices/cache/query/IndicesQueryCacheTests.java @@ -92,7 +92,7 @@ public class IndicesQueryCacheTests extends ESTestCase { s.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE); Settings settings = Settings.builder() - .put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT, 10) + .put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING.getKey(), 10) .build(); IndicesQueryCache cache = new IndicesQueryCache(settings); s.setQueryCache(cache); @@ -172,7 +172,7 @@ public class IndicesQueryCacheTests extends ESTestCase { s2.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE); Settings settings = Settings.builder() - .put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT, 10) + .put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING.getKey(), 10) .build(); IndicesQueryCache cache = new IndicesQueryCache(settings); s1.setQueryCache(cache); @@ -297,7 +297,7 @@ public class IndicesQueryCacheTests extends ESTestCase { s2.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE); Settings settings = Settings.builder() - .put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT, 10) + .put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING.getKey(), 10) .build(); IndicesQueryCache cache = new IndicesQueryCache(settings); s1.setQueryCache(cache);