From 5f170cb4fd8a884d092e4953b422f44a1f49d602 Mon Sep 17 00:00:00 2001 From: Shay Banon Date: Mon, 4 Nov 2013 18:32:34 +0100 Subject: [PATCH] Remove Index Reader warmer introduced in 0.90.6 It create the following challenges: - it automatically load all the norms for all fields. This should be an opt in feature similar to the new loading feature in field data. Will open a separate issue for it. - It automatically loads all doc values for all fields (if they have it), overriding effectively the loading option of field data when its backed by doc values. closes #4078 --- .../elasticsearch/search/SearchService.java | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/src/main/java/org/elasticsearch/search/SearchService.java b/src/main/java/org/elasticsearch/search/SearchService.java index 4b15e8af09c..8b077ab75a9 100644 --- a/src/main/java/org/elasticsearch/search/SearchService.java +++ b/src/main/java/org/elasticsearch/search/SearchService.java @@ -21,11 +21,8 @@ package org.elasticsearch.search; import com.google.common.collect.ImmutableMap; import org.apache.lucene.index.AtomicReaderContext; -import org.apache.lucene.index.SimpleMergedSegmentWarmer; import org.apache.lucene.search.TopDocs; -import org.apache.lucene.util.InfoStream; import org.elasticsearch.ElasticSearchException; -import org.elasticsearch.ElasticSearchIllegalStateException; import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.cache.recycler.CacheRecycler; @@ -137,7 +134,6 @@ public class SearchService extends AbstractLifecycleComponent { this.keepAliveReaper = threadPool.scheduleWithFixedDelay(new Reaper(), keepAliveInterval); - this.indicesWarmer.addListener(new IndexReaderWarmer()); this.indicesWarmer.addListener(new FieldDataWarmer()); this.indicesWarmer.addListener(new SearchWarmer()); } @@ -632,27 +628,6 @@ public class SearchService extends AbstractLifecycleComponent { } } - static class IndexReaderWarmer extends IndicesWarmer.Listener { - - private final SimpleMergedSegmentWarmer warmer = new SimpleMergedSegmentWarmer(InfoStream.NO_OUTPUT); - - @Override - public void warm(IndexShard indexShard, IndexMetaData indexMetaData, WarmerContext context, ThreadPool threadPool) { - long start = System.nanoTime(); - try { - for (AtomicReaderContext ctx : context.newSearcher().reader().leaves()) { - warmer.warm(ctx.reader()); - } - if (indexShard.warmerService().logger().isTraceEnabled()) { - indexShard.warmerService().logger().trace("warmed readers, took [{}]", TimeValue.timeValueNanos(System.nanoTime() - start)); - } - } catch (Throwable t) { - throw new ElasticSearchIllegalStateException("Unexpected exception while warming-up segment", t); - } - } - - } - static class FieldDataWarmer extends IndicesWarmer.Listener { @Override