Class SnapStream

java.lang.Object
org.apache.zookeeper.server.persistence.SnapStream

public class SnapStream extends Object
Represent the Stream used in serialize and deserialize the Snapshot.
  • Field Details

  • Constructor Details

    • SnapStream

      public SnapStream()
  • Method Details

    • getInputStream

      public static CheckedInputStream getInputStream(File file) throws IOException
      Return the CheckedInputStream based on the extension of the fileName.
      Parameters:
      file - the file the InputStream read from
      Returns:
      the specific InputStream
      Throws:
      IOException
    • getOutputStream

      public static CheckedOutputStream getOutputStream(File file, boolean fsync) throws IOException
      Return the OutputStream based on predefined stream mode.
      Parameters:
      file - the file the OutputStream writes to
      fsync - sync the file immediately after write
      Returns:
      the specific OutputStream
      Throws:
      IOException
    • sealStream

      public static void sealStream(CheckedOutputStream os, OutputArchive oa) throws IOException
      Write specific seal to the OutputArchive and close the OutputStream. Currently, only CheckedOutputStream will write it's checkSum to the end of the stream.
      Throws:
      IOException
    • isValidSnapshot

      public static boolean isValidSnapshot(File file) throws IOException
      Verifies that the file is a valid snapshot. Snapshot may be invalid if it's incomplete as in a situation when the server dies while in the process of storing a snapshot. Any files that are improperly formated or corrupted are invalid. Any file that is not a snapshot is also an invalid snapshot.
      Parameters:
      file - file to verify
      Returns:
      true if the snapshot is valid
      Throws:
      IOException
    • setStreamMode

      public static void setStreamMode(SnapStream.StreamMode mode)
    • getStreamMode

      public static SnapStream.StreamMode getStreamMode()
    • getStreamMode

      public static SnapStream.StreamMode getStreamMode(String fileName)
      Detect the stream mode from file name extension
      Parameters:
      fileName -
      Returns:
      the stream mode detected