Skip to content

Commit c05778d

Browse files
committed
PR feedback
1 parent af50e5b commit c05778d

File tree

2 files changed

+12
-26
lines changed

2 files changed

+12
-26
lines changed

kaldb/src/main/java/com/slack/kaldb/logstore/LuceneIndexStoreImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ private IndexWriterConfig buildIndexWriterConfig(
144144
.setRAMBufferSizeMB(config.ramBufferSizeMB)
145145
.setUseCompoundFile(false)
146146
.setMergeScheduler(new KalDBMergeScheduler(metricsRegistry))
147+
// we sort by timestamp descending, as that is the order we expect to return results the
148+
// majority of the time
147149
.setIndexSort(
148150
new Sort(
149151
new SortField(

kaldb/src/main/java/com/slack/kaldb/logstore/search/LogIndexSearcherImpl.java

+10-26
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import brave.Tracing;
99
import com.google.common.annotations.VisibleForTesting;
1010
import com.google.common.base.Stopwatch;
11-
import com.google.common.util.concurrent.ThreadFactoryBuilder;
1211
import com.slack.kaldb.histogram.FixedIntervalHistogramImpl;
1312
import com.slack.kaldb.histogram.Histogram;
1413
import com.slack.kaldb.histogram.NoOpHistogramImpl;
@@ -23,13 +22,10 @@
2322
import java.util.Collection;
2423
import java.util.Collections;
2524
import java.util.List;
26-
import java.util.concurrent.ExecutorService;
27-
import java.util.concurrent.Executors;
2825
import java.util.concurrent.TimeUnit;
2926
import org.apache.lucene.analysis.standard.StandardAnalyzer;
3027
import org.apache.lucene.document.LongPoint;
3128
import org.apache.lucene.index.DirectoryReader;
32-
import org.apache.lucene.index.IndexReader;
3329
import org.apache.lucene.queryparser.classic.ParseException;
3430
import org.apache.lucene.queryparser.classic.QueryParser;
3531
import org.apache.lucene.search.BooleanClause.Occur;
@@ -39,7 +35,6 @@
3935
import org.apache.lucene.search.MultiCollectorManager;
4036
import org.apache.lucene.search.Query;
4137
import org.apache.lucene.search.ScoreDoc;
42-
import org.apache.lucene.search.SearcherFactory;
4338
import org.apache.lucene.search.SearcherManager;
4439
import org.apache.lucene.search.Sort;
4540
import org.apache.lucene.search.SortField;
@@ -63,18 +58,7 @@ public class LogIndexSearcherImpl implements LogIndexSearcher<LogMessage> {
6358
@VisibleForTesting
6459
public static SearcherManager searcherManagerFromPath(Path path) throws IOException {
6560
MMapDirectory directory = new MMapDirectory(path);
66-
class CachedThreadPoolSearchFactory extends SearcherFactory {
67-
private final ExecutorService executorService =
68-
Executors.newCachedThreadPool(
69-
new ThreadFactoryBuilder().setNameFormat("log-searcher-impl-%d").build());
70-
71-
@Override
72-
public IndexSearcher newSearcher(IndexReader reader, IndexReader previousReader) {
73-
return new IndexSearcher(reader, executorService);
74-
}
75-
}
76-
77-
return new SearcherManager(directory, new CachedThreadPoolSearchFactory());
61+
return new SearcherManager(directory, null);
7862
}
7963

8064
// todo - this is not needed once this data is on the snapshot
@@ -129,19 +113,19 @@ public SearchResult<LogMessage> search(
129113
// This is a useful optimization for indexes that are static.
130114
IndexSearcher searcher = searcherManager.acquire();
131115
try {
132-
CollectorManager<TopFieldCollector, TopFieldDocs> topFieldCollector =
133-
buildTopFieldCollector(howMany);
116+
List<LogMessage> results;
117+
Histogram histogram = new NoOpHistogramImpl();
118+
134119
CollectorManager<StatsCollector, Histogram> statsCollector =
135120
buildStatsCollector(bucketCount, startTimeMsEpoch, endTimeMsEpoch);
136121

137-
MultiCollectorManager collectorManager = new MultiCollectorManager(topFieldCollector);
138-
if (bucketCount > 0) {
139-
collectorManager = new MultiCollectorManager(topFieldCollector, statsCollector);
140-
}
141-
142-
List<LogMessage> results;
143-
Histogram histogram = new NoOpHistogramImpl();
144122
if (howMany > 0) {
123+
CollectorManager<TopFieldCollector, TopFieldDocs> topFieldCollector =
124+
buildTopFieldCollector(howMany);
125+
MultiCollectorManager collectorManager = new MultiCollectorManager(topFieldCollector);
126+
if (bucketCount > 0) {
127+
collectorManager = new MultiCollectorManager(topFieldCollector, statsCollector);
128+
}
145129
Object[] collector = searcher.search(query, collectorManager);
146130

147131
ScoreDoc[] hits = ((TopFieldDocs) collector[0]).scoreDocs;

0 commit comments

Comments
 (0)