Class AzurePersistenceV8
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.azure.v8.AzurePersistenceV8
-
- All Implemented Interfaces:
SegmentNodeStorePersistence
public class AzurePersistenceV8 extends Object implements SegmentNodeStorePersistence
-
-
Field Summary
Fields Modifier and Type Field Description protected com.microsoft.azure.storage.blob.CloudBlobDirectorysegmentstoreDirectoryprotected WriteAccessControllerwriteAccessController
-
Constructor Summary
Constructors Constructor Description AzurePersistenceV8(com.microsoft.azure.storage.blob.CloudBlobDirectory segmentStoreDirectory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SegmentArchiveManagercreateArchiveManager(boolean mmap, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor)Opens a new archive manager.GCJournalFilegetGCJournalFile()Create theGCJournalFile.JournalFilegetJournalFile()Create theJournalFile.ManifestFilegetManifestFile()Create theManifestFile.com.microsoft.azure.storage.blob.CloudBlobDirectorygetSegmentstoreDirectory()RepositoryLocklockRepository()Acquire the lock on the repository.booleansegmentFilesExist()Check if the segment store already contains any segmentsvoidsetWriteAccessController(WriteAccessController writeAccessController)
-
-
-
Field Detail
-
segmentstoreDirectory
protected final com.microsoft.azure.storage.blob.CloudBlobDirectory segmentstoreDirectory
-
writeAccessController
protected WriteAccessController writeAccessController
-
-
Method Detail
-
createArchiveManager
public SegmentArchiveManager createArchiveManager(boolean mmap, boolean offHeapAccess, IOMonitor ioMonitor, FileStoreMonitor fileStoreMonitor, RemoteStoreMonitor remoteStoreMonitor)
Description copied from interface:SegmentNodeStorePersistenceOpens a new archive manager. It'll be used to access the archives containing segments.- Specified by:
createArchiveManagerin interfaceSegmentNodeStorePersistence- Parameters:
mmap- 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
-
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
-
getSegmentstoreDirectory
public com.microsoft.azure.storage.blob.CloudBlobDirectory getSegmentstoreDirectory()
-
setWriteAccessController
public void setWriteAccessController(WriteAccessController writeAccessController)
-
-