Class SplitPersistence
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.spi.persistence.split.SplitPersistence
-
- All Implemented Interfaces:
SegmentNodeStorePersistence
public class SplitPersistence extends Object implements SegmentNodeStorePersistence
-
-
Constructor Summary
Constructors Constructor Description SplitPersistence(SegmentNodeStorePersistence roPersistence, SegmentNodeStorePersistence rwPersistence)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SegmentArchiveManagercreateArchiveManager(boolean memoryMapping, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor)Opens a new archive manager.GCJournalFilegetGCJournalFile()Create theGCJournalFile.JournalFilegetJournalFile()Create theJournalFile.ManifestFilegetManifestFile()Create theManifestFile.RepositoryLocklockRepository()Acquire the lock on the repository.booleansegmentFilesExist()Check if the segment store already contains any segments
-
-
-
Constructor Detail
-
SplitPersistence
public SplitPersistence(SegmentNodeStorePersistence roPersistence, SegmentNodeStorePersistence rwPersistence) throws IOException
- Throws:
IOException
-
-
Method Detail
-
createArchiveManager
public SegmentArchiveManager createArchiveManager(boolean memoryMapping, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor) throws IOException
Description copied from interface:SegmentNodeStorePersistenceOpens a new archive manager. It'll be used to access the archives containing segments.- Specified by:
createArchiveManagerin 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:SegmentNodeStorePersistenceCheck if the segment store already contains any segments- Specified by:
segmentFilesExistin interfaceSegmentNodeStorePersistence- Returns:
trueis some segments are available for reading
-
getJournalFile
public JournalFile getJournalFile()
Description copied from interface:SegmentNodeStorePersistenceCreate theJournalFile.- Specified by:
getJournalFilein interfaceSegmentNodeStorePersistence- Returns:
- object representing the segment journal file
-
getGCJournalFile
public GCJournalFile getGCJournalFile() throws IOException
Description copied from interface:SegmentNodeStorePersistenceCreate theGCJournalFile.- Specified by:
getGCJournalFilein interfaceSegmentNodeStorePersistence- Returns:
- object representing the GC journal file
- Throws:
IOException
-
getManifestFile
public ManifestFile getManifestFile() throws IOException
Description copied from interface:SegmentNodeStorePersistenceCreate theManifestFile.- Specified by:
getManifestFilein interfaceSegmentNodeStorePersistence- Returns:
- object representing the manifest file
- Throws:
IOException
-
lockRepository
public RepositoryLock lockRepository() throws IOException
Description copied from interface:SegmentNodeStorePersistenceAcquire 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:
lockRepositoryin interfaceSegmentNodeStorePersistence- Returns:
- the acquired repository lock
- Throws:
IOException
-
-