You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2015/08/25 08:11:45 UTC

[jira] [Created] (HIVE-11638) ExprNodeDesc hashMap accidentally degrades into O(N) instead of O(1)

Gopal V created HIVE-11638:
------------------------------

             Summary: ExprNodeDesc hashMap accidentally degrades into O(N) instead of O(1)
                 Key: HIVE-11638
                 URL: https://issues.apache.org/jira/browse/HIVE-11638
             Project: Hive
          Issue Type: Bug
          Components: Logical Optimizer
    Affects Versions: 1.2.1, 1.1.1, 1.0.1, 0.14.0, 1.3.0, 2.0.0
            Reporter: Gopal V
            Assignee: Gopal V


Due to the absence of ExprNodeDesc::equals() & the presence of a hashCode(), any code which computes a Set or HashMap of identical objects ends up with a skewed hashmap which degrades column lookups from O(1) to O(N) during optimizer passes.

So, several hundred references to a single column desc will be stored in a single hashbucket, but since they default to Object::equals(), they are not equal to each other.

Finalize the equals() method, so that the approach from HIVE-10215 carries over safely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)