Author: chetanm
Date: Fri Dec 15 11:18:29 2017
New Revision: 1818267

URL: http://svn.apache.org/viewvc?rev=1818267&view=rev
Log:
OAK-6353 - Use Document order traversal for reindexing performed on 
DocumentNodeStore setups

Reuse the progress reporter

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/progress/IndexingProgressReporter.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/progress/IndexingProgressReporter.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/progress/IndexingProgressReporter.java?rev=1818267&r1=1818266&r2=1818267&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/progress/IndexingProgressReporter.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/progress/IndexingProgressReporter.java
 Fri Dec 15 11:18:29 2017
@@ -43,7 +43,7 @@ public class IndexingProgressReporter im
     private static final String INDEX_MSG = "Incremental indexing";
 
     private final Logger log = LoggerFactory.getLogger(IndexUpdate.class);
-    private final Stopwatch watch = Stopwatch.createStarted();
+    private Stopwatch watch = Stopwatch.createStarted();
     private final IndexUpdateCallback updateCallback;
     private final NodeTraversalCallback traversalCallback;
     private final Map<String, IndexUpdateState> indexUpdateStates = new 
HashMap<>();
@@ -172,6 +172,12 @@ public class IndexingProgressReporter im
         this.nodeCountEstimator = nodeCountEstimator;
     }
 
+    public void reset(){
+        watch = Stopwatch.createStarted();
+        traversalCount = 0;
+        messagePrefix = INDEX_MSG;
+    }
+
     private String estimatePendingTraversal(double nodesPerSecond) {
         if (estimatedCount >= 0) {
             if (estimatedCount > traversalCount){

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java?rev=1818267&r1=1818266&r2=1818267&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
 Fri Dec 15 11:18:29 2017
@@ -64,7 +64,7 @@ public class DocumentStoreIndexer implem
     private final IndexHelper indexHelper;
     private final List<NodeStateIndexerProvider> indexerProviders;
     private final IndexerSupport indexerSupport;
-    private IndexingProgressReporter progressReporter =
+    private final IndexingProgressReporter progressReporter =
             new IndexingProgressReporter(IndexUpdateCallback.NOOP, 
NodeTraversalCallback.NOOP);
     private final Set<String> indexerPaths = new HashSet<>();
 
@@ -110,7 +110,10 @@ public class DocumentStoreIndexer implem
                 .build();
         closer.register(flatFileStore);
 
-        reconfigureReporter(flatFileStore);
+        progressReporter.reset();
+        if (flatFileStore.getEntryCount() > 0){
+            progressReporter.setNodeCountEstimator((String basePath, 
Set<String> indexPaths) -> flatFileStore.getEntryCount());
+        }
 
         progressReporter.reindexingTraversalStart("/");
 
@@ -132,37 +135,16 @@ public class DocumentStoreIndexer implem
     }
 
     private void configureEstimators() {
-        configureTraversalRateEstimator(progressReporter);
-        long nodesCount = getEstimatedDocumentCount();
-        if (nodesCount > 0) {
-            progressReporter.setNodeCountEstimator((String basePath, 
Set<String> indexPaths) -> nodesCount);
-            log.info("Estimated number of documents in Mongo are {}", 
nodesCount);
-        }
-    }
-
-    private void reconfigureReporter(FlatFileStore flatFileStore) {
-        progressReporter =
-                new IndexingProgressReporter(IndexUpdateCallback.NOOP, 
NodeTraversalCallback.NOOP);
-        configureTraversalRateEstimator(progressReporter);
-        long entryCount = flatFileStore.getEntryCount();
-        if (entryCount > 0) {
-            progressReporter.setNodeCountEstimator((String basePath, 
Set<String> indexPaths) -> entryCount);
-            log.info("Estimated number of entries in flat file store are {}", 
entryCount);
-        } else {
-            log.info("Number of entries in flat file store are unknown");
-        }
-
-        for (String indexerPath : indexerPaths){
-            progressReporter.registerIndex(indexerPath, true, -1);
-        }
-    }
-
-    private void configureTraversalRateEstimator(IndexingProgressReporter 
progressReporter) {
         StatisticsProvider statsProvider = indexHelper.getStatisticsProvider();
         if (statsProvider instanceof MetricStatisticsProvider) {
             MetricRegistry registry = ((MetricStatisticsProvider) 
statsProvider).getRegistry();
             progressReporter.setTraversalRateEstimator(new 
MetricRateEstimator("async", registry));
         }
+        long nodesCount = getEstimatedDocumentCount();
+        if (nodesCount > 0) {
+            progressReporter.setNodeCountEstimator((String basePath, 
Set<String> indexPaths) -> nodesCount);
+            log.info("Estimated number of documents in Mongo are {}", 
nodesCount);
+        }
     }
 
     private long getEstimatedDocumentCount(){


Reply via email to