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


Reply via email to