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.

Reply via email to