
org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.class Maven / Gradle / Ivy
???? 2? ?Z
?[
G\ ?] ?^ ?_ ?` ?a ?b ?c de
df
?g
?h
ij
klm no
np qr
s
tu nvw
s nxyz{|{}~ !
??
n??
%\
%?
??
%????? !?
%? !?
%?
%??? !?
2?
1?
1?
1?
%?
??y??
;?
?? ???
????
??
??
??
????
??
??
?????????????
??
??
??
?????
;?
;?
X?
???
;? ??
??
X|
X}y?
??y??
f\?
f?
f?
f?
??
??????
p?
p?
?????
v\
??
??
?|
??
??
v?
;?
i?
???
???????
??? ??
??
??
??y?
?????????????
v??
?\?
??
?
?s
;?
??
?
f
?
! "#$ GarbageCollectionType InnerClasses FileLineDifferenceIterator BlobIdRetriever LOG Lorg/slf4j/Logger; NEWLINE Ljava/lang/String; TEMP_DIR DEFAULT_BATCH_COUNT I
ConstantValue DELIM% maxLastModifiedInterval J blobStore @Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore; marker ?Lorg/apache/jackrabbit/oak/plugins/blob/BlobReferenceRetriever; executor Ljava/util/concurrent/Executor;
batchCount repoId root ?(Lorg/apache/jackrabbit/oak/plugins/blob/BlobReferenceRetriever;Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/util/concurrent/Executor;Ljava/lang/String;IJLjava/lang/String;)V Code LineNumberTable LocalVariableTable this BLorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector; repositoryId
Exceptions& "RuntimeVisibleParameterAnnotations Ljavax/annotation/Nullable; ?(Lorg/apache/jackrabbit/oak/plugins/blob/BlobReferenceRetriever;Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/util/concurrent/Executor;Ljava/lang/String;)V ?(Lorg/apache/jackrabbit/oak/plugins/blob/BlobReferenceRetriever;Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/util/concurrent/Executor;JLjava/lang/String;)V collectGarbage (Z)V markOnly Z getStats ()Ljava/util/List; refRec ,Lorg/apache/jackrabbit/core/data/DataRecord; reader Ljava/io/LineNumberReader; id stat CLorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStats; repoRec i$ Ljava/util/Iterator; refFiles Ljava/util/List;
references Ljava/util/Map; markerFiles markers repoFiles stats LocalVariableTypeTable >Ljava/util/List; OLjava/util/Map; ULjava/util/List;
StackMapTable'()~*??+ Signature W()Ljava/util/List; markAndSweep deleteCount maxTime sw "Lcom/google/common/base/Stopwatch; markStart e Ljava/lang/Exception; threw fs BLorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;?,? mark E(Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;)V-
difference iter ]Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$FileLineDifferenceIterator; calculateDifference ?(Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$FileLineDifferenceIterator;)J
expiredSet
numCandidates bufferWriter Ljava/io/BufferedWriter; $Ljava/util/List;.? sweep F(Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;J)J earliestRefAvailTime count deleted lastMaxModifiedTime exceptionQueue ,Ljava/util/concurrent/ConcurrentLinkedQueue; iterator $Lorg/apache/commons/io/LineIterator; ids writer @Ljava/util/concurrent/ConcurrentLinkedQueue;?/
getBatchCount ()I getLastMaxModifiedTime (J)J maxModified saveBatchToFile +(Ljava/util/List;Ljava/io/BufferedWriter;)V ?(Ljava/util/List;Ljava/io/BufferedWriter;)V
sweepInternal @(Ljava/util/List;Ljava/util/concurrent/ConcurrentLinkedQueue;J)J h(Ljava/util/List;Ljava/util/concurrent/ConcurrentLinkedQueue;J)J iterateNodeTree +Ljava/util/concurrent/atomic/AtomicInteger;? checkConsistency ()J )Ljava/util/concurrent/ExecutionException; blobIdRetriever 8Lcom/google/common/util/concurrent/ListenableFutureTask;
candidates MLcom/google/common/util/concurrent/ListenableFutureTask;0 timestampToString (J)Ljava/lang/String; timestamp
access$000 E(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;)I x0
access$100 ?(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;)Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore; ()V
SourceFile MarkSweepGarbageCollector.java ? ?78 ?W ? ? ? ? ? ? ? ? ? ? ? ? ? ?1234: ? ? ?56789: 6org/apache/jackrabbit/oak/plugins/blob/SharedDataStore;=>?@AB Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$1 ?CDEFG> Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$2H>'0I)JKLM *org/apache/jackrabbit/core/data/DataRecordNOPQ@RS Aorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStatsTU*VWX ?(YWZ[\F]^_F`^a^ java/io/LineNumberReader java/io/InputStreamReaderbc ?d ?ef@g8hijklmW @org/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState ?U,no ? ? 3Starting Blob garbage collection with markOnly [{}]pqrstuvwF()9: hBlob garbage collection completed in {}. Number of blobs deleted [{}] with max modification time of [{}] java/lang/ObjectxqyNOtz{K java/lang/Exception Blob garbage collection error|} ,Starting mark phase of the garbage collector~UZ??B?? *Ending mark phase of the garbage collector 2Starting difference phase of the garbage collector [org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$FileLineDifferenceIterator???? ?? 0Ending difference phase of the garbage collector?????????8<=?K java/lang/StringBuilder Found candidates - ????????? /Earliest reference available for timestamp [{}]~u Porg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$BlobIdRetriever ???? -Starting sweep phase of the garbage collector OSweeping blobs with modified time > than the configured max deleted time ({}). *java/util/concurrent/ConcurrentLinkedQueue??@???/L@?@??6??? nUnable to delete some blobs entries from the blob store. Details around such blob entries can be found in [{}]??@?u ?Deleted only [{}] blobs entries from the [{}] candidates identified. This may happen if blob modified time is > than the max deleted time ({})?z?? +Ending sweep phase of the garbage collector ? ??????.???W?W Blob ids to be deleted {}?u??? 6Some [{}] blobs were not deleted from the batch : [{}]~? 0Error occurred while deleting blob with ids [{}]???? )java/util/concurrent/atomic/AtomicInteger Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$3 ????? WNumber of valid blob references marked under mark phase of Blob garbage collection [{}]Z8?q? Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$4?? Starting blob consistency checktU0?????ZM 'java/util/concurrent/ExecutionException @Error occurred while fetching all the blobIds from the BlobStore?U 2Starting difference phase of the consistency check?U 0Ending difference phase of the consistency check *Consistency check found [{}] missing blobs YConsistency check failure in the the blob store : {}, check missing candidates in file {} java/sql/Timestamp ?^?? 00?? @org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector???????@?? ;org/apache/jackrabbit/oak/plugins/blob/BlobGarbageCollector Vorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$GarbageCollectionType , java/io/IOException java/util/List
java/util/Map java/util/Iterator java/lang/String java/lang/Throwable com/google/common/base/Stopwatch 2org/apache/jackrabbit/core/data/DataStoreException java/io/BufferedWriter "org/apache/commons/io/LineIterator 6com/google/common/util/concurrent/ListenableFutureTask java/util/concurrent/TimeUnit HOURS Ljava/util/concurrent/TimeUnit; toMillis com/google/common/collect/Lists newArrayList ()Ljava/util/ArrayList; Eorg/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils isShared 1(Lorg/apache/jackrabbit/oak/spi/blob/BlobStore;)Z [org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils$SharedStoreRecordType SharedStoreRecordType
REFERENCES ]Lorg/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils$SharedStoreRecordType; getType ()Ljava/lang/String; getAllMetadataRecords $(Ljava/lang/String;)Ljava/util/List; E(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;)V com/google/common/collect/Maps uniqueIndex _(Ljava/lang/Iterable;Lcom/google/common/base/Function;)Lcom/google/common/collect/ImmutableMap; MARKED_START_MARKER
REPOSITORY ()Ljava/util/Iterator; hasNext ()Z next ()Ljava/lang/Object;
getIdentifier 2()Lorg/apache/jackrabbit/core/data/DataIdentifier; .org/apache/jackrabbit/core/data/DataIdentifier toString
getIdFromName &(Ljava/lang/String;)Ljava/lang/String; setRepositoryId (Ljava/lang/String;)V equals (Ljava/lang/Object;)Z setLocal containsKey get &(Ljava/lang/Object;)Ljava/lang/Object; getLastModified
setEndTime (J)V getLength setLength setStartTime getStream ()Ljava/io/InputStream; (Ljava/io/InputStream;)V (Ljava/io/Reader;)V readLine
getLineNumber setNumLines (I)V com/google/common/io/Closeables close (Ljava/io/Closeable;Z)V add
createStarted $()Lcom/google/common/base/Stopwatch; java/lang/Boolean valueOf (Z)Ljava/lang/Boolean; org/slf4j/Logger info '(Ljava/lang/String;Ljava/lang/Object;)V java/lang/System currentTimeMillis java/lang/Long (J)Ljava/lang/Long; ((Ljava/lang/String;[Ljava/lang/Object;)V isTraceEnabled error *(Ljava/lang/String;Ljava/lang/Throwable;)V debug ?(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;)Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$GarbageCollectionType; addMarkedStartMarker U(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/lang/String;)V addMarked ?(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;Ljava/lang/String;)V
getMarkedRefs ()Ljava/io/File; getAvailableRefs (Ljava/io/File;Ljava/io/File;)V getGcCandidates com/google/common/base/Charsets UTF_8 Ljava/nio/charset/Charset; com/google/common/io/Files newWriter B(Ljava/io/File;Ljava/nio/charset/Charset;)Ljava/io/BufferedWriter; size isEmpty append -(Ljava/lang/String;)Ljava/lang/StringBuilder; (J)Ljava/lang/StringBuilder; )org/apache/jackrabbit/oak/commons/IOUtils closeQuietly (Ljava/io/Closeable;)V mergeAllMarkedReferences ?(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;)J ?(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;)V call ()Ljava/lang/Integer; java/nio/charset/Charset name org/apache/commons/io/FileUtils lineIterator F(Ljava/io/File;Ljava/lang/String;)Lorg/apache/commons/io/LineIterator;
getGarbage +(Ljava/lang/Iterable;)Ljava/util/ArrayList; '(Lorg/apache/commons/io/LineIterator;)V java/io/File getAbsolutePath warn removeAllMarkedReferences C(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;)V com/google/common/base/Joiner on 3(Ljava/lang/String;)Lcom/google/common/base/Joiner; join ((Ljava/lang/Iterable;)Ljava/lang/String; *(Ljava/lang/CharSequence;)Ljava/io/Writer; clear flush trace >org/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore countDeleteChunks (Ljava/util/List;J)J 9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V addAll (Ljava/util/Collection;)Z ?(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;Ljava/io/BufferedWriter;Ljava/util/concurrent/atomic/AtomicInteger;)V =org/apache/jackrabbit/oak/plugins/blob/BlobReferenceRetriever collectReferences >(Lorg/apache/jackrabbit/oak/plugins/blob/ReferenceCollector;)V java/lang/Integer (I)Ljava/lang/Integer; sort '(Ljava/io/File;Ljava/util/Comparator;)V create Y(Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFutureTask; java/util/concurrent/Executor execute (Ljava/lang/Runnable;)V -(Ljava/lang/Object;)Ljava/lang/StringBuilder; substring (II)Ljava/lang/String; org/slf4j/LoggerFactory getLogger %(Ljava/lang/Class;)Lorg/slf4j/Logger; -com/google/common/base/StandardSystemProperty LINE_SEPARATOR /Lcom/google/common/base/StandardSystemProperty; value JAVA_IO_TMPDIR ! ? G ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,*? *-? *,? *+? *? *? *? *? ? ? &