Class Lz4BlockCompressor

java.lang.Object
org.apache.flink.runtime.io.compression.Lz4BlockCompressor
All Implemented Interfaces:
BlockCompressor

public class Lz4BlockCompressor extends Object implements BlockCompressor
Encode data into LZ4 format (not compatible with the LZ4 Frame format). It reads from and writes to byte arrays provided from the outside, thus reducing copy time.

This class is copied and modified from LZ4BlockOutputStream.

  • Constructor Details

    • Lz4BlockCompressor

      public Lz4BlockCompressor()
  • Method Details

    • getMaxCompressedSize

      public int getMaxCompressedSize(int srcSize)
      Description copied from interface: BlockCompressor
      Get the max compressed size for a given original size.
      Specified by:
      getMaxCompressedSize in interface BlockCompressor
    • compress

      public int compress(ByteBuffer src, int srcOff, int srcLen, ByteBuffer dst, int dstOff) throws BufferCompressionException
      Description copied from interface: BlockCompressor
      Compress source data read from (Buffer.position() + srcOff), and write the compressed data to dst.
      Specified by:
      compress in interface BlockCompressor
      Parameters:
      src - Uncompressed data to read from
      srcOff - The start offset of uncompressed data
      srcLen - The length of data which want to be compressed
      dst - The target to write compressed data
      dstOff - The start offset to write the compressed data
      Returns:
      Length of compressed data
      Throws:
      BufferCompressionException - if exception thrown when compressing
    • compress

      public int compress(byte[] src, int srcOff, int srcLen, byte[] dst, int dstOff) throws BufferCompressionException
      Description copied from interface: BlockCompressor
      Compress data read from src, and write the compressed data to dst.
      Specified by:
      compress in interface BlockCompressor
      Parameters:
      src - Uncompressed data to read from
      srcOff - The start offset of uncompressed data
      srcLen - The length of data which want to be compressed
      dst - The target to write compressed data
      dstOff - The start offset to write the compressed data
      Returns:
      Length of compressed data
      Throws:
      BufferCompressionException - if exception thrown when compressing