[
https://issues.apache.org/jira/browse/PARQUET-1320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gabor Szadovszky resolved PARQUET-1320.
---------------------------------------
Resolution: Duplicate
> Fast clean unused direct memory when decompress
> -----------------------------------------------
>
> Key: PARQUET-1320
> URL: https://issues.apache.org/jira/browse/PARQUET-1320
> Project: Parquet
> Issue Type: Improvement
> Components: parquet-mr
> Reporter: zhoukang
> Priority: Major
> Labels: pull-request-available
>
> When use *NonBlockedDecompressorStream* which call:
> *SnappyDecompressor.setInput*
> {code:java}
> public synchronized void setInput(byte[] buffer, int off, int len) {
> SnappyUtil
> public synchronized void setInput(byte[] buffer, int off, int len) {
> SnappyUtil.validateBuffer(buffer, off, len);
> if (inputBuffer.capacity() - inputBuffer.position() < len) {
> ByteBuffer newBuffer = ByteBuffer.allocateDirect(inputBuffer.position() +
> len);
> inputBuffer.rewind();
> newBuffer.put(inputBuffer);
> inputBuffer = newBuffer;
> } else {
> inputBuffer.limit(inputBuffer.position() + len);
> }
> inputBuffer.put(buffer, off, len);
> }
> .validateBuffer(buffer, off, len);
> if (inputBuffer.capacity() - inputBuffer.position() < len) {
> ByteBuffer newBuffer = ByteBuffer.allocateDirect(inputBuffer.position() +
> len);
> inputBuffer.rewind();
> newBuffer.put(inputBuffer);
> inputBuffer = newBuffer;
> } else {
> inputBuffer.limit(inputBuffer.position() + len);
> }
> inputBuffer.put(buffer, off, len);
> }
> {code}
> If we do not get any full gc for old gen.we may failed by off-heap memory leak
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)