Author: chetanm
Date: Wed Sep 27 06:15:23 2017
New Revision: 1809810
URL: http://svn.apache.org/viewvc?rev=1809810&view=rev
Log:
OAK-6718 - Configure RAM buffer size used by IndexWriter with oak-run indexing
Configure the size to 32MB by default
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/LuceneIndexHelper.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/OutOfBandIndexer.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerProvider.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/LuceneIndexHelper.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/LuceneIndexHelper.java?rev=1809810&r1=1809809&r2=1809810&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/LuceneIndexHelper.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/LuceneIndexHelper.java
Wed Sep 27 06:15:23 2017
@@ -27,13 +27,20 @@ import org.apache.jackrabbit.oak.plugins
import
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider;
import
org.apache.jackrabbit.oak.plugins.index.lucene.directory.ActiveDeletedBlobCollectorFactory.BlobDeletionCallback;
import
org.apache.jackrabbit.oak.plugins.index.lucene.directory.DirectoryFactory;
-import org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore;
+import
org.apache.jackrabbit.oak.plugins.index.lucene.writer.LuceneIndexWriterConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LuceneIndexHelper implements Closeable {
+ private static final String PROP_BUFFER_SIZE = "oak.index.ramBufferSizeMB";
+ private static final int BUFFER_SIZE_DEFAULT = 32;
-class LuceneIndexHelper implements Closeable {
+ private final Logger log = LoggerFactory.getLogger(getClass());
private final IndexHelper indexHelper;
private IndexCopier indexCopier;
private DirectoryFactory directoryFactory;
+
LuceneIndexHelper(IndexHelper indexHelper) {
this.indexHelper = indexHelper;
}
@@ -66,6 +73,15 @@ class LuceneIndexHelper implements Close
return editor;
}
+ public LuceneIndexWriterConfig getWriterConfigForReindex() {
+ int buffSize = Integer.getInteger(PROP_BUFFER_SIZE,
BUFFER_SIZE_DEFAULT);
+
+ log.info("Setting RAMBufferSize for LuceneIndexWriter (configurable
via " +
+ "system property '{}') to {} MB", PROP_BUFFER_SIZE, buffSize);
+
+ return new LuceneIndexWriterConfig(buffSize);
+ }
+
public void setDirectoryFactory(DirectoryFactory directoryFactory) {
this.directoryFactory = directoryFactory;
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/OutOfBandIndexer.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/OutOfBandIndexer.java?rev=1809810&r1=1809809&r2=1809810&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/OutOfBandIndexer.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/OutOfBandIndexer.java
Wed Sep 27 06:15:23 2017
@@ -26,15 +26,13 @@ import java.io.IOException;
import com.codahale.metrics.MetricRegistry;
import com.google.common.io.Closer;
import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.index.CompositeIndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.CorruptIndexHandler;
-import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdate;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateCallback;
import org.apache.jackrabbit.oak.plugins.index.NodeTraversalCallback;
-import org.apache.jackrabbit.oak.plugins.index.importer.AsyncLaneSwitcher;
+import
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider;
import
org.apache.jackrabbit.oak.plugins.index.lucene.directory.DirectoryFactory;
import
org.apache.jackrabbit.oak.plugins.index.lucene.directory.FSDirectoryFactory;
import org.apache.jackrabbit.oak.plugins.index.progress.MetricRateEstimator;
@@ -54,7 +52,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
import static java.util.Arrays.asList;
public class OutOfBandIndexer implements Closeable, IndexUpdateCallback,
NodeTraversalCallback {
@@ -159,7 +156,9 @@ public class OutOfBandIndexer implements
LuceneIndexHelper luceneIndexHelper =
indexHelper.getLuceneIndexHelper();
DirectoryFactory dirFactory = new
FSDirectoryFactory(getLocalIndexDir());
luceneIndexHelper.setDirectoryFactory(dirFactory);
- return luceneIndexHelper.createEditorProvider();
+ LuceneIndexEditorProvider provider =
luceneIndexHelper.createEditorProvider();
+
provider.setWriterConfig(luceneIndexHelper.getWriterConfigForReindex());
+ return provider;
}
private void configureEstimators(IndexUpdate indexUpdate) {
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerProvider.java?rev=1809810&r1=1809809&r2=1809810&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/LuceneIndexerProvider.java
Wed Sep 27 06:15:23 2017
@@ -54,7 +54,7 @@ public class LuceneIndexerProvider imple
this.indexHelper = indexHelper;
this.dirFactory = new
FSDirectoryFactory(indexerSupport.getLocalIndexDir());
this.indexWriterFactory = new
DefaultIndexWriterFactory(indexHelper.getMountInfoProvider(),
- dirFactory, new LuceneIndexWriterConfig());
+ dirFactory,
indexHelper.getLuceneIndexHelper().getWriterConfigForReindex());
}
@Override