[
https://issues.apache.org/jira/browse/HIVE-8975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Prasanth Jayachandran updated HIVE-8975:
----------------------------------------
Attachment: HIVE-8975.3.patch
Updated golden files for test failures.
> Possible performance regression on bucket_map_join_tez2.q
> ---------------------------------------------------------
>
> Key: HIVE-8975
> URL: https://issues.apache.org/jira/browse/HIVE-8975
> Project: Hive
> Issue Type: Bug
> Components: Logical Optimizer, Statistics
> Affects Versions: 0.15.0
> Reporter: Jesus Camacho Rodriguez
> Assignee: Prasanth Jayachandran
> Attachments: HIVE-8975.1.patch, HIVE-8975.2.patch, HIVE-8975.3.patch
>
>
> After introducing the identity project removal optimization in HIVE-8435,
> plan in bucket_map_join_tez2.q that runs on Tez changed to be sub-optimal. In
> particular, earlier it was doing a map-join and after HIVE-8435 it changed to
> a reduce-join.
> The query is the following one:
> {noformat}
> select a.key, b.key from (select distinct key from tab) a join tab b on b.key
> = a.key
> {noformat}
> The plan before removing the projections is:
> {noformat}
> TS[0]-FIL[16]-SEL[1]-GBY[2]-RS[3]-GBY[4]-SEL[5]-RS[8]-JOIN[11]-SEL[12]-FS[13]
> TS[6]-FIL[17]-RS[10]-JOIN[11]
> {noformat}
> And after removing identity projections:
> {noformat}
> TS[0]-FIL[16]-GBY[2]-RS[3]-GBY[4]-RS[8]-JOIN[11]-SEL[12]-FS[13]
> TS[6]-FIL[17]-RS[10]-JOIN[11]
> {noformat}
> After digging a bit, I realized it is not converting the reduce-join into a
> map-join because stats for GBY\[4\] change if SEL\[5\] is removed; thus the
> optimization does not kick in.
> The reason for the stats change in the GroupBy operator is in [this
> line|https://github.com/apache/hive/blob/6f4365e8a21e7b480bf595d079a71303a50bf1b2/ql/src/java/org/apache/hadoop/hive/ql/optimizer/stats/annotation/StatsRulesProcFactory.java#L633],
> where it is checked whether the GBY is immediately followed by a RS operator
> or not, and calculate stats differently depending on it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)