
org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.class Maven / Gradle / Ivy
???? 3) 9org/apache/jackrabbit/oak/segment/SegmentNodeStoreService 2org/apache/jackrabbit/oak/spi/state/ProxyNodeStore /org/apache/jackrabbit/oak/spi/commit/Observable 6org/apache/jackrabbit/oak/segment/SegmentStoreProvider SegmentNodeStoreService.java ,Lorg/apache/felix/scr/annotations/Component; policy 6Lorg/apache/felix/scr/annotations/ConfigurationPolicy; REQUIRE metatype label /Apache Jackrabbit Oak Segment NodeStore Service description?NodeStore implementation based on Segment model. For configuration option refer to http://jackrabbit.apache.org/oak/docs/osgi_config.html#SegmentNodeStore. Note that for system stability purpose it is advisable to not change these settings at runtime. Instead the config change should be done via file system based config file and this view should ONLY be used to determine which options are supported ;org/apache/jackrabbit/oak/segment/SegmentNodeStoreService$1 Jorg/apache/jackrabbit/oak/segment/SegmentNodeStore$SegmentNodeStoreBuilder 2org/apache/jackrabbit/oak/segment/SegmentNodeStore SegmentNodeStoreBuilder [org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils$SharedStoreRecordType Eorg/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils SharedStoreRecordType NAME Ljava/lang/String; name " DIRECTORY repository.home % +Lorg/apache/felix/scr/annotations/Property; Directory ?Directory location used to store the segment tar files. If not specified then looks for framework property 'repository.home' otherwise use a subdirectory with name 'tarmk' MODE
tarmk.mode + Mode =TarMK mode (64 for memory mapping, 32 for normal file access) SIZE
tarmk.size 0 intValue Maximum Tar File Size (MB) TarMK maximum file size (MB) CACHE cache 7 Cache size (MB) 2Cache size for storing most recently used Segments COMPACTION_MEMORY_THRESHOLD compaction.memoryThreshold < byteValue Memory Multiplier ETarMK compaction available memory multiplier needed to run compaction COMPACTION_GAIN_THRESHOLD compaction.gainThreshold C
Compaction gain threshold ?TarMK compaction gain threshold. The gain estimation prevents compaction from running if the provided threshold is not met. Value represents a percentage so an input beween 0 and 100 is expected. PAUSE_COMPACTION pauseCompaction I boolValue Pause Compaction .When enabled compaction would not be performed COMPACTION_RETRY_COUNT compaction.retryCount P Compaction Retries QNumber of tries to compact concurrent commits on top of already compacted commits COMPACTION_FORCE_AFTER_FAIL compaction.forceAfterFail U Force Compaction ?Whether or not to force compact concurrent commits on top of already compacted commits after the maximum number of retries has been reached. Force committing tries to exclusively write lock the node store. !COMPACTION_LOCK_WAIT_TIME_DEFAULT I < COMPACTION_LOCK_WAIT_TIME compaction.lockWaitTime ] Compaction Lock Wait Time ?Number of seconds to wait for the lock for committing compacted changes respectively to wait for the exclusive write lock for force committing. STANDBY standby b Standby Mode dFlag indicating that this component will not register as a NodeStore but just as a NodeStoreProvider CUSTOM_BLOB_STORE customBlobStore g Custom BlobStore ?Boolean value indicating that a custom BlobStore is to be used. By default large binary content would be stored within segment tar files log Lorg/slf4j/Logger; store 2Lorg/apache/jackrabbit/oak/segment/file/FileStore; segmentNodeStore 4Lorg/apache/jackrabbit/oak/segment/SegmentNodeStore; observerTracker 0Lorg/apache/jackrabbit/oak/osgi/ObserverTracker; gcMonitor 3Lorg/apache/jackrabbit/oak/spi/gc/GCMonitorTracker; context -Lorg/osgi/service/component/ComponentContext; blobStore .Lorg/apache/jackrabbit/oak/spi/blob/BlobStore; ,Lorg/apache/felix/scr/annotations/Reference; cardinality 7Lorg/apache/felix/scr/annotations/ReferenceCardinality; OPTIONAL_UNARY 2Lorg/apache/felix/scr/annotations/ReferencePolicy; DYNAMIC target 3(&(!(split.blobstore=old))(!(split.blobstore=new))) statisticsProvider 4Lorg/apache/jackrabbit/oak/stats/StatisticsProvider; storeRegistration (Lorg/osgi/framework/ServiceRegistration; providerRegistration checkpointRegistration 7Lorg/apache/jackrabbit/oak/spi/whiteboard/Registration; revisionGCRegistration blobGCRegistration gcOptionsRegistration segmentCacheMBean stringCacheMBean fsgcMonitorMBean fileStoreStatsMBean executor =Lorg/apache/jackrabbit/oak/spi/whiteboard/WhiteboardExecutor; Z #discoveryLiteDescriptorRegistration clusterIdDescriptorRegistration DEFAULT_BLOB_GC_MAX_AGE J Q? PROP_BLOB_GC_MAX_AGE blobGcMaxAgeInSecs ? longValue Blob GC Max Age (in secs)Blob Garbage Collector (GC) logic will only consider those blobs for GC which are not accessed recently (currentTime - lastModifiedTime > blobGcMaxAgeInSecs). For example as per default only those blobs which have been created 24 hrs ago will be considered for GC ()V ? ?
? java/lang/Object ? getClass ()Ljava/lang/Class; ? ?
? ? org/slf4j/LoggerFactory ? getLogger %(Ljava/lang/Class;)Lorg/slf4j/Logger; ? ?
? ? k l ? 2org/apache/jackrabbit/oak/stats/StatisticsProvider ? NOOP ? ? ? ? ? ? ? this ;Lorg/apache/jackrabbit/oak/segment/SegmentNodeStoreService; getNodeStore 6()Lorg/apache/jackrabbit/oak/segment/SegmentNodeStore; o p ? #service must be activated when used ? $com/google/common/base/Preconditions ?
checkState (ZLjava/lang/Object;)V ? ?
? ? activate 0(Lorg/osgi/service/component/ComponentContext;)V java/io/IOException ? +Lorg/apache/felix/scr/annotations/Activate; u v ? property &(Ljava/lang/String;)Ljava/lang/String; ? ?
? java/lang/Boolean ? parseBoolean (Ljava/lang/String;)Z ? ?
? ? g ? ? w x ? ^BlobStore use enabled. SegmentNodeStore would be initialized when BlobStore would be available ? org/slf4j/Logger ? info (Ljava/lang/String;)V ? ? ? ? registerNodeStore ? ?
?
bindBlobStore 1(Lorg/apache/jackrabbit/oak/spi/blob/BlobStore;)V unbindBlobStore unregisterNodeStore ? ?
?
deactivate -Lorg/apache/felix/scr/annotations/Deactivate; q r ? .org/apache/jackrabbit/oak/osgi/ObserverTracker ? stop ? ?
? ? s t ? 1org/apache/jackrabbit/oak/spi/gc/GCMonitorTracker ?
? ? m n ? 0org/apache/jackrabbit/oak/segment/file/FileStore ? close ? ?
? ? java/lang/Throwable registerSegmentStore ()Z
0org/apache/jackrabbit/oak/commons/PropertiesUtil toBoolean (Ljava/lang/Object;Z)Z
registerSegmentNodeStore
java/util/Hashtable
? service.pid java/lang/Class getName ()Ljava/lang/String;
java/util/Dictionary put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
oak.nodestore.description java/lang/String" nodeStoreType=segment$ +org/osgi/service/component/ComponentContext& getBundleContext $()Lorg/osgi/framework/BundleContext;()'* -org/apache/jackrabbit/oak/spi/state/NodeStore, org/osgi/framework/BundleContext. registerService d(Ljava/lang/String;Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi/framework/ServiceRegistration;01/2 ? ? 4 props ; Ljava/util/Dictionary; ?Component still not activated. Ignoring the initialization call9 -org/apache/jackrabbit/oak/osgi/OsgiWhiteboard; %(Lorg/osgi/framework/BundleContext;)V ?=
<>
? ? start 8(Lorg/apache/jackrabbit/oak/spi/whiteboard/Whiteboard;)VAB
?C newGCOptions A()Lorg/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions;EF
G getDirectory ()Ljava/io/File;IJ
K 7org/apache/jackrabbit/oak/segment/file/FileStoreBuilderM fileStoreBuilder I(Ljava/io/File;)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;OP
NQ getCacheSize ()IST
U
withCacheSize <(I)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;WX
NY getMaxFileSize[T
\ withMaxFileSize^X
N_ getModea
b 64d equals (Ljava/lang/Object;)Zfg
#h withMemoryMapping <(Z)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;jk
Nl
withGCMonitor g(Lorg/apache/jackrabbit/oak/spi/gc/GCMonitor;)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;no
Np withStatisticsProvider o(Lorg/apache/jackrabbit/oak/stats/StatisticsProvider;)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;rs
Nt
withGCOptions z(Lorg/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions;)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;vw
Nx 1Initializing SegmentNodeStore with BlobStore [{}]z '(Ljava/lang/String;Ljava/lang/Object;)V ?| ?}
withBlobStore i(Lorg/apache/jackrabbit/oak/spi/blob/BlobStore;)Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder;?
N? build 4()Lorg/apache/jackrabbit/oak/segment/file/FileStore;??
N? >org/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGC? Corg/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGCMBean? B(Lorg/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions;)V ??
?? SegmentRevisionGarbageCollection? Segment node store gc options? 8org/apache/jackrabbit/oak/spi/whiteboard/WhiteboardUtils?
registerMBean ?(Lorg/apache/jackrabbit/oak/spi/whiteboard/Whiteboard;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Lorg/apache/jackrabbit/oak/spi/whiteboard/Registration;??
?? ? ? ? getSegmentCacheStats .()Lorg/apache/jackrabbit/oak/cache/CacheStats;??
?? 1org/apache/jackrabbit/oak/api/jmx/CacheStatsMBean?
CacheStats? *org/apache/jackrabbit/oak/cache/CacheStats?
? ? ? ? getStringCacheStats??
?? ? ? ? ;org/apache/jackrabbit/oak/spi/whiteboard/WhiteboardExecutor?
? ? ? ? ?
?C >(Lorg/apache/jackrabbit/oak/segment/SegmentNodeStoreService;)V ??
? 3org/apache/jackrabbit/oak/spi/state/RevisionGCMBean? .org/apache/jackrabbit/oak/spi/state/RevisionGC? 6(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V ??
?? RevisionGarbageCollection? .Segment node store revision garbage collection? ? ? ? :org/apache/jackrabbit/oak/segment/file/FileStoreStatsMBean? getStats 9()Lorg/apache/jackrabbit/oak/segment/file/FileStoreStats;??
?? FileStoreStats? FileStore statistics? ? ? ? 9org/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor? %org/apache/jackrabbit/oak/stats/Clock? SIMPLE 'Lorg/apache/jackrabbit/oak/stats/Clock;?? ?? *(Lorg/apache/jackrabbit/oak/stats/Clock;)V ??
?? >org/apache/jackrabbit/oak/spi/whiteboard/CompositeRegistration? 5org/apache/jackrabbit/oak/spi/whiteboard/Registration? *org/apache/jackrabbit/oak/spi/gc/GCMonitor? java/util/Collections? emptyMap ()Ljava/util/Map;??
?? register k(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Map;)Lorg/apache/jackrabbit/oak/spi/whiteboard/Registration;??
<? 5org/apache/jackrabbit/oak/segment/file/GCMonitorMBean?
GC Monitor? %File Store garbage collection monitor? scheduleWithFixedDelay ?(Lorg/apache/jackrabbit/oak/spi/whiteboard/Whiteboard;Ljava/lang/Runnable;J)Lorg/apache/jackrabbit/oak/spi/whiteboard/Registration;??
?? ;([Lorg/apache/jackrabbit/oak/spi/whiteboard/Registration;)V ??
?? ? ? ? ? ? ?
whiteboard /Lorg/apache/jackrabbit/oak/osgi/OsgiWhiteboard; gcOptions ?Lorg/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions; builder 9Lorg/apache/jackrabbit/oak/segment/file/FileStoreBuilder; segmentCacheStats ,Lorg/apache/jackrabbit/oak/cache/CacheStats; stringCacheStats triggerGarbageCollection Ljava/lang/Runnable; fsgcm ;Lorg/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor; =org/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions toInteger (Ljava/lang/Object;I)I
getMemoryThreshold ()B
getGainThreshold
(ZIIIZI)V ?
setForceAfterFail B(Z)Lorg/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions;
retryCount forceAfterFail lockWaitTime memoryThreshold B
gainThreshold segmentGCOptions java/lang/Exception"
getProperties ()Ljava/util/Dictionary;$%'& get &(Ljava/lang/Object;)Ljava/lang/Object;()
* valueOf &(Ljava/lang/Object;)Ljava/lang/String;,-
#. " ! 0 toLong (Ljava/lang/Object;J)J23
4 :org/apache/jackrabbit/oak/segment/SegmentNodeStoreBuilders6 ?(Lorg/apache/jackrabbit/oak/segment/file/FileStore;)Lorg/apache/jackrabbit/oak/segment/SegmentNodeStore$SegmentNodeStoreBuilder;?8
79? ?
; 4(Lorg/apache/jackrabbit/oak/spi/commit/Observable;)V ?=
?>A=
?@ 1org/apache/jackrabbit/oak/api/jmx/CheckpointMBeanB 8org/apache/jackrabbit/oak/segment/SegmentCheckpointMBeanD 7(Lorg/apache/jackrabbit/oak/segment/SegmentNodeStore;)V ?F
EG CheckpointMangerI (Segment node store checkpoint managementK ? ? M 1org/apache/jackrabbit/oak/util/GenericDescriptorsO
P ?
oak.clusteridR 0org/apache/jackrabbit/commons/SimpleValueFactoryT
U ? Borg/apache/jackrabbit/oak/plugins/identifier/ClusterRepositoryInfoW
getOrCreateId C(Lorg/apache/jackrabbit/oak/spi/state/NodeStore;)Ljava/lang/String;YZ
X[ createValue %(Ljava/lang/String;)Ljavax/jcr/Value;]^
U_ Z(Ljava/lang/String;Ljavax/jcr/Value;ZZ)Lorg/apache/jackrabbit/oak/util/GenericDescriptors;a
Pb )org/apache/jackrabbit/oak/api/Descriptorsd ? ? f Aorg/apache/jackrabbit/oak/segment/SegmentDiscoveryLiteDescriptorsh 2(Lorg/apache/jackrabbit/oak/spi/state/NodeStore;)V ?j
ik ? ? m o isShared 1(Lorg/apache/jackrabbit/oak/spi/blob/BlobStore;)Zqr
s 6org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreu java/io/ByteArrayInputStreamw ([B)V ?y
xz
REPOSITORY ]Lorg/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils$SharedStoreRecordType;|} ~
getNameFromId? ?
? addMetadataRecord *(Ljava/io/InputStream;Ljava/lang/String;)V??v? (Could not register a unique repositoryId? *(Ljava/lang/String;Ljava/lang/Throwable;)V ??
?? getBlobStore 0()Lorg/apache/jackrabbit/oak/spi/blob/BlobStore;??
?? >org/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore? @org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector? ?org/apache/jackrabbit/oak/segment/SegmentBlobReferenceRetriever? 5(Lorg/apache/jackrabbit/oak/segment/file/FileStore;)V ??
?? java/util/concurrent/TimeUnit? SECONDS Ljava/util/concurrent/TimeUnit;?? ?? toMillis (J)J??
?? ?(Lorg/apache/jackrabbit/oak/plugins/blob/BlobReferenceRetriever;Lorg/apache/jackrabbit/oak/spi/blob/GarbageCollectableBlobStore;Ljava/util/concurrent/Executor;JLjava/lang/String;)V ??
?? 2org/apache/jackrabbit/oak/plugins/blob/BlobGCMBean? -org/apache/jackrabbit/oak/plugins/blob/BlobGC? _(Lorg/apache/jackrabbit/oak/plugins/blob/BlobGarbageCollector;Ljava/util/concurrent/Executor;)V ??
?? BlobGarbageCollection? *Segment node store blob garbage collection? ? ? ? SegmentNodeStore initialized? e Ljava/lang/Exception; gc =Lorg/apache/jackrabbit/oak/plugins/blob/BlobGarbageCollector;
properties Ljava/util/Dictionary<**>;
clusterIdDesc 3Lorg/apache/jackrabbit/oak/util/GenericDescriptors; repoId
unregister? ??? &org/osgi/framework/ServiceRegistration???
? ? getBaseDirectory java/io/File? ? ?
?? tarmk? directory?J
? segmentstore? #(Ljava/io/File;Ljava/lang/String;)V ??
?? sun.arch.data.model? 32? java/lang/System? getProperty 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;??
?? mode getCacheSizeProperty? ?
???
? java/lang/Integer? parseInt (Ljava/lang/String;)I??
?? getMaxFileSizeProperty 256? size?
? java/lang/Byte? $(Ljava/lang/String;)Ljava/lang/Byte;,?
?? >
?? mt gt 'org/apache/jackrabbit/oak/osgi/OsgiUtil? lookupConfigurationThenFramework S(Lorg/osgi/service/component/ComponentContext;Ljava/lang/String;)Ljava/lang/String;??
?? getSegmentStore 2()Lorg/apache/jackrabbit/oak/segment/SegmentStore; addObserver D(Lorg/apache/jackrabbit/oak/spi/commit/Observer;)Ljava/io/Closeable; ? ?
observer /Lorg/apache/jackrabbit/oak/spi/commit/Observer; toString java/lang/StringBuilder
? append -(Ljava/lang/String;)Ljava/lang/StringBuilder;
: -(Ljava/lang/Object;)Ljava/lang/StringBuilder;
1()Lorg/apache/jackrabbit/oak/spi/state/NodeStore;
access$000 o(Lorg/apache/jackrabbit/oak/segment/SegmentNodeStoreService;)Lorg/apache/jackrabbit/oak/segment/file/FileStore; x0 bindStatisticsProvider 7(Lorg/apache/jackrabbit/oak/stats/StatisticsProvider;)V unbindStatisticsProvider
ConstantValue RuntimeInvisibleAnnotations Code LocalVariableTable LineNumberTable
StackMapTable
Exceptions LocalVariableTypeTable
SourceFile InnerClasses ! ' ! # $ ! & ' s ( s ) * ! , ' s - s . / ! 1 ' 2[ I 3 s 4 s 5 6 ! 8 ' 2[ I 3 s 9 s : ; ! = ' >[ B ? s @ s A B ! D ' >[ B E s F s G H ! J ' K[ Z L s M s N O ! Q ' 2[ I ? s R s S T ! V ' K[ Z L s W s X Y Z [ \ ! ^ ' 2[ I [ s _ s ` a ! c ' K[ Z L s d s e f ! h ' K[ Z L s i s j k l " ! m n B o p q r s t u v B w x y ze { | e } ~ s ? ? ? y ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? g ? ? ? ? ? ? ? ? ? ! ? ' ?[ J ? s ? s ? ? ? ! I *? ?**? ?? ?? ?*? ?? ?? " ? ? # o ? ? ? ? ! O *? ?? ? ?? ?*? ?? " ? ? #
$ @ ? ? ! ? 3*+? ?**h? ϸ յ ?*? ?? *? י *? ?۹ ? ? *? ? " 3 ? ? 3 u v #
. 2$ .% ? ? ? ? ! F
*+? ?*? ? "
? ?
w x # % ? ? ? ! F
*? ?*? ? "
? ?
w x # ? ? ! ? G*? ?*YL?*? ??
*? ? ?*? ??
*? ?? ?*? ?*? ?? *? ?? ?*? ?+ç M+?,?? > A A D A " G ? ? # 2 ! " # % &