You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2016/09/15 07:17:19 UTC

svn commit: r1760849 - /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java

Author: chetanm
Date: Thu Sep 15 07:17:19 2016
New Revision: 1760849

URL: http://svn.apache.org/viewvc?rev=1760849&view=rev
Log:
OAK-4412 - Lucene hybrid index

Benchmarking - Add a background job to perform queries

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java?rev=1760849&r1=1760848&r2=1760849&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/HybridIndexTest.java Thu Sep 15 07:17:19 2016
@@ -34,12 +34,16 @@ import javax.jcr.Node;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryManager;
+import javax.jcr.query.QueryResult;
 
 import com.codahale.metrics.ConsoleReporter;
 import com.codahale.metrics.Metric;
 import com.codahale.metrics.MetricFilter;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterators;
 import com.google.common.util.concurrent.MoreExecutors;
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.Oak;
@@ -102,6 +106,7 @@ public class HybridIndexTest extends Abs
     private final File workDir;
     private Whiteboard whiteboard;
     private MetricStatisticsProvider metricStatsProvider;
+    private Searcher searcher;
 
     public HybridIndexTest(File workDir) {
         this.workDir = workDir;
@@ -138,6 +143,8 @@ public class HybridIndexTest extends Abs
             runAsyncIndex();
         }
         defaultContext = new TestContext();
+        searcher = new Searcher();
+        addBackgroundJob(searcher);
     }
 
     @Override
@@ -181,6 +188,7 @@ public class HybridIndexTest extends Abs
         System.out.printf("numOfIndexes: %d, refreshDeltaMillis: %d, asyncInterval: %d, queueSize: %d , " +
                         "hybridIndexEnabled: %s, metricStatsEnabled: %s %n", numOfIndexes, refreshDeltaMillis,
                 asyncInterval, queueSize, hybridIndexEnabled, metricStatsEnabled);
+        System.out.printf("Searcher: %d %n", searcher.resultSize);
     }
 
     private void dumpStats() {
@@ -266,6 +274,7 @@ public class HybridIndexTest extends Abs
             });
     }
 
+    @SuppressWarnings("ResultOfMethodCallIgnored")
     private static File createTemporaryFolderIn(File parentFolder) throws IOException {
         File createdFolder = File.createTempFile("oak-", "", parentFolder);
         createdFolder.delete();
@@ -313,4 +322,25 @@ public class HybridIndexTest extends Abs
         }
     }
 
+    private class Searcher implements Runnable {
+        final Session session = loginWriter();
+        int resultSize = 0;
+        @Override
+        public void run() {
+            try{
+                run0();
+            } catch (RepositoryException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        private void run0() throws RepositoryException {
+            session.refresh(false);
+            QueryManager qm = session.getWorkspace().getQueryManager();
+            Query q = qm.createQuery("select * from [nt:base] where [" + indexedPropName + "] = $status", Query.JCR_SQL2);
+            q.bindValue("status", session.getValueFactory().createValue(nextIndexedValue()));
+            QueryResult result = q.execute();
+            resultSize =+Iterators.size(result.getNodes());
+        }
+    }
 }