From 47f6081cdeecce1a2518c64657230c26dd286e2b Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Fri, 25 Jun 2021 20:06:58 +0200 Subject: [PATCH] better parameters for performance --- .../dbengine/database/disk/LLLocalLuceneIndex.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalLuceneIndex.java b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalLuceneIndex.java index d426a2e..bb37032 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalLuceneIndex.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalLuceneIndex.java @@ -44,10 +44,13 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper; import org.apache.lucene.document.Document; +import org.apache.lucene.index.ConcurrentMergeScheduler; import org.apache.lucene.index.IndexCommit; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; 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.misc.store.DirectIODirectory; import org.apache.lucene.queries.mlt.MoreLikeThis; @@ -176,11 +179,16 @@ public class LLLocalLuceneIndex implements LLLuceneIndex { indexWriterConfig.setIndexDeletionPolicy(snapshotter); indexWriterConfig.setCommitOnClose(true); if (lowMemory) { - indexWriterConfig.setRAMBufferSizeMB(32); + indexWriterConfig.setRAMBufferSizeMB(8); indexWriterConfig.setRAMPerThreadHardLimitMB(32); + var mergeScheduler = new SerialMergeScheduler(); + indexWriterConfig.setMergeScheduler(mergeScheduler); } else { - indexWriterConfig.setRAMBufferSizeMB(128); + indexWriterConfig.setRAMBufferSizeMB(16); //indexWriterConfig.setRAMPerThreadHardLimitMB(512); + var mergeScheduler = new ConcurrentMergeScheduler(); + mergeScheduler.enableAutoIOThrottle(); + indexWriterConfig.setMergeScheduler(mergeScheduler); } indexWriterConfig.setSimilarity(getSimilarity()); this.indexWriter = new IndexWriter(directory, indexWriterConfig);