Interface SegmentNodeStorePersistence
-
- All Known Implementing Classes:
AwsPersistence
,AzurePersistence
,CachingPersistence
,SplitPersistence
,TarPersistence
public interface SegmentNodeStorePersistence
This type is a main entry point for the segment node store persistence. It's used every time the access to the underlying storage (eg. tar files) is required.
-
-
Method Summary
All Methods Instance Methods Abstract 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
-
-
-
Method Detail
-
createArchiveManager
SegmentArchiveManager createArchiveManager(boolean memoryMapping, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor) throws java.io.IOException
Opens a new archive manager. It'll be used to access the archives containing segments.- 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:
java.io.IOException
-
segmentFilesExist
boolean segmentFilesExist()
Check if the segment store already contains any segments- Returns:
true
is some segments are available for reading
-
getJournalFile
JournalFile getJournalFile()
Create theJournalFile
.- Returns:
- object representing the segment journal file
-
getGCJournalFile
GCJournalFile getGCJournalFile() throws java.io.IOException
Create theGCJournalFile
.- Returns:
- object representing the GC journal file
- Throws:
java.io.IOException
-
getManifestFile
ManifestFile getManifestFile() throws java.io.IOException
Create theManifestFile
.- Returns:
- object representing the manifest file
- Throws:
java.io.IOException
-
lockRepository
RepositoryLock lockRepository() throws java.io.IOException
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.- Returns:
- the acquired repository lock
- Throws:
java.io.IOException
-
-