• Michael Niewöhner's avatar
    Add zstd support to zfs · 10b3c7f5
    Michael Niewöhner authored
    This PR adds two new compression types, based on ZStandard:
    
    - zstd: A basic ZStandard compression algorithm Available compression.
      Levels for zstd are zstd-1 through zstd-19, where the compression
      increases with every level, but speed decreases.
    
    - zstd-fast: A faster version of the ZStandard compression algorithm
      zstd-fast is basically a "negative" level of zstd. The compression
      decreases with every level, but speed increases.
    
      Available compression levels for zstd-fast:
       - zstd-fast-1 through zstd-fast-10
       - zstd-fast-20 through zstd-fast-100 (in increments of 10)
       - zstd-fast-500 and zstd-fast-1000
    
    For more information check the man page.
    
    Implementation details:
    
    Rather than treat each level of zstd as a different algorithm (as was
    done historically with gzip), the block pointer `enum zio_compress`
    value is simply zstd for all levels, including zstd-fast, since they all
    use the same decompression function.
    
    The compress= property (a 64bit unsigned integer) use...
    10b3c7f5