public class MarkSweepGarbageCollector extends Object implements BlobGarbageCollector
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_BATCH_COUNT |
static String |
DELIM |
static org.slf4j.Logger |
LOG |
static String |
TEMP_DIR |
| Constructor and Description |
|---|
MarkSweepGarbageCollector(BlobReferenceRetriever marker,
org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore blobStore,
Executor executor,
long maxLastModifiedInterval,
String repositoryId) |
MarkSweepGarbageCollector(BlobReferenceRetriever marker,
org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore blobStore,
Executor executor,
String repositoryId)
Instantiates a new blob garbage collector.
|
MarkSweepGarbageCollector(BlobReferenceRetriever marker,
org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore blobStore,
Executor executor,
String root,
int batchCount,
long maxLastModifiedInterval,
String repositoryId)
Creates an instance of MarkSweepGarbageCollector
|
| Modifier and Type | Method and Description |
|---|---|
long |
checkConsistency()
Checks for the DataStore consistency and reports the number of missing blobs still referenced.
|
void |
collectGarbage(boolean markOnly)
Marks garbage blobs from the passed node store instance.
|
void |
collectGarbage(boolean markOnly,
boolean forceBlobRetrieve)
Marks garbage blobs from the passed node store instance.
|
List<GarbageCollectionRepoStats> |
getStats()
Returns the stats related to GC for all repos
|
protected void |
iterateNodeTree(GarbageCollectorFileState fs,
boolean logPath)
Iterates the complete node tree and collect all blob references
|
protected void |
mark(GarbageCollectorFileState fs)
Mark phase of the GC.
|
protected void |
markAndSweep(boolean markOnly,
boolean forceBlobRetrieve)
Mark and sweep.
|
protected long |
sweep(GarbageCollectorFileState fs,
long markStart,
boolean forceBlobRetrieve)
Sweep phase of gc candidate deletion.
|
public static final org.slf4j.Logger LOG
public static final String TEMP_DIR
public static final int DEFAULT_BATCH_COUNT
public static final String DELIM
public MarkSweepGarbageCollector(BlobReferenceRetriever marker, org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore blobStore, Executor executor, String root, int batchCount, long maxLastModifiedInterval, @Nullable String repositoryId) throws IOException
marker - BlobReferenceRetriever instanced used to fetch refereed blob entriesblobStore - the blob store instanceexecutor - executorroot - the root absolute path of directory under which temporary
files would be createdbatchCount - batch sized used for saving intermediate statemaxLastModifiedInterval - lastModifiedTime in millis. Only files with time
less than this time would be considered for GCrepositoryId - - unique repository id for this nodeIOExceptionpublic MarkSweepGarbageCollector(BlobReferenceRetriever marker, org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore blobStore, Executor executor, @Nullable String repositoryId) throws IOException
IOExceptionpublic MarkSweepGarbageCollector(BlobReferenceRetriever marker, org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore blobStore, Executor executor, long maxLastModifiedInterval, @Nullable String repositoryId) throws IOException
IOExceptionpublic void collectGarbage(boolean markOnly)
throws Exception
BlobGarbageCollectorcollectGarbage in interface BlobGarbageCollectormarkOnly - whether to only mark references and not sweep in the mark and sweep operation.Exception - the exceptionpublic void collectGarbage(boolean markOnly,
boolean forceBlobRetrieve)
throws Exception
BlobGarbageCollectorcollectGarbage in interface BlobGarbageCollectormarkOnly - whether to only mark references and not sweep in the mark and sweep operation.forceBlobRetrieve - whether to force retrieve of blob ids from datastoreExceptionpublic List<GarbageCollectionRepoStats> getStats() throws Exception
getStats in interface BlobGarbageCollectorExceptionprotected void markAndSweep(boolean markOnly,
boolean forceBlobRetrieve)
throws Exception
markOnly - whether to mark onlyforceBlobRetrieve - force retrieve blob idsException - the exceptionprotected void mark(GarbageCollectorFileState fs) throws IOException, DataStoreException
fs - the garbage collector file stateIOExceptionDataStoreExceptionprotected long sweep(GarbageCollectorFileState fs, long markStart, boolean forceBlobRetrieve) throws Exception
Performs the following steps depending upon the type of the blob store refer
SharedDataStore.Type:
fs - the garbage collector file statemarkStart - the start time of mark to take as reference for deletionforceBlobRetrieve - Exception - the exceptionprotected void iterateNodeTree(GarbageCollectorFileState fs, boolean logPath) throws IOException
fs - the garbage collector file statelogPath - whether to log path in the file or notIOExceptionpublic long checkConsistency()
throws Exception
checkConsistency in interface BlobGarbageCollectorExceptionCopyright © 2012–2017 The Apache Software Foundation. All rights reserved.