[ 
https://issues.apache.org/jira/browse/HDFS-7647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Milan Desai updated HDFS-7647:
------------------------------
    Attachment: HDFS-7647-2.patch

Attaching a patch that creates a class, DatanodeInfosWithStorage, that extends 
DatanodeInfo but contains additional fields for StorageID and StorageType. 
LocatedBlock's public interface was kept the same, and the wire protocol should 
not be affected. By extending DatanodeInfo, as opposed to creating a wrapper 
class, I am able to avoid changing any code in 
DatanodeManager.sortLocatedBlocks and NetworkTopology.sortByDistance; the only 
changes are in LocatedBlock.

> DatanodeManager.sortLocatedBlocks() sorts DatanodeInfos but not StorageIDs
> --------------------------------------------------------------------------
>
>                 Key: HDFS-7647
>                 URL: https://issues.apache.org/jira/browse/HDFS-7647
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.6.0
>            Reporter: Milan Desai
>            Assignee: Milan Desai
>         Attachments: HDFS-7647-2.patch, HDFS-7647.patch
>
>
> DatanodeManager.sortLocatedBlocks() sorts the array of DatanodeInfos inside 
> each LocatedBlock, but does not touch the array of StorageIDs and 
> StorageTypes. As a result, the DatanodeInfos and StorageIDs/StorageTypes are 
> mismatched. The method is called by FSNamesystem.getBlockLocations(), so the 
> client will not know which StorageID/Type corresponds to which DatanodeInfo.



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

Reply via email to