[
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 <[email protected]>
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)