Interface SegmentNodeStorePersistence

    • 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 used
        ioMonitor - 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 the JournalFile.
        Returns:
        object representing the segment journal file
      • getGCJournalFile

        GCJournalFile getGCJournalFile()
                                throws java.io.IOException
        Create the GCJournalFile.
        Returns:
        object representing the GC journal file
        Throws:
        java.io.IOException
      • getManifestFile

        ManifestFile getManifestFile()
                              throws java.io.IOException
        Create the ManifestFile.
        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