hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benoy Antony (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-5381) ExtendedBlock#hashCode should use both blockId and block pool ID
Date Tue, 06 May 2014 18:29:18 GMT

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

Mime
View raw message