[ 
https://issues.apache.org/jira/browse/HDFS-5346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13792788#comment-13792788
 ] 

Kihwal Lee commented on HDFS-5346:
----------------------------------

I propose removing initializeReplQueues() from checkMode(). If IBR is handled 
in safe mode. Also in checkMode(), call to needEnter() causes 
DatanodeManager#getNumLiveDataNodes() to be called. So it is being called for 
every block being added. We can modify the condition so that it is skipped if 
the dn threshold is 0. DatanodeManager#getNumLiveDataNodes() walks the TreeMap 
and recounts the live nodes.

> Replication queues should not be initialized in the middle of IBR processing.
> -----------------------------------------------------------------------------
>
>                 Key: HDFS-5346
>                 URL: https://issues.apache.org/jira/browse/HDFS-5346
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode, performance
>    Affects Versions: 0.23.9, 2.3.0
>            Reporter: Kihwal Lee
>             Fix For: 2.3.0, 0.23.10
>
>
> When initial block reports are being processed, checkMode() is called from 
> incrementSafeBlockCount(). This causes the replication queues to be 
> initialized in the middle of processing a block report in the IBR processing 
> mode. If there are many block reports waiting to be processed, 
> SafeModeMonitor won't be able to make name node leave the safe mode soon. It 
> appears that the block report processing speed degrades considerably during 
> this time. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to