[
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