Author: chetanm
Date: Tue Jul 28 12:37:18 2015
New Revision: 1693086

URL: http://svn.apache.org/r1693086
Log:
OAK-2853 - Use default codec for fulltext index

Update the benchmark to enable CopyOnRead feature

Modified:
    
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java
    
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/package-info.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java

Modified: 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java?rev=1693086&r1=1693085&r2=1693086&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java
 Tue Jul 28 12:37:18 2015
@@ -49,6 +49,10 @@ public class LuceneIndexProvider impleme
         this(new IndexTracker());
     }
 
+    public LuceneIndexProvider(IndexCopier indexCopier) {
+        this(new IndexTracker(indexCopier), ScorerProviderFactory.DEFAULT);
+    }
+
     public LuceneIndexProvider(IndexTracker tracker) {
         this(tracker, ScorerProviderFactory.DEFAULT);
     }

Modified: 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/package-info.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/package-info.java?rev=1693086&r1=1693085&r2=1693086&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/package-info.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/package-info.java
 Tue Jul 28 12:37:18 2015
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("2.1.0")
+@Version("2.2.0")
 @Export(optional = "provide:=true")
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java?rev=1693086&r1=1693085&r2=1693086&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java
 Tue Jul 28 12:37:18 2015
@@ -22,9 +22,13 @@ import static com.google.common.collect.
 import static com.google.common.collect.Sets.newHashSet;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.List;
 import java.util.Random;
 import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -36,12 +40,14 @@ import javax.jcr.query.QueryManager;
 import javax.jcr.query.QueryResult;
 import javax.jcr.query.RowIterator;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.benchmark.wikipedia.WikipediaImport;
 import org.apache.jackrabbit.oak.fixture.JcrCreator;
 import org.apache.jackrabbit.oak.fixture.OakRepositoryFixture;
 import org.apache.jackrabbit.oak.fixture.RepositoryFixture;
 import org.apache.jackrabbit.oak.jcr.Jcr;
+import org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier;
 import 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider;
 import 
org.apache.jackrabbit.oak.plugins.index.lucene.util.LuceneInitializerHelper;
@@ -59,6 +65,8 @@ public class FullTextSearchTest extends
 
     private int maxSampleSize = 100;
 
+    private final boolean disableCopyOnRead = 
Boolean.getBoolean("disableCopyOnRead");
+
     private final WikipediaImport importer;
 
     private final Set<String> sampleSet = newHashSet();
@@ -76,6 +84,10 @@ public class FullTextSearchTest extends
      */
     protected Boolean storageEnabled;
 
+    private ExecutorService executorService = Executors.newFixedThreadPool(2);
+
+    private File indexCopierDir;
+
     public FullTextSearchTest(File dump, boolean flat, boolean doReport, 
Boolean storageEnabled) {
         this.importer = new WikipediaImport(dump, flat, doReport) {
             @Override
@@ -98,6 +110,7 @@ public class FullTextSearchTest extends
             }
         };
         this.storageEnabled = storageEnabled;
+        this.indexCopierDir = createTemporaryFolder(null);
     }
 
     @Override
@@ -113,6 +126,13 @@ public class FullTextSearchTest extends
     }
 
     @Override
+    protected void afterSuite() throws Exception {
+        executorService.shutdown();
+        executorService.awaitTermination(1, TimeUnit.MINUTES);
+        FileUtils.deleteDirectory(indexCopierDir);
+    }
+
+    @Override
     protected TestContext prepareThreadExecutionContext() {
         return new TestContext();
     }
@@ -161,11 +181,11 @@ public class FullTextSearchTest extends
             return ((OakRepositoryFixture) fixture).setUpCluster(1, new 
JcrCreator() {
                 @Override
                 public Jcr customize(Oak oak) {
-                    LuceneIndexProvider provider = new LuceneIndexProvider();
+                    LuceneIndexProvider provider = createLuceneIndexProvider();
                     oak.with((QueryIndexProvider) provider)
-                       .with((Observer) provider)
-                       .with(new LuceneIndexEditorProvider())
-                       .with(new LuceneInitializerHelper("luceneGlobal", 
storageEnabled));
+                            .with((Observer) provider)
+                            .with(new LuceneIndexEditorProvider())
+                            .with(new LuceneInitializerHelper("luceneGlobal", 
storageEnabled));
                     return new Jcr(oak);
                 }
             });
@@ -173,4 +193,27 @@ public class FullTextSearchTest extends
         return super.createRepository(fixture);
     }
 
+    private LuceneIndexProvider createLuceneIndexProvider() {
+        if (!disableCopyOnRead) {
+            try {
+                IndexCopier copier = new IndexCopier(executorService, 
indexCopierDir, true);
+                return new LuceneIndexProvider(copier);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return new LuceneIndexProvider();
+    }
+
+    private File createTemporaryFolder(File parentFolder){
+        File createdFolder = null;
+        try {
+            createdFolder = File.createTempFile("oak", "", parentFolder);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        createdFolder.delete();
+        createdFolder.mkdir();
+        return createdFolder;
+    }
 }


Reply via email to