[ 
https://issues.apache.org/jira/browse/HIVE-16998?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16102221#comment-16102221
 ] 

Sahil Takiar commented on HIVE-16998:
-------------------------------------

Overall, the approach LGTM, just a few more comments:

* I think we should reverse the hierarchy of the configs
** If {{hive.spark.dynamic.partition.pruning.map.join.only}} is true and 
{{hive.spark.dynamic.partition.pruning}} is false, then DPP is only enabled for 
map-joins
** If {{hive.spark.dynamic.partition.pruning}} is true DPP is enabled for 
shuffle joins and map-joins, the value of 
{{hive.spark.dynamic.partition.pruning.map.join.only}} is ignored
** The advantage is that if a user wants to enable DPP just for map-joins, 
there is only one config to set; if they want to enable it for both 
shuffle-joins and map-joins, there is also only one config to set
* Can you update the javadocs for {{SparkRemoveDynamicPruning}}, it no longer 
just removes DPP based on estimated output size
* {{Stage: Stage-0 - Fetch Operator}} isn't actually a Spark job, its the 
{{FetchOperator}} that is run by HS2
* There is a line in the qfile that says {{-- checking without partition 
pruning enabled}} even though dpp is enabled

> Add config to enable HoS DPP only for map-joins
> -----------------------------------------------
>
>                 Key: HIVE-16998
>                 URL: https://issues.apache.org/jira/browse/HIVE-16998
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Logical Optimizer, Spark
>            Reporter: Sahil Takiar
>            Assignee: Janaki Lahorani
>         Attachments: HIVE16998.1.patch, HIVE16998.2.patch
>
>
> HoS DPP will split a given operator tree in two under the following 
> conditions: it has detected that the query can benefit from DPP, and the 
> filter is not a map-join (see SplitOpTreeForDPP).
> This can hurt performance if the the non-partitioned side of the join 
> involves a complex operator tree - e.g. the query {{select count(*) from 
> srcpart where srcpart.ds in (select max(srcpart.ds) from srcpart union all 
> select min(srcpart.ds) from srcpart)}} will require running the subquery 
> twice, once in each Spark job.
> Queries with map-joins don't get split into two operator trees and thus don't 
> suffer from this drawback. Thus, it would be nice to have a config key that 
> just enables DPP on HoS for map-joins.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to