hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Joseph Evans (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-4827) Increase hash quality of HashPartitioner
Date Mon, 17 Dec 2012 21:56:17 GMT

    [ https://issues.apache.org/jira/browse/MAPREDUCE-4827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13534344#comment-13534344

Robert Joseph Evans commented on MAPREDUCE-4827:

I agree fixing bad hashCode impls will probably have a bigger impact in general, and making
a simple util to help out is a great idea.  I just don't want to discount a potential performance
optimization without actually running any benchmarks.  Performance is very finicky, the impact
this type of a change can have is very complicate, and I have been wrong too many times to
guess how a change like this is really going to impact performance.  If we can show that it
has essentially no impact, good or bad, in the common case but can make some corner cases
a lot better I would prefer to make it the default impl and provide a way to get old behavior
back if needed.  However, if it actually does have a measurable negative impact then we should
leave things the way they are.  But that is just my gut feeling and without numbers showing
the impact I have a hard time really pushing either way.
> Increase hash quality of HashPartitioner
> ----------------------------------------
>                 Key: MAPREDUCE-4827
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4827
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>            Reporter: Radim Kolar
>         Attachments: betterhash1.txt, betterhash2.txt
> hash partitioner is using object.hashCode() for splitting keys into partitions. This
results in bad distributions because hashCode() quality is poor. 
> These hashCode() functions are sometimes written by hand (very poor quality) and sometimes
generated from by commons lang code (poor quality). Applying some transformation on top of
hashCode() provides better distribution.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message