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