anchor.diff:  To enable data block encoding for a ColumnFamily, see <<data.block.encoding.enable,data.block.encoding.enable>>.
   
   .Block Compressors
  -* none
  -* Snappy
  +* NONE
  ++
  +This compression type constant selects no compression, and is the default.
  +* BROTLI
  ++
  +https://en.wikipedia.org/wiki/Brotli[Brotli] is a generic-purpose lossless compression algorithm
  +that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman
  +coding, and 2nd order context modeling, with a compression ratio comparable to the best currently
  +available general-purpose compression methods. It is similar in speed with GZ but offers more
  +dense compression.
  +* BZIP2
  ++
  +https://en.wikipedia.org/wiki/Bzip2[Bzip2] compresses files using the Burrows-Wheeler block
  +sorting text compression algorithm and Huffman coding. Compression is generally considerably
  +better than that achieved by the dictionary- (LZ-) based compressors, but both compression and
  +decompression can be slow in comparison to other options.
  +* GZ
  ++
  +gzip is based on the https://en.wikipedia.org/wiki/Deflate[DEFLATE] algorithm, which is a
  +combination of LZ77 and Huffman coding. It is universally available in the Java Runtime
  +Environment so is a good lowest common denominator option. However in comparison to more modern
  +algorithms like Zstandard it is quite slow.
  +* LZ4
  ++
  +https://en.wikipedia.org/wiki/LZ4_(compression_algorithm)[LZ4] is a lossless data compression
  +algorithm that is focused on compression and decompression speed. It belongs to the LZ77 family
  +of compression algorithms, like Brotli, DEFLATE, Zstandard, and others. In our microbenchmarks
  +LZ4 is the fastest option for both compression and decompression in that family, and is our
  +universally recommended option.
  +* LZMA
  ++
  +https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm[LZMA] is a
  +dictionary compression scheme somewhat similar to the LZ77 algorithm that achieves very high
  +compression ratios with a computationally expensive predictive model and variable size
  +compression dictionary, while still maintaining decompression speed similar to other commonly used
  +compression algorithms. LZMA is superior to all other options in general compression ratio but as
  +a compressor it can be extremely slow, especially when configured to operate at higher levels of
  +compression.
   * LZO
  -* LZ4
  -* GZ
  ++
  +https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Oberhumer[LZO] is another LZ-variant
  +data compression algorithm, with an implementation focused on decompression speed. It is almost
  +but not quite as fast as LZ4.
  +* SNAPPY
  ++
  +https://en.wikipedia.org/wiki/Snappy_(compression)[Snappy] is based on ideas from LZ77 but is
  +optimized for very high compression speed, achieving only a "reasonable" compression in trade.
  +It is as fast as LZ4 but does not compress quite as well. We offer a pure Java Snappy codec
  +that can be used instead of GZ as the universally available option for any Java runtime on any
  +hardware architecture.
  +* ZSTD
  ++
  +https://en.wikipedia.org/wiki/Zstd[Zstandard] combines a dictionary-matching stage (LZ77) with
  +a large search window and a fast entropy coding stage, using both Finite State Entropy and
  +Huffman coding. Compression speed can vary by a factor of 20 or more between the fastest and
  +slowest levels, while decompression is uniformly fast, varying by less than 20% between the
  +fastest and slowest levels.
  ++
  +ZStandard is the most flexible of the available compression codec options, offering a compression
  +ratio similar to LZ4 at level 1 (but with slightly less performance), compression ratios
  +comparable to DEFLATE at mid levels (but with better performance), and LZMA-alike dense
  +compression (and LZMA-alike compression speeds) at high levels; while providing universally fast
  +decompression.
   
   .Data Block Encoding Types
   Prefix::
  
positive.code: See <<brand.new.compressor,brand.new.compressor>>).
  
  [[lzo.compression]]
  .Install LZO Support
  
  HBase cannot ship with LZO because of incompatibility between HBase, which uses an Apache Software License (ASL) and LZO, which uses a GPL license.
  See the link:https://github.com/twitter/hadoop-lzo/blob/master/README.md[Hadoop-LZO at Twitter] for information on configuring LZO support for HBase.
  
  If you depend upon LZO compression, consider configuring your RegionServers to fail to start if LZO is not available.
  See <<hbase.regionserver.codecs,hbase.regionserver.codecs>>.
  
  [[lz4.compression]]
  .Configure LZ4 Support
  
  LZ4 support is bundled with Hadoop.
  Make sure the hadoop shared library (libhadoop.so) is accessible when you start HBase.
  After configuring your platform (see <<hadoop.native.lib,hadoop.native.lib>>), you can make a symbolic link from HBase to the native Hadoop libraries.
  This assumes the two software installs are colocated.
  For example, if my 'platform' is Linux-amd64-64:
  [source,bourne]
  ----
  $ cd $HBASE_HOME
  
negative.code: .Changes Take Effect Upon Compaction
  If you change compression or encoding for a ColumnFamily, the changes take effect during compaction.
  
  Some codecs take advantage of capabilities built into Java, such as GZip compression.
  Others rely on native libraries. Native libraries may be available via codec dependencies installed into
  HBase's library directory, or, if you are utilizing Hadoop codecs, as part of Hadoop. Hadoop codecs
  typically have a native code component so follow instructions for installing Hadoop native binary
  support at <<hadoop.native.lib>>.
  
  This section discusses common codecs that are used and tested with HBase.
  
  No matter what codec you use, be sure to test that it is installed correctly and is available on all nodes in your cluster.
  Extra operational steps may be necessary to be sure that codecs are available on newly-deployed nodes.
  You can use the <<compression.test,compression.test>> utility to check that a given codec is correctly installed.
  