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 2017/05/05 06:07:34 UTC

svn commit: r1793946 - in /jackrabbit/oak/trunk/oak-lucene/src: main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/

Author: chetanm
Date: Fri May  5 06:07:34 2017
New Revision: 1793946

URL: http://svn.apache.org/viewvc?rev=1793946&view=rev
Log:
OAK-5558 - Consistency checker for Lucene indexes

-- Provide option to delete the local copied files by default
-- Add time taken to Result

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyChecker.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyCheckerTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyChecker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyChecker.java?rev=1793946&r1=1793945&r2=1793946&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyChecker.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyChecker.java Fri May  5 06:07:34 2017
@@ -100,13 +100,15 @@ public class IndexConsistencyChecker {
 
         public List<DirectoryStatus> dirStatus = new ArrayList<>();
 
+        private Stopwatch watch;
+
         public void dump(PrintWriter pw){
             if (clean) {
                 pw.printf("%s => VALID%n", indexPath);
             } else {
                 pw.printf("%s => INVALID%n", indexPath);
             }
-            pw.printf("\t Size : %s%n", humanReadableByteCount(binaryPropSize));
+            pw.printf("\tSize : %s%n", humanReadableByteCount(binaryPropSize));
 
             if (!missingBlobIds.isEmpty()){
                 pw.println("Missing blobs");
@@ -125,6 +127,8 @@ public class IndexConsistencyChecker {
             for (DirectoryStatus dirStatus : dirStatus) {
                 dirStatus.dump(pw);
             }
+
+            pw.printf("Time taken : %s%n", watch);
         }
     }
 
@@ -149,13 +153,13 @@ public class IndexConsistencyChecker {
 
         public void dump(PrintWriter pw) {
             pw.println("Directory : " +  dirName);
-            pw.printf("\t Size     : %s%n", humanReadableByteCount(size));
-            pw.printf("\t Num docs : %d%n", numDocs);
+            pw.printf("\tSize     : %s%n", humanReadableByteCount(size));
+            pw.printf("\tNum docs : %d%n", numDocs);
 
             if (!missingFiles.isEmpty()){
-                pw.println("Missing Files");
+                pw.println("\tMissing Files");
                 for (String file : missingFiles) {
-                    pw.println("\t - " + file);
+                    pw.println("\t\t- " + file);
                 }
             }
 
@@ -208,10 +212,15 @@ public class IndexConsistencyChecker {
     }
 
     public Result check(Level level) throws IOException {
+        return check(level, true);
+    }
+
+    public Result check(Level level, boolean cleanWorkDir) throws IOException {
         Stopwatch watch = Stopwatch.createStarted();
         Result result = new Result();
         result.indexPath = indexPath;
         result.clean = true;
+        result.watch = watch;
 
         log.debug("[{}] Starting check", indexPath);
 
@@ -222,13 +231,18 @@ public class IndexConsistencyChecker {
 
         if (result.clean){
             log.info("[] No problems were detected with this index. Time taken {}", indexPath, watch);
-            FileUtils.deleteQuietly(workDir);
+
         } else {
             log.warn("[] Problems detected with this index. Time taken {}", indexPath, watch);
-            if (workDir != null) {
-                log.warn("[] Index files are copied to {}", indexPath, workDir.getAbsolutePath());
-            }
         }
+
+        if (cleanWorkDir){
+            FileUtils.deleteQuietly(workDir);
+        } else if (workDir != null){
+            log.info("[] Index files are copied to {}", indexPath, workDir.getAbsolutePath());
+        }
+
+        watch.stop();
         return result;
     }
 

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyCheckerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyCheckerTest.java?rev=1793946&r1=1793945&r2=1793946&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyCheckerTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexConsistencyCheckerTest.java Fri May  5 06:07:34 2017
@@ -44,7 +44,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;