Class SplitSegmentArchiveManager
- java.lang.Object
-
- org.apache.jackrabbit.oak.segment.spi.persistence.split.SplitSegmentArchiveManager
-
- All Implemented Interfaces:
SegmentArchiveManager
public class SplitSegmentArchiveManager extends Object implements SegmentArchiveManager
-
-
Constructor Summary
Constructors Constructor Description SplitSegmentArchiveManager(SegmentArchiveManager roArchiveManager, SegmentArchiveManager rwArchiveManager, String lastRoArchive)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
copyFile(@NotNull String from, @NotNull String to)
Copies the archive with all the segments.@NotNull SegmentArchiveWriter
create(@NotNull String archiveName)
Creates a new archive.boolean
delete(@NotNull String archiveName)
Deletes the archive if exists.boolean
exists(@NotNull String archiveName)
Check if archive exists.@Nullable SegmentArchiveReader
forceOpen(String archiveName)
Opens an archive that wasn't closed correctly.@NotNull List<String>
listArchives()
List names of the available .tar archives.@Nullable SegmentArchiveReader
open(@NotNull String archiveName)
Opens a given archive for reading.void
recoverEntries(@NotNull String archiveName, @NotNull LinkedHashMap<UUID,byte[]> entries)
Finds all the segments included in the archive.boolean
renameTo(@NotNull String from, @NotNull String to)
Renames the archive.
-
-
-
Constructor Detail
-
SplitSegmentArchiveManager
public SplitSegmentArchiveManager(SegmentArchiveManager roArchiveManager, SegmentArchiveManager rwArchiveManager, String lastRoArchive) throws IOException
- Throws:
IOException
-
-
Method Detail
-
listArchives
@NotNull public @NotNull List<String> listArchives() throws IOException
Description copied from interface:SegmentArchiveManager
List names of the available .tar archives.- Specified by:
listArchives
in interfaceSegmentArchiveManager
- Returns:
- archive list
- Throws:
IOException
-
open
@Nullable public @Nullable SegmentArchiveReader open(@NotNull @NotNull String archiveName) throws IOException
Description copied from interface:SegmentArchiveManager
Opens a given archive for reading.- Specified by:
open
in interfaceSegmentArchiveManager
- Returns:
- the archive reader or null if the archive doesn't exist or doesn't have a valid index
- Throws:
IOException
-
forceOpen
@Nullable public @Nullable SegmentArchiveReader forceOpen(String archiveName) throws IOException
Description copied from interface:SegmentArchiveManager
Opens an archive that wasn't closed correctly.- Specified by:
forceOpen
in interfaceSegmentArchiveManager
- Returns:
- the archive reader or null if the implementation doesn't support opening an unclosed archive
- Throws:
IOException
-
create
@NotNull public @NotNull SegmentArchiveWriter create(@NotNull @NotNull String archiveName) throws IOException
Description copied from interface:SegmentArchiveManager
Creates a new archive.- Specified by:
create
in interfaceSegmentArchiveManager
- Returns:
- the archive writer
- Throws:
IOException
-
delete
public boolean delete(@NotNull @NotNull String archiveName)
Description copied from interface:SegmentArchiveManager
Deletes the archive if exists.- Specified by:
delete
in interfaceSegmentArchiveManager
- Returns:
- true if the archive was removed, false otherwise
-
renameTo
public boolean renameTo(@NotNull @NotNull String from, @NotNull @NotNull String to)
Description copied from interface:SegmentArchiveManager
Renames the archive.- Specified by:
renameTo
in interfaceSegmentArchiveManager
- Parameters:
from
- the existing archiveto
- new name- Returns:
- true if the archive was renamed, false otherwise
-
copyFile
public void copyFile(@NotNull @NotNull String from, @NotNull @NotNull String to) throws IOException
Description copied from interface:SegmentArchiveManager
Copies the archive with all the segments.- Specified by:
copyFile
in interfaceSegmentArchiveManager
- Parameters:
from
- the existing archiveto
- new name- Throws:
IOException
-
exists
public boolean exists(@NotNull @NotNull String archiveName)
Description copied from interface:SegmentArchiveManager
Check if archive exists.- Specified by:
exists
in interfaceSegmentArchiveManager
- Parameters:
archiveName
- archive to check- Returns:
- true if archive exists, false otherwise
-
recoverEntries
public void recoverEntries(@NotNull @NotNull String archiveName, @NotNull @NotNull LinkedHashMap<UUID,byte[]> entries) throws IOException
Description copied from interface:SegmentArchiveManager
Finds all the segments included in the archive.- Specified by:
recoverEntries
in interfaceSegmentArchiveManager
- Parameters:
archiveName
- archive to recoverentries
- results will be put there, in the order of presence in the archive- Throws:
IOException
-
-