
org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.class Maven / Gradle / Ivy
???? 3?
?T ?U
HV ?W ?X ?Y ?Z ?[ ?\ ?] ^_
^`
?a
?b
cd
efg hi
hj kl
m
no hpq
m hr zstutvw !x
yz
h{|
%V
%}
?~
%???? !?
%? !?
%?
%??? !?
2?
1?
1?
1?
%?
?? z??
;?
?? ???
????
??
??
??
??
????
?z ^?
??
??
?????????????
??
??
??
?????
;?
;? ??
[?
;?
???
bV?
b?
b?
bz?
??????
l?
l?
????
;? ??
???
uV
??
??
??? z?
??
??
c?
??
u?
??
??
?????
????
??
???
?V?
?????
??
???
?m
?????
????
??? ??
?
?
b
?
?V BlobCollectionType InnerClasses GarbageCollectionType BlobIdRetriever LOG Lorg/slf4j/Logger; TEMP_DIR Ljava/lang/String; DEFAULT_BATCH_COUNT I
ConstantValue DELIM transformer !Lcom/google/common/base/Function; Signature GLcom/google/common/base/Function; 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 (ZZ)V forceBlobRetrieve 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?w?|? 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 FileLineDifferenceIterator JLorg/apache/jackrabbit/oak/commons/FileIOUtils$FileLineDifferenceIterator;
candidates sweep G(Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;JZ)J ids removesQueue Ljava/util/ArrayDeque;
partitions earliestRefAvailTime count deleted lastMaxModifiedTime
removesWriter Ljava/io/BufferedWriter; iterator $Lorg/apache/commons/io/LineIterator; $Ljava/util/List; *Ljava/util/ArrayDeque; :Ljava/util/Iterator;>; !?
getBatchCount ()I getLastMaxModifiedTime (J)J maxModified saveBatchToFile +(Ljava/util/List;Ljava/io/BufferedWriter;)V writer ?(Ljava/util/List;Ljava/io/BufferedWriter;)V iterateNodeTree F(Lorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState;Z)V logPath +Ljava/util/concurrent/atomic/AtomicInteger;? checkConsistency ()J )Ljava/util/concurrent/ExecutionException; blobIdRetriever 8Lcom/google/common/util/concurrent/ListenableFutureTask; MLcom/google/common/util/concurrent/ListenableFutureTask;"? timestampToString (J)Ljava/lang/String; timestamp
access$000 ?(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;)Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore; x0
access$100 E(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;)I ()V
SourceFile MarkSweepGarbageCollector.java23 ? ? ?Q ? ? ? ? ? ? ? ? ? ? ? ? ? ?#$%&5 ? ? ?'()*+, 6org/apache/jackrabbit/oak/plugins/blob/SharedDataStore-/01234 Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$2 ?567890 Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$3:0*;<=>? *org/apache/jackrabbit/core/data/DataRecord@ABC2DE Aorg/apache/jackrabbit/oak/plugins/blob/GarbageCollectionRepoStatsFGHIJ ?KILMNAOPQARPSP java/io/LineNumberReader java/io/InputStreamReaderTU ?V ?WX2Y3Z[\]^_I @org/apache/jackrabbit/oak/plugins/blob/GarbageCollectorFileState ?G`a ? ? 3Starting Blob garbage collection with markOnly [{}]bcdefghiA45ja pBlob garbage collection completed in {} ({} ms). Number of blobs deleted [{}] with max modification time of [{}] java/lang/Objectk%lmncoHIfpq= java/lang/Exception Blob garbage collection errorrs ,Starting mark phase of the garbage collectortGLuvw;<xy *Ending mark phase of the garbage collector 2Starting difference phase of the garbage collectorz Horg/apache/jackrabbit/oak/commons/FileIOUtils$FileLineDifferenceIterator{|}| ? ? ?~|?? java/lang/StringBuilder Found candidates - ???? 0Ending difference phase of the garbage collector?? /Earliest reference available for timestamp [{}]tg 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/ArrayDeque??2?????? java/util/List?3L???(?78?Q!??????? ?Deleted only [{}] blobs entries from the [{}] candidates identified. This may happen if blob modified time is > than the max deleted time ({})?p?? +Ending sweep phase of the garbage collector java/lang/String?? ?Q )java/util/concurrent/atomic/AtomicInteger Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$4 ????? WNumber of valid blob references marked under mark phase of Blob garbage collection [{}]L3?c? Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$5?? Starting blob consistency checkfG"?????L? 'java/util/concurrent/ExecutionException @Error occurred while fetching all the blobIds from the BlobStore?G 2Starting difference phase of the consistency check?G 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 {}??2?? java/sql/Timestamp ?P?? 00?? @org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector???????2 Borg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$1 ;org/apache/jackrabbit/oak/plugins/blob/BlobGarbageCollector Sorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$BlobCollectionType Vorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$GarbageCollectionType , java/io/IOException
java/util/Map java/util/Iterator 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 stop MILLISECONDS elapsed "(Ljava/util/concurrent/TimeUnit;)J 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 -org/apache/jackrabbit/oak/commons/FileIOUtils
getMarkedRefs ()Ljava/io/File; getAvailableRefs @(Ljava/io/File;Ljava/io/File;Lcom/google/common/base/Function;)V getGcCandidates writeStrings &(Ljava/util/Iterator;Ljava/io/File;Z)I append -(Ljava/lang/String;)Ljava/lang/StringBuilder; (I)Ljava/lang/StringBuilder; 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;Z)V call ()Ljava/lang/Integer;
getGarbage 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; java/nio/charset/Charset name org/apache/commons/io/FileUtils lineIterator F(Ljava/io/File;Ljava/lang/String;)Lorg/apache/commons/io/LineIterator; #com/google/common/collect/Iterators partition G(Ljava/util/Iterator;I)Lcom/google/common/collect/UnmodifiableIterator; size ?(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;)Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector$BlobCollectionType;
sweepInternal j(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/util/List;Ljava/util/ArrayDeque;J)J +(Ljava/lang/Iterable;)Ljava/util/ArrayList; clear closeQuietly '(Lorg/apache/commons/io/LineIterator;)V )org/apache/jackrabbit/oak/commons/IOUtils (Ljava/io/Closeable;)V
handleRemoves Q(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/io/File;)V warn removeAllMarkedReferences C(Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;)V writeAsLine .(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V flush ?(Lorg/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector;ZLjava/util/concurrent/atomic/AtomicInteger;Ljava/io/BufferedWriter;)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 trace java/io/File getAbsolutePath 9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)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 JAVA_IO_TMPDIR /Lcom/google/common/base/StandardSystemProperty; value ! ? H ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,*? *-? *,? *+? *? *? *? *? ? ? &