hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-10206) Datanodes not sorted properly by distance when the reader isn't a datanode
Date Wed, 07 Dec 2016 16:42:59 GMT

    [ https://issues.apache.org/jira/browse/HDFS-10206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15729207#comment-15729207
] 

Hudson commented on HDFS-10206:
-------------------------------

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #10959 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/10959/])
HDFS-10206. Datanodes not sorted properly by distance when the reader (mingma: rev c73e08a6dad46cad14b38a4a586a5cda1622b206)
* (edit) hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java
* (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java
* (edit) hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java


> Datanodes not sorted properly by distance when the reader isn't a datanode
> --------------------------------------------------------------------------
>
>                 Key: HDFS-10206
>                 URL: https://issues.apache.org/jira/browse/HDFS-10206
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Ming Ma
>            Assignee: Nandakumar
>             Fix For: 2.9.0
>
>         Attachments: HDFS-10206-branch-2.8.003.patch, HDFS-10206.000.patch, HDFS-10206.001.patch,
HDFS-10206.002.patch, HDFS-10206.003.patch
>
>
> If the DFSClient machine is not a datanode, but it shares its rack with some datanodes
of the HDFS block requested, {{DatanodeManager#sortLocatedBlocks}} might not put the local-rack
datanodes at the beginning of the sorted list. That is because the function didn't call {{networktopology.add(client);}}
to properly set the node's parent node; something required by {{networktopology.sortByDistance}}
to compute distance between two nodes in the same topology tree.
> Another issue with {{networktopology.sortByDistance}} is it only distinguishes local
rack from remote rack, but it doesn't support general distance calculation to tell how remote
the rack is.
> {noformat}
> NetworkTopology.java
>   protected int getWeight(Node reader, Node node) {
>     // 0 is local, 1 is same rack, 2 is off rack
>     // Start off by initializing to off rack
>     int weight = 2;
>     if (reader != null) {
>       if (reader.equals(node)) {
>         weight = 0;
>       } else if (isOnSameRack(reader, node)) {
>         weight = 1;
>       }
>     }
>     return weight;
>   }
> {noformat}
> HDFS-10203 has suggested moving the sorting from namenode to DFSClient to address another
issue. Regardless of where we do the sorting, we still need fix the issues outline here.
> Note that BlockPlacementPolicyDefault shares the same NetworkTopology object used by
DatanodeManager and requires Nodes stored in the topology to be {{DatanodeDescriptor}} for
block placement. So we need to make sure we don't pollute the  NetworkTopology if we plan
to fix it on the server side.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org


Mime
View raw message