hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gopal V (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (HIVE-11472) ORC StringDirectTreeReader is thrashing the GC due to byte[] allocation per row
Date Fri, 07 Aug 2015 21:22:47 GMT

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

Gopal V reassigned HIVE-11472:
------------------------------

    Assignee: Gopal V

> ORC StringDirectTreeReader is thrashing the GC due to byte[] allocation per row
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-11472
>                 URL: https://issues.apache.org/jira/browse/HIVE-11472
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 1.3.0, 2.0.0
>            Reporter: Gopal V
>            Assignee: Gopal V
>            Priority: Minor
>              Labels: Performance
>             Fix For: 1.3.0, 2.0.0
>
>
> For every row x column
> {code}
>         int len = (int) lengths.next();
>         int offset = 0;
>         byte[] bytes = new byte[len];
>         while (len > 0) {
>           int written = stream.read(bytes, offset, len);
>           if (written < 0) {
>             throw new EOFException("Can't finish byte read from " + stream);
>           }
> {code}
> https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/io/orc/TreeReaderFactory.java#L1552
> This is not a big issue until it misses the GC TLAB.
> From hadoop-2.6.x (HADOOP-10855) you can read into a Text directly. 
> Possibly can create a different TreeReader from the factory for 2.6.x & use a DataInputStream
per stream and prevent an allocation in the inner loop.
> {code}
>         int len = (int) lengths.next();
>         result.readWithKnownLength(datastream, len);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message