[
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)