Class VersionGCSupport
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.document.VersionGCSupport
-
- Direct Known Subclasses:
MongoVersionGCSupport,RDBVersionGCSupport
public class VersionGCSupport extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description VersionGCSupport(DocumentStore store)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SplitDocumentCleanUpcreateCleanUp(java.util.Set<NodeDocument.SplitDocType> gcTypes, RevisionVector sweepRevs, long oldestRevTimeStamp, VersionGarbageCollector.VersionGCStats stats)longgetDeletedOnceCount()@NotNull DocumentStoregetDocumentStore()Returns the underlying document store.longgetOldestDeletedOnceTimestamp(org.apache.jackrabbit.oak.stats.Clock clock, long precisionMs)Retrieve the time of the oldest document marked as 'deletedOnce'.java.lang.Iterable<NodeDocument>getPossiblyDeletedDocs(long fromModified, long toModified)Returns documents that have aNodeDocument.MODIFIED_IN_SECSvalue within the given range and theNodeDocument.DELETEDset totrue.protected java.lang.Iterable<NodeDocument>identifyGarbage(java.util.Set<NodeDocument.SplitDocType> gcTypes, RevisionVector sweepRevs, long oldestRevTimeStamp)protected static booleanisDefaultNoBranchSplitNewerThan(NodeDocument doc, RevisionVector sweepRevs)Returnstrueif the given document is of typeNodeDocument.SplitDocType.DEFAULT_NO_BRANCHand the most recent change on the document is newer than thesweepRevs.
-
-
-
Constructor Detail
-
VersionGCSupport
public VersionGCSupport(DocumentStore store)
-
-
Method Detail
-
getPossiblyDeletedDocs
public java.lang.Iterable<NodeDocument> getPossiblyDeletedDocs(long fromModified, long toModified)
Returns documents that have aNodeDocument.MODIFIED_IN_SECSvalue within the given range and theNodeDocument.DELETEDset totrue. The two passed modified timestamps are in milliseconds since the epoch and the implementation will convert them to seconds at the granularity of theNodeDocument.MODIFIED_IN_SECSfield and then perform the comparison.- Parameters:
fromModified- the lower bound modified timestamp (inclusive)toModified- the upper bound modified timestamp (exclusive)- Returns:
- matching documents.
-
getDocumentStore
@NotNull public @NotNull DocumentStore getDocumentStore()
Returns the underlying document store.- Returns:
- the underlying document store.
-
createCleanUp
protected SplitDocumentCleanUp createCleanUp(java.util.Set<NodeDocument.SplitDocType> gcTypes, RevisionVector sweepRevs, long oldestRevTimeStamp, VersionGarbageCollector.VersionGCStats stats)
-
identifyGarbage
protected java.lang.Iterable<NodeDocument> identifyGarbage(java.util.Set<NodeDocument.SplitDocType> gcTypes, RevisionVector sweepRevs, long oldestRevTimeStamp)
-
getOldestDeletedOnceTimestamp
public long getOldestDeletedOnceTimestamp(org.apache.jackrabbit.oak.stats.Clock clock, long precisionMs)Retrieve the time of the oldest document marked as 'deletedOnce'.- Parameters:
precisionMs- the exact time may vary by given precision- Returns:
- the timestamp of the oldest document marked with 'deletecOnce', module given prevision. If no such document exists, returns the max time inspected (close to current time).
-
getDeletedOnceCount
public long getDeletedOnceCount() throws java.lang.UnsupportedOperationException- Throws:
java.lang.UnsupportedOperationException
-
isDefaultNoBranchSplitNewerThan
protected static boolean isDefaultNoBranchSplitNewerThan(NodeDocument doc, RevisionVector sweepRevs)
Returnstrueif the given document is of typeNodeDocument.SplitDocType.DEFAULT_NO_BRANCHand the most recent change on the document is newer than thesweepRevs.- Parameters:
doc- the document to check.sweepRevs- the current sweep revisions.- Returns:
trueif the document is aNodeDocument.SplitDocType.DEFAULT_NO_BRANCHand it is newer thansweepRevs;falseotherwise.
-
-