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 md...@apache.org on 2015/04/15 14:18:44 UTC

svn commit: r1673738 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment: CompactionMap.java file/FileStore.java

Author: mduerig
Date: Wed Apr 15 12:18:44 2015
New Revision: 1673738

URL: http://svn.apache.org/r1673738
Log:
OAK-2713: High memory usage of CompactionMap
Improve monitoring of compaction map

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMap.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMap.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMap.java?rev=1673738&r1=1673737&r2=1673738&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMap.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/CompactionMap.java Wed Apr 15 12:18:44 2015
@@ -425,6 +425,10 @@ public class CompactionMap {
         return sb.toString();
     }
 
+    /**
+     * The weight of the compaction map is its  memory consumption bytes
+     * @return  Estimated weight of the compaction map
+     */
     public long getEstimatedWeight() {
         long total = 0;
         CompactionMap cm = this;
@@ -435,6 +439,20 @@ public class CompactionMap {
         return total;
     }
 
+    /**
+     * The depth of the compaction map is the total number of generations
+     * kept. That is this instance plus the number of all previous instances.
+     * @return  Depth of the compaction map
+     */
+    public int getDepth() {
+        if (prev == null) {
+            return 1;
+        } else {
+            return 1 + prev.getDepth();
+        }
+
+    }
+
     public long getLastMergeWeight() {
         return this.prevWeight;
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java?rev=1673738&r1=1673737&r2=1673738&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java Wed Apr 15 12:18:44 2015
@@ -672,9 +672,10 @@ public class FileStore implements Segmen
         long finalSize = size();
         gcMonitor.cleaned(initialSize - finalSize, finalSize);
         gcMonitor.info("TarMK revision cleanup completed in {}. Post cleanup size is {} " +
-                "and space reclaimed {}", watch,
+                "and space reclaimed {}. Compaction map weight/depth is {}/{}.", watch,
                 humanReadableByteCount(finalSize),
-                humanReadableByteCount(initialSize - finalSize));
+                humanReadableByteCount(initialSize - finalSize),
+                humanReadableByteCount(cm.getEstimatedWeight()), cm.getDepth());
     }
 
     /**