[ https://issues.apache.org/jira/browse/HDFS-3672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13435363#comment-13435363 ]
Andrew Purtell commented on HDFS-3672: -------------------------------------- @Suresh, thanks for linking HBASE-6572 to HDFS-2832, I missed that issue. That's a better issue linkage. If HDFS is to support heterogeneous/tiered storage, then somehow the NNs and DNs must negotiate block placement by policy. For example, suppose the NN is doing some kind of path based mapping of files->blocks->device type. Say the default is disk. Now the user updates the policy for a subtree of the namespace to solid state. For any new file in that subtree the NN would presumably pass a hint to the DFSClient and the DFSClient would in turn pass the hint to the DNs: place block on the desired media type or fail. For any existing file in the subtree, the NN would need to migrate blocks from one storage tier to another. Presumably the DN must include in block reports the "disk location" including the media type so the NN has the necessary information to accomplish that. Simply exposing that "disk location" information via an API is the intent of this issue, right? Scratching one itch here can be leveraged as incremental development toward a larger goal? Happy to take this discussion to HDFS-2832 or offline or simply drop it if a distraction or in error. > Expose disk-location information for blocks to enable better scheduling > ----------------------------------------------------------------------- > > Key: HDFS-3672 > URL: https://issues.apache.org/jira/browse/HDFS-3672 > Project: Hadoop HDFS > Issue Type: Improvement > Affects Versions: 2.0.0-alpha > Reporter: Andrew Wang > Assignee: Andrew Wang > Attachments: design-doc-v1.pdf, design-doc-v2.pdf, hdfs-3672-1.patch, > hdfs-3672-2.patch, hdfs-3672-3.patch, hdfs-3672-4.patch, hdfs-3672-5.patch, > hdfs-3672-6.patch, hdfs-3672-7.patch, hdfs-3672-8.patch, hdfs-3672-9.patch > > > Currently, HDFS exposes on which datanodes a block resides, which allows > clients to make scheduling decisions for locality and load balancing. > Extending this to also expose on which disk on a datanode a block resides > would enable even better scheduling, on a per-disk rather than coarse > per-datanode basis. > This API would likely look similar to Filesystem#getFileBlockLocations, but > also involve a series of RPCs to the responsible datanodes to determine disk > ids. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira