[ https://issues.apache.org/jira/browse/HIVE-4002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phabricator updated HIVE-4002: ------------------------------ Attachment: HIVE-4002.D8739.1.patch navis requested code review of "HIVE-4002 [jira] Fetch task aggregation for simple group by query". Reviewers: JIRA HIVE-4002 Fetch task aggregation for simple group by query Aggregation queries with no group-by clause (for example, select count from src) executes final aggregation in single reduce task. But it's too small even for single reducer because the most of UDAF generates just single row for map aggregation. If final fetch task can aggregate outputs from map tasks, shuffling time can be removed. This optimization transforms operator tree something like, TS-FIL-SEL-GBY1-RS-GBY2-SEL-FS + FETCH-TASK into TS-FIL-SEL-GBY1-FS + FETCH-TASK(GBY2-SEL-LS) With the patch, time taken for auto_join_filters.q test reduced to 6 min (10 min, before). TEST PLAN EMPTY REVISION DETAIL https://reviews.facebook.net/D8739 AFFECTED FILES common/src/java/org/apache/hadoop/hive/conf/HiveConf.java ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/HashTableSinkOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java ql/src/java/org/apache/hadoop/hive/ql/exec/UDTFOperator.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchAggregation.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java ql/src/test/queries/clientpositive/fetch_aggregation.q ql/src/test/results/clientpositive/fetch_aggregation.q.out ql/src/test/results/compiler/plan/groupby1.q.xml ql/src/test/results/compiler/plan/groupby2.q.xml ql/src/test/results/compiler/plan/groupby3.q.xml ql/src/test/results/compiler/plan/groupby5.q.xml serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java MANAGE HERALD RULES https://reviews.facebook.net/herald/view/differential/ WHY DID I GET THIS EMAIL? https://reviews.facebook.net/herald/transcript/21291/ To: JIRA, navis > Fetch task aggregation for simple group by query > ------------------------------------------------ > > Key: HIVE-4002 > URL: https://issues.apache.org/jira/browse/HIVE-4002 > Project: Hive > Issue Type: Improvement > Components: Query Processor > Reporter: Navis > Assignee: Navis > Priority: Minor > Attachments: HIVE-4002.D8739.1.patch > > > Aggregation queries with no group-by clause (for example, select count(*) > from src) executes final aggregation in single reduce task. But it's too > small even for single reducer because the most of UDAF generates just single > row for map aggregation. If final fetch task can aggregate outputs from map > tasks, shuffling time can be removed. > This optimization transforms operator tree something like, > TS-FIL-SEL-GBY1-RS-GBY2-SEL-FS + FETCH-TASK > into > TS-FIL-SEL-GBY1-FS + FETCH-TASK(GBY2-SEL-LS) > With the patch, time taken for auto_join_filters.q test reduced to 6 min (10 > min, before). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira