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 re...@apache.org on 2017/01/12 12:01:33 UTC

svn commit: r1778423 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java

Author: reschke
Date: Thu Jan 12 12:01:33 2017
New Revision: 1778423

URL: http://svn.apache.org/viewvc?rev=1778423&view=rev
Log:
OAK-5443: VersionGarbageCollector:measure time to sort docIds separately

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java?rev=1778423&r1=1778422&r2=1778423&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java Thu Jan 12 12:01:33 2017
@@ -120,16 +120,18 @@ public class VersionGarbageCollector {
         final Stopwatch collectDeletedDocs = Stopwatch.createUnstarted();
         final Stopwatch deleteDeletedDocs = Stopwatch.createUnstarted();
         final Stopwatch collectAndDeleteSplitDocs = Stopwatch.createUnstarted();
+        final Stopwatch sortDocIds = Stopwatch.createUnstarted();
 
         @Override
         public String toString() {
             return "VersionGCStats{" +
                     "ignoredGCDueToCheckPoint=" + ignoredGCDueToCheckPoint +
-                    ", canceled=" + canceled+
+                    ", canceled=" + canceled +
                     ", deletedDocGCCount=" + deletedDocGCCount +
                     ", splitDocGCCount=" + splitDocGCCount +
                     ", intermediateSplitDocGCCount=" + intermediateSplitDocGCCount +
                     ", timeToCollectDeletedDocs=" + collectDeletedDocs +
+                    ", timeToSortDocIds=" + sortDocIds +
                     ", timeTakenToDeleteDeletedDocs=" + deleteDeletedDocs +
                     ", timeTakenToCollectAndDeleteSplitDocs=" + collectAndDeleteSplitDocs +
                     '}';
@@ -225,10 +227,12 @@ public class VersionGarbageCollector {
                     return;
                 }
 
-                stats.deleteDeletedDocs.start();
+                stats.sortDocIds.start();
+                gc.ensureSorted();
+                stats.sortDocIds.stop();
 
+                stats.deleteDeletedDocs.start();
                 gc.removeDocuments(stats);
-
                 stats.deleteDeletedDocs.stop();
             } finally {
                 gc.close();