[ 
https://issues.apache.org/jira/browse/HDFS-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

dhruba borthakur updated HDFS-1295:
-----------------------------------

    Attachment: shortCircuitBlockReport_1.txt

This patch applied only to 0.20 and does two things:

1. The first block report from a datanode is directly inserted into the 
blocksMap
2. Optimize the countLiveNodes methods to be lightweight

I extended the attached unit test to gather the average time to process the 
first block report from a datanode:

||Configuration|                       without patch | with patch||
|40 nodes, 200K blocks each | 232 sec        | 80 sec |
|80 nodes, 200K blocks each|  240 sec        | 82 sec |


> Improve namenode restart times by short-circuiting the first block reports 
> from datanodes
> -----------------------------------------------------------------------------------------
>
>                 Key: HDFS-1295
>                 URL: https://issues.apache.org/jira/browse/HDFS-1295
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: name-node
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>             Fix For: 0.22.0
>
>         Attachments: shortCircuitBlockReport_1.txt
>
>
> The namenode restart is dominated by the performance of processing block 
> reports. On a 2000 node cluster with 90 million blocks,  block report 
> processing takes 30 to 40 minutes. The namenode "diffs" the contents of the 
> incoming block report with the contents of the blocks map, and then applies 
> these diffs to the blocksMap, but in reality there is no need to compute the 
> "diff" because this is the first block report from the datanode.
> This code change improves block report processing time by 300%.

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