Class AzurePersistence
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.azure.AzurePersistence
-
- All Implemented Interfaces:
SegmentNodeStorePersistence
public class AzurePersistence extends Object implements SegmentNodeStorePersistence
-
-
Field Summary
Fields Modifier and Type Field Description protected AzureHttpRequestLoggingPolicyazureHttpRequestLoggingPolicyprotected com.azure.storage.blob.BlobContainerClientnoRetryBlobContainerClientprotected com.azure.storage.blob.BlobContainerClientreadBlobContainerClientprotected StringrootPrefixprotected WriteAccessControllerwriteAccessControllerprotected com.azure.storage.blob.BlobContainerClientwriteBlobContainerClient
-
Constructor Summary
Constructors Constructor Description AzurePersistence(com.azure.storage.blob.BlobContainerClient readBlobContainerClient, com.azure.storage.blob.BlobContainerClient writeBlobContainerClient, com.azure.storage.blob.BlobContainerClient noRetryBlobContainerClient, String rootPrefix)AzurePersistence(com.azure.storage.blob.BlobContainerClient readBlobContainerClient, com.azure.storage.blob.BlobContainerClient writeBlobContainerClient, com.azure.storage.blob.BlobContainerClient noRetryBlobContainerClient, String rootPrefix, AzureHttpRequestLoggingPolicy azureHttpRequestLoggingPolicy, Integer journalLineLimit)AzurePersistence(com.azure.storage.blob.BlobContainerClient blobContainerClient, String rootPrefix)
-
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.azure.storage.blob.BlobContainerClientgetReadBlobContainerClient()RepositoryLocklockRepository()Acquire the lock on the repository.booleansegmentFilesExist()Check if the segment store already contains any segmentsvoidsetWriteAccessController(WriteAccessController writeAccessController)
-
-
-
Field Detail
-
readBlobContainerClient
protected final com.azure.storage.blob.BlobContainerClient readBlobContainerClient
-
writeBlobContainerClient
protected final com.azure.storage.blob.BlobContainerClient writeBlobContainerClient
-
noRetryBlobContainerClient
protected final com.azure.storage.blob.BlobContainerClient noRetryBlobContainerClient
-
rootPrefix
protected final String rootPrefix
-
azureHttpRequestLoggingPolicy
protected AzureHttpRequestLoggingPolicy azureHttpRequestLoggingPolicy
-
writeAccessController
protected WriteAccessController writeAccessController
-
-
Constructor Detail
-
AzurePersistence
public AzurePersistence(com.azure.storage.blob.BlobContainerClient blobContainerClient, String rootPrefix)
-
AzurePersistence
public AzurePersistence(com.azure.storage.blob.BlobContainerClient readBlobContainerClient, com.azure.storage.blob.BlobContainerClient writeBlobContainerClient, com.azure.storage.blob.BlobContainerClient noRetryBlobContainerClient, String rootPrefix)
-
AzurePersistence
public AzurePersistence(com.azure.storage.blob.BlobContainerClient readBlobContainerClient, com.azure.storage.blob.BlobContainerClient writeBlobContainerClient, com.azure.storage.blob.BlobContainerClient noRetryBlobContainerClient, String rootPrefix, AzureHttpRequestLoggingPolicy azureHttpRequestLoggingPolicy, Integer journalLineLimit)
-
-
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
-
getReadBlobContainerClient
public com.azure.storage.blob.BlobContainerClient getReadBlobContainerClient()
-
setWriteAccessController
public void setWriteAccessController(WriteAccessController writeAccessController)
-
-