[ 
https://issues.apache.org/jira/browse/HBASE-5387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Phabricator updated HBASE-5387:
-------------------------------

    Attachment: D1719.3.patch

mbautin updated the revision "[jira] [HBASE-5387] Reuse compression streams in 
HFileBlock.Writer".
Reviewers: tedyu, Liyin, dhruba, JIRA

  Breaking compression stream creation methods into multiple parts. Avoiding 
using "finish-on-flush" stream in a couple of places, and deprecating the 
currently used method that is always called with downstream buffer size of 0, 
at least within HBase code. The method is still there for backwards 
compatibility. Also, getting rid of hard-coded buffer size by delegating the 
native compressor case to superclass in ReusableStreamGzipCodec.

REVISION DETAIL
  https://reviews.facebook.net/D1719

AFFECTED FILES
  src/main/java/org/apache/hadoop/hbase/io/hfile/Compression.java
  src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java
  src/main/java/org/apache/hadoop/hbase/io/hfile/HFileWriterV1.java
  src/main/java/org/apache/hadoop/hbase/io/hfile/ReusableStreamGzipCodec.java
  src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java
  src/test/java/org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.java

                
> Reuse compression streams in HFileBlock.Writer
> ----------------------------------------------
>
>                 Key: HBASE-5387
>                 URL: https://issues.apache.org/jira/browse/HBASE-5387
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.0
>            Reporter: Mikhail Bautin
>            Assignee: Mikhail Bautin
>            Priority: Critical
>             Fix For: 0.94.0
>
>         Attachments: D1719.1.patch, D1719.2.patch, D1719.3.patch, 
> Fix-deflater-leak-2012-02-10_18_48_45.patch, 
> Fix-deflater-leak-2012-02-11_17_13_10.patch
>
>
> We need to to reuse compression streams in HFileBlock.Writer instead of 
> allocating them every time. The motivation is that when using Java's built-in 
> implementation of Gzip, we allocate a new GZIPOutputStream object and an 
> associated native data structure every time we create a compression stream. 
> The native data structure is only deallocated in the finalizer. This is one 
> suspected cause of recent TestHFileBlock failures on Hadoop QA: 
> https://builds.apache.org/job/HBase-TRUNK/2658/testReport/org.apache.hadoop.hbase.io.hfile/TestHFileBlock/testPreviousOffset_1_/.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to