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/12/09 17:45:43 UTC
svn commit: r1718901 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
Author: mduerig
Date: Wed Dec 9 16:45:43 2015
New Revision: 1718901
URL: http://svn.apache.org/viewvc?rev=1718901&view=rev
Log:
OAK-3760: Compaction progress logger: reported number of nodes and binaries is too high
Place onNode and onBinary calls such that only items actually compacted are accounted for and not such that are merely deduplicated
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java?rev=1718901&r1=1718900&r2=1718901&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java Wed Dec 9 16:45:43 2015
@@ -224,7 +224,7 @@ public class Compactor {
if (path != null) {
log.trace("childNodeAdded {}/{}", path, name);
}
- progress.onNode();
+
RecordId id = null;
if (after instanceof SegmentNodeState) {
id = ((SegmentNodeState) after).getRecordId();
@@ -235,6 +235,7 @@ public class Compactor {
}
}
+ progress.onNode();
NodeBuilder child = EmptyNodeState.EMPTY_NODE.builder();
boolean success = EmptyNodeState.compareAgainstEmptyState(after,
newCompactionDiff(child, path, name));
@@ -256,7 +257,6 @@ public class Compactor {
if (path != null) {
log.trace("childNodeChanged {}/{}", path, name);
}
- progress.onNode();
RecordId id = null;
if (after instanceof SegmentNodeState) {
@@ -268,6 +268,7 @@ public class Compactor {
}
}
+ progress.onNode();
NodeBuilder child = builder.getChildNode(name);
boolean success = after.compareAgainstBaseState(before,
newCompactionDiff(child, path, name));
@@ -320,15 +321,16 @@ public class Compactor {
private Blob compact(Blob blob) {
if (blob instanceof SegmentBlob) {
SegmentBlob sb = (SegmentBlob) blob;
- progress.onBinary();
try {
- // else check if we've already cloned this specific record
+ // Check if we've already cloned this specific record
RecordId id = sb.getRecordId();
RecordId compactedId = map.get(id);
if (compactedId != null) {
return new SegmentBlob(compactedId);
}
+ progress.onBinary();
+
// if the blob is inlined or external, just clone it
if (sb.isExternal() || sb.length() < Segment.MEDIUM_LIMIT) {
SegmentBlob clone = sb.clone(writer, cloneBinaries);