[ https://issues.apache.org/jira/browse/HADOOP-1187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12485679
]
dhruba borthakur commented on HADOOP-1187:
------------------------------------------
It could help. But if we store it in the pendingCreates, then we avoid this lookup completely.
> DFS Scalability: avoid scanning entire list of datanodes in getAdditionalBlocks
> -------------------------------------------------------------------------------
>
> Key: HADOOP-1187
> URL: https://issues.apache.org/jira/browse/HADOOP-1187
> Project: Hadoop
> Issue Type: Bug
> Components: dfs
> Reporter: dhruba borthakur
> Assigned To: dhruba borthakur
>
> A new block allocations for a file scans the list of all known datanodes to find if the
client that is a also a cluster node. If so, then it tries to allocate a replica locally.
This check consumes plenty of CPU, especially if the number of datanodes in a cluster is large.
> An optimization: if the client is also a cluster node, then cache a reference to the
corresponding DatanodeDescriptor from the entry in pendingCreate. The method getAdditionalBlock()
uses the cached DatanodeDescriptor and thus avoids scanning the entire list of datanodes.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|