Class CachingPersistence
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.spi.persistence.persistentcache.CachingPersistence
-
- All Implemented Interfaces:
SegmentNodeStorePersistence
public class CachingPersistence extends Object implements SegmentNodeStorePersistence
-
-
Constructor Summary
Constructors Constructor Description CachingPersistence(PersistentCache persistentCache, SegmentNodeStorePersistence delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SegmentArchiveManager
createArchiveManager(boolean memoryMapping, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor)
Opens a new archive manager.GCJournalFile
getGCJournalFile()
Create theGCJournalFile
.JournalFile
getJournalFile()
Create theJournalFile
.ManifestFile
getManifestFile()
Create theManifestFile
.RepositoryLock
lockRepository()
Acquire the lock on the repository.boolean
segmentFilesExist()
Check if the segment store already contains any segments
-
-
-
Constructor Detail
-
CachingPersistence
public CachingPersistence(PersistentCache persistentCache, SegmentNodeStorePersistence delegate)
-
-
Method Detail
-
createArchiveManager
public SegmentArchiveManager createArchiveManager(boolean memoryMapping, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor) throws IOException
Description copied from interface:SegmentNodeStorePersistence
Opens a new archive manager. It'll be used to access the archives containing segments.- Specified by:
createArchiveManager
in interfaceSegmentNodeStorePersistence
- Parameters:
memoryMapping
- whether the memory mapping should be used (if the given persistence supports it)offHeapAccess
- whether off heap access for segments should be usedioMonitor
- object used to monitor segment-related IO access. The implementation should call the appropriate methods when accessing segments.fileStoreMonitor
- object used to monitor the general IO usage.- Returns:
- segment archive manager
- Throws:
IOException
-
segmentFilesExist
public boolean segmentFilesExist()
Description copied from interface:SegmentNodeStorePersistence
Check if the segment store already contains any segments- Specified by:
segmentFilesExist
in interfaceSegmentNodeStorePersistence
- Returns:
true
is some segments are available for reading
-
getJournalFile
public JournalFile getJournalFile()
Description copied from interface:SegmentNodeStorePersistence
Create theJournalFile
.- Specified by:
getJournalFile
in interfaceSegmentNodeStorePersistence
- Returns:
- object representing the segment journal file
-
getGCJournalFile
public GCJournalFile getGCJournalFile() throws IOException
Description copied from interface:SegmentNodeStorePersistence
Create theGCJournalFile
.- Specified by:
getGCJournalFile
in interfaceSegmentNodeStorePersistence
- Returns:
- object representing the GC journal file
- Throws:
IOException
-
getManifestFile
public ManifestFile getManifestFile() throws IOException
Description copied from interface:SegmentNodeStorePersistence
Create theManifestFile
.- Specified by:
getManifestFile
in interfaceSegmentNodeStorePersistence
- Returns:
- object representing the manifest file
- Throws:
IOException
-
lockRepository
public RepositoryLock lockRepository() throws IOException
Description copied from interface:SegmentNodeStorePersistence
Acquire the lock on the repository. During the lock lifetime it shouldn't be possible to acquire it again, either by a local or by a remote process.The lock can be released manually by calling
RepositoryLock.unlock()
. If the segment node store is shut down uncleanly (eg. the process crashes), it should be released automatically, so no extra maintenance tasks are required to run the process again.- Specified by:
lockRepository
in interfaceSegmentNodeStorePersistence
- Returns:
- the acquired repository lock
- Throws:
IOException
-
-