[ https://issues.apache.org/jira/browse/HIVE-16328?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chao Sun updated HIVE-16328: ---------------------------- Attachment: HIVE-16328.2.patch Discussed with Xuefu & Jimmy offline. I think instead of rejecting branches with RS, we can reject branches that contain either JOIN or LATERAL_VIEW, which could potentially increase output data size. We mark those as big table branches, and, if we have more than one such branch, the JOIN op cannot be turned to a MAPJOIN op. This opens up more opportunities for optimizations. Attaching patch v2 which realizes the above idea. > HoS: more aggressive mapjoin optimization when > hive.spark.use.file.size.for.mapjoin is true > ------------------------------------------------------------------------------------------- > > Key: HIVE-16328 > URL: https://issues.apache.org/jira/browse/HIVE-16328 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer > Reporter: Chao Sun > Assignee: Chao Sun > Attachments: HIVE-16328.1.patch, HIVE-16328.2.patch > > > In HIVE-15489, when {{hive.spark.use.file.size.for.mapjoin}} is set to true, > and if the JOIN op has any upstream RS operator, then we will stop converting > the JOIN op to MAPJOIN op. > However, this is overly conservative. A better solution is to treat the > branch that has upstream RS as the big table and check if all other branches > are map-only AND can fit in hash table size. -- This message was sent by Atlassian JIRA (v6.3.15#6346)