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 am...@apache.org on 2018/07/27 07:28:14 UTC
svn commit: r1836782 -
/jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java
Author: amitj
Date: Fri Jul 27 07:28:14 2018
New Revision: 1836782
URL: http://svn.apache.org/viewvc?rev=1836782&view=rev
Log:
OAK-7662: Allow MarkSweepGarbageCollector to retain output files
- Added a setTraceOutput(boolean) to enable retention of files
Modified:
jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java
Modified: jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java?rev=1836782&r1=1836781&r2=1836782&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java (original)
+++ jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java Fri Jul 27 07:28:14 2018
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.oak.plugins.blob;
+import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Lists.newArrayList;
import static java.io.File.createTempFile;
import static org.apache.commons.io.FileUtils.copyFile;
@@ -132,6 +133,8 @@ public class MarkSweepGarbageCollector i
private final OperationStatsCollector statsCollector;
+ private boolean traceOutput;
+
/**
* Creates an instance of MarkSweepGarbageCollector
*
@@ -161,6 +164,7 @@ public class MarkSweepGarbageCollector i
throws IOException {
this.executor = executor;
this.blobStore = blobStore;
+ checkNotNull(blobStore, "BlobStore cannot be null");
this.marker = marker;
this.batchCount = batchCount;
this.maxLastModifiedInterval = maxLastModifiedInterval;
@@ -336,7 +340,7 @@ public class MarkSweepGarbageCollector i
throw e;
} finally {
statsCollector.updateDuration(sw.elapsed(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS);
- if (!LOG.isTraceEnabled()) {
+ if (!LOG.isTraceEnabled() && !traceOutput) {
Closeables.close(fs, threw);
}
}
@@ -660,13 +664,17 @@ public class MarkSweepGarbageCollector i
blobStore, fs.getGcCandidates().getAbsolutePath());
}
} finally {
- if (!LOG.isTraceEnabled() && candidates == 0) {
+ if (!traceOutput && (!LOG.isTraceEnabled() && candidates == 0)) {
Closeables.close(fs, threw);
}
}
return candidates;
}
+ public void setTraceOutput(boolean trace) {
+ traceOutput = trace;
+ }
+
/**
* BlobIdRetriever class to retrieve all blob ids.
*/