Interface SegmentArchiveManager

    • Method Detail

      • listArchives

        @NotNull
        @NotNull List<String> listArchives()
                                    throws IOException
        List names of the available .tar archives.
        Returns:
        archive list
        Throws:
        IOException
      • open

        @Nullable
        @Nullable SegmentArchiveReader open​(@NotNull
                                            @NotNull String archiveName)
                                     throws IOException
        Opens a given archive for reading.
        Parameters:
        archiveName -
        Returns:
        the archive reader or null if the archive doesn't exist or doesn't have a valid index
        Throws:
        IOException
      • forceOpen

        @Nullable
        @Nullable SegmentArchiveReader forceOpen​(String archiveName)
                                          throws IOException
        Opens an archive that wasn't closed correctly.
        Parameters:
        archiveName -
        Returns:
        the archive reader or null if the implementation doesn't support opening an unclosed archive
        Throws:
        IOException
      • delete

        boolean delete​(@NotNull
                       @NotNull String archiveName)
        Deletes the archive if exists.
        Parameters:
        archiveName -
        Returns:
        true if the archive was removed, false otherwise
      • renameTo

        boolean renameTo​(@NotNull
                         @NotNull String from,
                         @NotNull
                         @NotNull String to)
        Renames the archive.
        Parameters:
        from - the existing archive
        to - new name
        Returns:
        true if the archive was renamed, false otherwise
      • copyFile

        void copyFile​(@NotNull
                      @NotNull String from,
                      @NotNull
                      @NotNull String to)
               throws IOException
        Copies the archive with all the segments.
        Parameters:
        from - the existing archive
        to - new name
        Throws:
        IOException
      • exists

        boolean exists​(@NotNull
                       @NotNull String archiveName)
        Check if archive exists.
        Parameters:
        archiveName - archive to check
        Returns:
        true if archive exists, false otherwise
      • recoverEntries

        void recoverEntries​(@NotNull
                            @NotNull String archiveName,
                            @NotNull
                            @NotNull LinkedHashMap<UUID,​byte[]> entries)
                     throws IOException
        Finds all the segments included in the archive.
        Parameters:
        archiveName - archive to recover
        entries - results will be put there, in the order of presence in the archive
        Throws:
        IOException
      • backup

        void backup​(@NotNull
                    @NotNull String archiveName,
                    @NotNull
                    @NotNull String backupArchiveName,
                    @NotNull
                    @NotNull Set<UUID> recoveredEntries)
             throws IOException
        Method that is doing a backup of the archive given with archiveName into backupArchiveName. In addition, set of UUIDs of recovered segments is provided which can be inspected during backup. Method is invoked during archive recovery procedure and concrete implementation can decide whether original archive should be deleted or modified.
        Parameters:
        archiveName -
        backupArchiveName -
        recoveredEntries -
        Throws:
        IOException