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)

Reply via email to