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.