Gopal V created HIVE-10163:
------------------------------

             Summary: CommonMergeJoinOperator calls WritableComparator.get() in 
the inner loop
                 Key: HIVE-10163
                 URL: https://issues.apache.org/jira/browse/HIVE-10163
             Project: Hive
          Issue Type: Bug
          Components: Query Processor
    Affects Versions: 1.2.0
            Reporter: Gopal V


The CommonMergeJoinOperator wastes CPU looking up the correct comparator for 
each WritableComparable in each row.

{code}
@SuppressWarnings("rawtypes")
  private int compareKeys(List<Object> k1, List<Object> k2) {
    int ret = 0;
....   
      ret = WritableComparator.get(key_1.getClass()).compare(key_1, key_2);
      if (ret != 0) {
        return ret;
      }
    }
{code}

The slow part of that get() is deep within {{ReflectionUtils.setConf}}, where 
it tries to use reflection to set the Comparator config for each row being 
compared.



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

Reply via email to