You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/11/25 10:55:58 UTC
[jira] [Commented] (HIVE-13232) Aggressively drop compression
buffers in ORC OutStreams
[ https://issues.apache.org/jira/browse/HIVE-13232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15695575#comment-15695575 ]
ASF GitHub Bot commented on HIVE-13232:
---------------------------------------
GitHub user melode11 opened a pull request:
https://github.com/apache/hive/pull/118
fix stripe size smaller than expected
I saw there's a Jira item: https://issues.apache.org/jira/browse/HIVE-13232 moved the compressed = null out of if block. But that is not seem to be a complete fix. To calculate the right value, we cannot use all bytes that a reserved, but should use bytes are filled. Thus I change the capacity() to position().
```java
public void flush() throws IOException {
spill();
if (compressed != null && compressed.position() != 0) {
compressed.flip();
receiver.output(compressed);
//Should move compress = null out of if block, (already been moved out in 2.1.0 code)
//otherwise its capacity will count for all following stripes even it is not used by them.
compressed = null;
}
uncompressedBytes = 0;
compressedBytes = 0;
overflow = null;
current = null;
}
```
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/melode11/hive master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/hive/pull/118.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #118
----
commit 5490d08733166c4a1ea5f6a50a3e74897bdbd011
Author: Yuxing Yao <yu...@microsoft.com>
Date: 2016-11-25T10:33:11Z
fix stripe size smaller than expected
----
> Aggressively drop compression buffers in ORC OutStreams
> -------------------------------------------------------
>
> Key: HIVE-13232
> URL: https://issues.apache.org/jira/browse/HIVE-13232
> Project: Hive
> Issue Type: Bug
> Components: ORC
> Reporter: Owen O'Malley
> Assignee: Owen O'Malley
> Fix For: 1.3.0, 2.1.0, 2.0.1
>
> Attachments: HIVE-13232-branch-1.patch, HIVE-13232.patch, HIVE-13232.patch, HIVE-13232.patch
>
>
> In Hive 0.11, when ORC's OutStream's were flushed they dropped all of the their buffers. In the patch for HIVE-4324, we inadvertently changed that behavior so that one of the buffers is held on to. For queries with a lot of writers and thus under significant memory pressure this can have a significant impact on the memory usage.
> Note that "hive.optimize.sort.dynamic.partition" avoids this problem by sorting on the dynamic partition key and thus only a single ORC writer is open at once. This will use memory more effectively and avoid creating ORC files with very small stripes, which will produce better downstream performance.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)