Performance optimization

This commit is contained in:
Andrea Cavalli 2021-12-30 22:29:06 +01:00
parent b493decd64
commit 64f21409f1

View File

@ -61,6 +61,7 @@ import org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy;
import org.apache.lucene.index.MergeScheduler;
import org.apache.lucene.index.SerialMergeScheduler;
import org.apache.lucene.index.SnapshotDeletionPolicy;
import org.apache.lucene.index.TieredMergePolicy;
import org.apache.lucene.misc.store.DirectIODirectory;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.ByteBuffersDirectory;
@ -219,6 +220,8 @@ public class LLLocalLuceneIndex implements LLLuceneIndex {
indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
indexWriterConfig.setIndexDeletionPolicy(snapshotter);
indexWriterConfig.setCommitOnClose(true);
var mergePolicy = new TieredMergePolicy();
indexWriterConfig.setMergePolicy(mergePolicy);
int writerSchedulerMaxThreadCount;
MergeScheduler mergeScheduler;
if (lowMemory) {
@ -271,9 +274,6 @@ public class LLLocalLuceneIndex implements LLLuceneIndex {
var commitMillis = luceneOptions.commitDebounceTime().toMillis();
luceneHeavyTasksScheduler.schedulePeriodically(this::scheduledCommit, commitMillis, commitMillis,
TimeUnit.MILLISECONDS);
// Maybe merge every 5 commits
luceneHeavyTasksScheduler.schedulePeriodically(this::scheduledMerge, commitMillis * 5, commitMillis * 5,
TimeUnit.MILLISECONDS);
}
private Similarity getLuceneSimilarity() {
@ -577,7 +577,7 @@ public class LLLocalLuceneIndex implements LLLuceneIndex {
}
}
private void scheduledMerge() {
private void scheduledMerge() { // Do not use. Merges are done automatically by merge policies
shutdownLock.lock();
try {
mergeTime.recordCallable(() -> {