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());
}
/**