HBASE-26259 Fallback support to pure Java compression (#3691)
commit42fe5e5baa605f12546dc3b234a876ce03b6e799
authorAndrew Purtell <apurtell@apache.org>
Wed, 6 Oct 2021 20:17:18 +0000 (6 13:17 -0700)
committerGitHub <noreply@github.com>
Wed, 6 Oct 2021 20:17:18 +0000 (6 13:17 -0700)
tree1bf9bbede4105872653463a38c642d766987cb80
parentb94188ff94cc49ec266522a5548b595ac731a9e8
HBASE-26259 Fallback support to pure Java compression (#3691)

This change introduces provided compression codecs to HBase as
new Maven modules. Each module provides compression codec support
that formerly required Hadoop native codecs, which in turn relies
on native code integration, which may or may not be available on
a given hardware platform or in an operational environment. We
now provide codecs in the HBase distribution for users whom for
whatever reason cannot or do not wish to deploy the Hadoop native
codecs.

Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
66 files changed:
hbase-assembly/pom.xml
hbase-common/src/main/java/org/apache/hadoop/hbase/io/compress/Compression.java
hbase-common/src/main/java/org/apache/hadoop/hbase/io/compress/CompressionUtil.java [new file with mode: 0644]
hbase-common/src/main/java/org/apache/hadoop/hbase/util/UnsafeAccess.java
hbase-common/src/test/java/org/apache/hadoop/hbase/io/compress/CompressionTestBase.java [new file with mode: 0644]
hbase-common/src/test/java/org/apache/hadoop/hbase/util/RandomDistribution.java [moved from hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/RandomDistribution.java with 99% similarity]
hbase-compression/hbase-compression-aircompressor/pom.xml [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/main/java/org/apache/hadoop/hbase/io/compress/aircompressor/HadoopCompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/main/java/org/apache/hadoop/hbase/io/compress/aircompressor/HadoopDecompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/main/java/org/apache/hadoop/hbase/io/compress/aircompressor/Lz4Codec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/main/java/org/apache/hadoop/hbase/io/compress/aircompressor/LzoCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/main/java/org/apache/hadoop/hbase/io/compress/aircompressor/SnappyCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/main/java/org/apache/hadoop/hbase/io/compress/aircompressor/ZstdCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionLz4.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionLzo.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionSnappy.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestHFileCompressionZstd.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestLz4Codec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestLzoCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestSnappyCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionLz4.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionLzo.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionSnappy.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestWALCompressionZstd.java [new file with mode: 0644]
hbase-compression/hbase-compression-aircompressor/src/test/java/org/apache/hadoop/hbase/io/compress/aircompressor/TestZstdCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/pom.xml [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/src/main/java/org/apache/hadoop/hbase/io/compress/lz4/Lz4Codec.java [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/src/main/java/org/apache/hadoop/hbase/io/compress/lz4/Lz4Compressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/src/main/java/org/apache/hadoop/hbase/io/compress/lz4/Lz4Decompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/src/test/java/org/apache/hadoop/hbase/io/compress/lz4/TestHFileCompressionLz4.java [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/src/test/java/org/apache/hadoop/hbase/io/compress/lz4/TestLz4Codec.java [new file with mode: 0644]
hbase-compression/hbase-compression-lz4/src/test/java/org/apache/hadoop/hbase/io/compress/lz4/TestWALCompressionLz4.java [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/pom.xml [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/src/main/java/org/apache/hadoop/hbase/io/compress/xerial/SnappyCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/src/main/java/org/apache/hadoop/hbase/io/compress/xerial/SnappyCompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/src/main/java/org/apache/hadoop/hbase/io/compress/xerial/SnappyDecompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/src/test/java/org/apache/hadoop/hbase/io/compress/xerial/TestHFileCompressionSnappy.java [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/src/test/java/org/apache/hadoop/hbase/io/compress/xerial/TestSnappyCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-snappy/src/test/java/org/apache/hadoop/hbase/io/compress/xerial/TestWALCompressionSnappy.java [new file with mode: 0644]
hbase-compression/hbase-compression-xz/pom.xml [new file with mode: 0644]
hbase-compression/hbase-compression-xz/src/main/java/org/apache/hadoop/hbase/io/compress/xz/LzmaCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-xz/src/main/java/org/apache/hadoop/hbase/io/compress/xz/LzmaCompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-xz/src/main/java/org/apache/hadoop/hbase/io/compress/xz/LzmaDecompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-xz/src/test/java/org/apache/hadoop/hbase/io/compress/xz/TestHFileCompressionLzma.java [new file with mode: 0644]
hbase-compression/hbase-compression-xz/src/test/java/org/apache/hadoop/hbase/io/compress/xz/TestLzmaCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-xz/src/test/java/org/apache/hadoop/hbase/io/compress/xz/TestWALCompressionLzma.java [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/pom.xml [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/src/main/java/org/apache/hadoop/hbase/io/compress/zstd/ZstdCodec.java [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/src/main/java/org/apache/hadoop/hbase/io/compress/zstd/ZstdCompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/src/main/java/org/apache/hadoop/hbase/io/compress/zstd/ZstdDecompressor.java [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestHFileCompressionZstd.java [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestWALCompressionZstd.java [new file with mode: 0644]
hbase-compression/hbase-compression-zstd/src/test/java/org/apache/hadoop/hbase/io/compress/zstd/TestZstdCodec.java [new file with mode: 0644]
hbase-compression/pom.xml [new file with mode: 0644]
hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
hbase-resource-bundle/src/main/resources/supplemental-models.xml
hbase-server/src/test/java/org/apache/hadoop/hbase/io/compress/HFileTestBase.java [new file with mode: 0644]
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/KVGenerator.java
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/KeySampler.java
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileEncryption.java
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileSeek.java
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.java
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/CompressedWALTestBase.java [copied from hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWAL.java with 54% similarity]
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWAL.java
hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestCompressedWALValueCompression.java [new file with mode: 0644]
pom.xml