[ https://issues.apache.org/jira/browse/HIVE-11472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14697079#comment-14697079 ]
Hive QA commented on HIVE-11472: -------------------------------- {color:green}Overall{color}: +1 all checks pass Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12750476/HIVE-11472.2.patch {color:green}SUCCESS:{color} +1 9358 tests passed Test results: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4965/testReport Console output: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4965/console Test logs: http://ec2-174-129-184-35.compute-1.amazonaws.com/logs/PreCommit-HIVE-TRUNK-Build-4965/ Messages: {noformat} Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase {noformat} This message is automatically generated. ATTACHMENT ID: 12750476 - PreCommit-HIVE-TRUNK-Build > 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 > > Attachments: HIVE-11472.1.patch, HIVE-11472.2.patch > > > 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)