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 ch...@apache.org on 2014/09/10 13:50:27 UTC
svn commit: r1623973 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
Author: chetanm
Date: Wed Sep 10 11:50:26 2014
New Revision: 1623973
URL: http://svn.apache.org/r1623973
Log:
OAK-2090 - Improve logging in compaction and cleanup operation in SegmentMK
Modified:
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/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=1623973&r1=1623972&r2=1623973&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 Sep 10 11:50:26 2014
@@ -27,6 +27,7 @@ import static java.lang.String.format;
import static java.util.Collections.singletonMap;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
+import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.io.File;
@@ -47,6 +48,7 @@ import java.util.concurrent.atomic.Atomi
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import com.google.common.base.Stopwatch;
import org.apache.jackrabbit.oak.api.Blob;
import org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob;
import org.apache.jackrabbit.oak.plugins.segment.Compactor;
@@ -256,16 +258,17 @@ public class FileStore implements Segmen
@Override
public void run() {
log.info("TarMK compaction started");
- long time = System.currentTimeMillis();
+ Stopwatch watch = Stopwatch.createStarted();
CompactionGainEstimate estimate = estimateCompactionGain();
long gain = estimate.estimateCompactionGain();
- time = System.currentTimeMillis() - time;
if (gain >= 10) {
log.info(
- "Estimated compaction in {}ms, gain is {}% ({}/{}), so running compaction",
- new Object[] { time, gain,
- estimate.getReachableSize(),
- estimate.getTotalSize() });
+ "Estimated compaction in {}, gain is {}% ({}/{}) or ({}/{}), so running compaction",
+ watch, gain,
+ estimate.getReachableSize(),
+ estimate.getTotalSize(),
+ humanReadableByteCount(estimate.getReachableSize()),
+ humanReadableByteCount(estimate.getTotalSize()));
if (!pauseCompaction) {
compact();
} else {
@@ -273,10 +276,12 @@ public class FileStore implements Segmen
}
} else {
log.info(
- "Estimated compaction in {}ms, gain is {}% ({}/{}), so skipping compaction for now",
- new Object[] { time, gain,
- estimate.getReachableSize(),
- estimate.getTotalSize() });
+ "Estimated compaction in {}ms, gain is {}% ({}/{}) or ({}/{}), so skipping compaction for now",
+ watch, gain,
+ estimate.getReachableSize(),
+ estimate.getTotalSize(),
+ humanReadableByteCount(estimate.getReachableSize()),
+ humanReadableByteCount(estimate.getTotalSize()));
}
cleanupNeeded.set(true);
}
@@ -439,8 +444,10 @@ public class FileStore implements Segmen
* discarded) if doing so releases more than 25% of the space in a tar file.
*/
public synchronized void cleanup() throws IOException {
- long start = System.nanoTime();
- log.info("TarMK revision cleanup started");
+ Stopwatch watch = Stopwatch.createStarted();
+ long initialSize = size();
+ log.info("TarMK revision cleanup started. Current repository size {}",
+ humanReadableByteCount(initialSize));
// Suggest to the JVM that now would be a good time
// to clear stale weak references in the SegmentTracker
@@ -470,9 +477,11 @@ public class FileStore implements Segmen
}
}
readers = list;
-
- log.info("TarMK revision cleanup completed in {}ms",
- MILLISECONDS.convert(System.nanoTime() - start, NANOSECONDS));
+ long finalSize = size();
+ log.info("TarMK revision cleanup completed in {}. Post cleanup size is {} " +
+ "and space reclaimed {}", watch,
+ humanReadableByteCount(finalSize),
+ humanReadableByteCount(initialSize - finalSize));
}
/**