[ 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)