Saad Ahmad Sabri created HBASE-30321:
----------------------------------------

             Summary: Implement GzipByteBuffDecompressor with on-heap and 
off-heap decompression paths
                 Key: HBASE-30321
                 URL: https://issues.apache.org/jira/browse/HBASE-30321
             Project: HBase
          Issue Type: Improvement
            Reporter: Saad Ahmad Sabri


Add GzipByteBuffDecompressor, a ByteBuffDecompressor implementation that 
enables GZIP
decompression directly from/to ByteBuffer objects without intermediate byte 
array copies.

Two decompression paths are supported:
- Off-heap (direct ByteBuffer): delegates to Hadoop's native 
ZlibDirectDecompressor with
  GZIP_FORMAT when native zlib is loaded
- On-heap (heap ByteBuffer): falls back to Java's Inflater in raw DEFLATE 
(nowrap) mode,
  manually skipping the GZIP header and verifying the CRC32 and ISIZE trailer 
fields

Also adds GzipHFileDecompressionContext to carry per-block configuration, and
input-length validation to reject inputs too short to be a valid GZIP member.

The prior code had no ByteBuff-based GZIP decompression path, requiring byte 
array
copies for on-heap scenarios. This eliminates those copies for both direct and 
heap
buffer cases.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to