Remove QueryCachingPolicy#ALWAYS_CACHE (#31451)
The QueryCachingPolicy#ALWAYS_CACHE was deprecated in Lucene-7.4 and will be removed in Lucene-8.0. This change replaces it with QueryCachingPolicy. This also makes INDEX_QUERY_CACHE_EVERYTHING_SETTING visible in testing only.
This commit is contained in:
parent
297e99c4c2
commit
db1b97fd85
|
@ -151,7 +151,6 @@ public final class IndexScopedSettings extends AbstractScopedSettings {
|
|||
IndexModule.INDEX_STORE_TYPE_SETTING,
|
||||
IndexModule.INDEX_STORE_PRE_LOAD_SETTING,
|
||||
IndexModule.INDEX_QUERY_CACHE_ENABLED_SETTING,
|
||||
IndexModule.INDEX_QUERY_CACHE_EVERYTHING_SETTING,
|
||||
FsDirectoryService.INDEX_LOCK_FACTOR_SETTING,
|
||||
EngineConfig.INDEX_CODEC_SETTING,
|
||||
EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS,
|
||||
|
|
|
@ -29,6 +29,7 @@ import org.apache.lucene.index.SegmentCommitInfo;
|
|||
import org.apache.lucene.index.SegmentInfos;
|
||||
import org.apache.lucene.index.SegmentReader;
|
||||
import org.apache.lucene.index.Term;
|
||||
import org.apache.lucene.search.Query;
|
||||
import org.apache.lucene.search.QueryCachingPolicy;
|
||||
import org.apache.lucene.search.ReferenceManager;
|
||||
import org.apache.lucene.search.Sort;
|
||||
|
@ -299,7 +300,16 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
|||
// the query cache is a node-level thing, however we want the most popular filters
|
||||
// to be computed on a per-shard basis
|
||||
if (IndexModule.INDEX_QUERY_CACHE_EVERYTHING_SETTING.get(settings)) {
|
||||
cachingPolicy = QueryCachingPolicy.ALWAYS_CACHE;
|
||||
cachingPolicy = new QueryCachingPolicy() {
|
||||
@Override
|
||||
public void onUse(Query query) {
|
||||
|
||||
}
|
||||
@Override
|
||||
public boolean shouldCache(Query query) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
} else {
|
||||
cachingPolicy = new UsageTrackingQueryCachingPolicy();
|
||||
}
|
||||
|
|
|
@ -89,6 +89,19 @@ public class IndicesQueryCacheTests extends ESTestCase {
|
|||
|
||||
}
|
||||
|
||||
private static QueryCachingPolicy alwaysCachePolicy() {
|
||||
return new QueryCachingPolicy() {
|
||||
@Override
|
||||
public void onUse(Query query) {
|
||||
|
||||
}
|
||||
@Override
|
||||
public boolean shouldCache(Query query) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void testBasics() throws IOException {
|
||||
Directory dir = newDirectory();
|
||||
IndexWriter w = new IndexWriter(dir, newIndexWriterConfig());
|
||||
|
@ -98,7 +111,7 @@ public class IndicesQueryCacheTests extends ESTestCase {
|
|||
ShardId shard = new ShardId("index", "_na_", 0);
|
||||
r = ElasticsearchDirectoryReader.wrap(r, shard);
|
||||
IndexSearcher s = new IndexSearcher(r);
|
||||
s.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE);
|
||||
s.setQueryCachingPolicy(alwaysCachePolicy());
|
||||
|
||||
Settings settings = Settings.builder()
|
||||
.put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING.getKey(), 10)
|
||||
|
@ -169,7 +182,7 @@ public class IndicesQueryCacheTests extends ESTestCase {
|
|||
ShardId shard1 = new ShardId("index", "_na_", 0);
|
||||
r1 = ElasticsearchDirectoryReader.wrap(r1, shard1);
|
||||
IndexSearcher s1 = new IndexSearcher(r1);
|
||||
s1.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE);
|
||||
s1.setQueryCachingPolicy(alwaysCachePolicy());
|
||||
|
||||
Directory dir2 = newDirectory();
|
||||
IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig());
|
||||
|
@ -179,7 +192,7 @@ public class IndicesQueryCacheTests extends ESTestCase {
|
|||
ShardId shard2 = new ShardId("index", "_na_", 1);
|
||||
r2 = ElasticsearchDirectoryReader.wrap(r2, shard2);
|
||||
IndexSearcher s2 = new IndexSearcher(r2);
|
||||
s2.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE);
|
||||
s2.setQueryCachingPolicy(alwaysCachePolicy());
|
||||
|
||||
Settings settings = Settings.builder()
|
||||
.put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING.getKey(), 10)
|
||||
|
@ -295,7 +308,7 @@ public class IndicesQueryCacheTests extends ESTestCase {
|
|||
ShardId shard1 = new ShardId("index", "_na_", 0);
|
||||
r1 = ElasticsearchDirectoryReader.wrap(r1, shard1);
|
||||
IndexSearcher s1 = new IndexSearcher(r1);
|
||||
s1.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE);
|
||||
s1.setQueryCachingPolicy(alwaysCachePolicy());
|
||||
|
||||
Directory dir2 = newDirectory();
|
||||
IndexWriter w2 = new IndexWriter(dir2, newIndexWriterConfig());
|
||||
|
@ -305,7 +318,7 @@ public class IndicesQueryCacheTests extends ESTestCase {
|
|||
ShardId shard2 = new ShardId("index", "_na_", 1);
|
||||
r2 = ElasticsearchDirectoryReader.wrap(r2, shard2);
|
||||
IndexSearcher s2 = new IndexSearcher(r2);
|
||||
s2.setQueryCachingPolicy(QueryCachingPolicy.ALWAYS_CACHE);
|
||||
s2.setQueryCachingPolicy(alwaysCachePolicy());
|
||||
|
||||
Settings settings = Settings.builder()
|
||||
.put(IndicesQueryCache.INDICES_CACHE_QUERY_COUNT_SETTING.getKey(), 10)
|
||||
|
|
|
@ -31,8 +31,10 @@ import org.elasticsearch.script.Script;
|
|||
import org.elasticsearch.script.ScriptType;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.InternalSettingsPlugin;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
@ -52,7 +54,7 @@ public class ScriptQuerySearchIT extends ESIntegTestCase {
|
|||
|
||||
@Override
|
||||
protected Collection<Class<? extends Plugin>> nodePlugins() {
|
||||
return Collections.singleton(CustomScriptPlugin.class);
|
||||
return Arrays.asList(CustomScriptPlugin.class, InternalSettingsPlugin.class);
|
||||
}
|
||||
|
||||
public static class CustomScriptPlugin extends MockScriptPlugin {
|
||||
|
|
|
@ -434,10 +434,6 @@ public abstract class ESIntegTestCase extends ESTestCase {
|
|||
if (randomBoolean()) {
|
||||
randomSettingsBuilder.put(IndexModule.INDEX_QUERY_CACHE_ENABLED_SETTING.getKey(), randomBoolean());
|
||||
}
|
||||
|
||||
if (randomBoolean()) {
|
||||
randomSettingsBuilder.put(IndexModule.INDEX_QUERY_CACHE_EVERYTHING_SETTING.getKey(), randomBoolean());
|
||||
}
|
||||
PutIndexTemplateRequestBuilder putTemplate = client().admin().indices()
|
||||
.preparePutTemplate("random_index_template")
|
||||
.setPatterns(Collections.singletonList("*"))
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.elasticsearch.cluster.metadata.IndexMetaData;
|
|||
import org.elasticsearch.common.settings.Setting;
|
||||
import org.elasticsearch.common.settings.Setting.Property;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.index.IndexModule;
|
||||
import org.elasticsearch.index.IndexService;
|
||||
import org.elasticsearch.plugins.Plugin;
|
||||
|
||||
|
@ -51,6 +52,8 @@ public final class InternalSettingsPlugin extends Plugin {
|
|||
INDEX_CREATION_DATE_SETTING,
|
||||
PROVIDED_NAME_SETTING,
|
||||
TRANSLOG_RETENTION_CHECK_INTERVAL_SETTING,
|
||||
IndexService.GLOBAL_CHECKPOINT_SYNC_INTERVAL_SETTING);
|
||||
IndexService.GLOBAL_CHECKPOINT_SYNC_INTERVAL_SETTING,
|
||||
IndexModule.INDEX_QUERY_CACHE_EVERYTHING_SETTING
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -169,7 +169,8 @@ public class SecuritySettingsSource extends ClusterDiscoveryConfiguration.Unicas
|
|||
|
||||
@Override
|
||||
public Collection<Class<? extends Plugin>> nodePlugins() {
|
||||
return Arrays.asList(LocalStateSecurity.class, Netty4Plugin.class, ReindexPlugin.class, CommonAnalysisPlugin.class);
|
||||
return Arrays.asList(LocalStateSecurity.class, Netty4Plugin.class, ReindexPlugin.class, CommonAnalysisPlugin.class,
|
||||
InternalSettingsPlugin.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue