[
https://issues.apache.org/jira/browse/HDFS-5381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13990951#comment-13990951
]
Benoy Antony commented on HDFS-5381:
------------------------------------
This makes sense.
But should we use more standard approach as below ? (auto generated from
eclipse)
{code}
@Override // Object
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((block == null) ? 0 : block.hashCode());
result = prime * result + ((poolId == null) ? 0 : poolId.hashCode());
return result;
}
{code}
> ExtendedBlock#hashCode should use both blockId and block pool ID
> ----------------------------------------------------------------
>
> Key: HDFS-5381
> URL: https://issues.apache.org/jira/browse/HDFS-5381
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: federation
> Affects Versions: 2.3.0
> Reporter: Colin Patrick McCabe
> Assignee: Colin Patrick McCabe
> Priority: Minor
> Attachments: HDFS-5381.001.patch
>
>
> {{ExtendedBlock#hashCode}} contains both a block pool ID and a block ID. The
> {{equals}} function checks both. However, {{hashCode}} only uses block ID.
> Since HDFS-4645, block IDs are now allocated sequentially. This means that
> there will be a lot of hash collisions when federation is in use. We should
> use both block ID and block pool ID in {{hashCode}} to prevent this.
--
This message was sent by Atlassian JIRA
(v6.2#6252)