Andrew Kyle Purtell created HBASE-26259:
-------------------------------------------

             Summary: Fallback support to pure Java compression via 
aircompressor 
                 Key: HBASE-26259
                 URL: https://issues.apache.org/jira/browse/HBASE-26259
             Project: HBase
          Issue Type: Sub-task
            Reporter: Andrew Kyle Purtell
            Assignee: Andrew Kyle Purtell
             Fix For: 2.5.0, 3.0.0-alpha-2


Airlift’s aircompressor 
(https://search.maven.org/artifact/io.airlift/aircompressor) is an Apache 2 
licensed library, for Java 8 and up, available in Maven central, which provides 
both pure Java implementations of gzip, lz4, lzo, snappy, and zstd and Hadoop 
compression codecs for same, claiming “they are typically 300% faster than the 
JNI wrappers.” (https://github.com/airlift/aircompressor). This library is 
under active development and up to date releases because it is used by Trino.

Proposed changes:
* Modify Compression.java such that compression codec implementation classes 
can be specified by configuration. Currently they are hardcoded as strings.
* Pull in aircompressor as a ‘compile’ time dependency so it will be bundled 
into our build and made available on the server classpath.
* Modify Compression.java to fall back to an aircompressor pure Java 
implementation if schema specifies a compression algorithm, a Hadoop native 
codec was specified as desired implementation, but the requisite native support 
is somehow not available.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to