Remus Rusanu created HIVE-16757:
-----------------------------------
Summary: Use memoization in HiveRelMdRowCount.getRowCount
Key: HIVE-16757
URL: https://issues.apache.org/jira/browse/HIVE-16757
Project: Hive
Issue Type: Bug
Components: Query Planning
Reporter: Remus Rusanu
Assignee: Remus Rusanu
On complex queries HiveRelMdRowCount.getRowCount can get called many times.
since it does not memoize its result and the call is recursive, it results in
an explosion of calls. for example a query with 49 joins, during join ordering
(LoptOtimizerJoinRule) the HiveRelMdRowCount.getRowCount gets called 6442 as a
top level call, but the recursivity exploded this to 501729 calls. Memoization
of the rezult would stop the recursion early. In my testing this reduced the
join reordering time for said query from 11s to <1s..
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)