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

Arpit Agarwal commented on HDFS-7647:
-------------------------------------

Thanks for reporting this [~milandesai] and listing potential solutions. A 
third solution is sorting the three arrays simultaneously via an index array.

Your suggested solution of modifying LocatedBlock sounds best to me. The code 
change should be limited if the public interface of LocatedBlock is preserved. 
We don't need to change the wire message {{LocatedBlockProto}} either. Do you 
want to take a crack at it? If not, feel free to assign it to me.

> DatanodeManager.sortLocatedBlocks() sorts DatanodeIDs 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
>
> DatanodeManager.sortLocatedBlocks() sorts the array of DatanodeIDs inside 
> each LocatedBlock, but does not touch the array of StorageIDs and 
> StorageTypes. As a result, the DatanodeIDs and StorageIDs/StorageTypes are 
> mismatched. The method is called by FSNamesystem.getBlockLocations(), so the 
> client will not know which StorageID/Type corresponds to which DatanodeID.



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

Reply via email to