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/06/01 12:00:28 UTC
svn commit: r1682855 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment:
CompactionMap.java file/FileStore.java
Author: mduerig
Date: Mon Jun 1 10:00:28 2015
New Revision: 1682855
URL: http://svn.apache.org/r1682855
Log:
OAK-2938: Estimation of required memory for compaction is off
Use last weight as estimate for the required heap size
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=1682855&r1=1682854&r2=1682855&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 Mon Jun 1 10:00:28 2015
@@ -85,7 +85,6 @@ public class CompactionMap {
private long[] afterMsbs = new long[0];
private long[] afterLsbs = new long[0];
- private long prevWeight;
private CompactionMap prev;
CompactionMap(int compressInterval, SegmentTracker tracker) {
@@ -433,7 +432,6 @@ public class CompactionMap {
*/
void merge(CompactionMap prev) {
this.prev = prev;
- this.prevWeight = prev.getEstimatedWeight();
}
public String getCompactionStats() {
@@ -485,8 +483,12 @@ public class CompactionMap {
}
- public long getLastMergeWeight() {
- return this.prevWeight;
+ /**
+ * The weight of the last generation of the compaction map.
+ * @return Estimated weight of the last generation of the compaction map.
+ */
+ public long getLastWeight() {
+ return getEstimatedWeight(this);
}
private static long getEstimatedWeight(CompactionMap cm) {
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=1682855&r1=1682854&r2=1682855&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 Mon Jun 1 10:00:28 2015
@@ -434,7 +434,7 @@ public class FileStore implements Segmen
long avail = runtime.totalMemory() - runtime.freeMemory();
long delta = 0;
if (compactionStrategy.getCompactionMap() != null) {
- delta = compactionStrategy.getCompactionMap().getLastMergeWeight();
+ delta = compactionStrategy.getCompactionMap().getLastWeight();
}
long needed = delta * compactionStrategy.getMemoryThreshold();
if (needed >= avail) {