[
https://issues.apache.org/jira/browse/HDFS-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13850195#comment-13850195
]
Jing Zhao commented on HDFS-5496:
---------------------------------
Thanks Vinay! The new patch looks good to me. [~kihwal], do you also want to
take a look at the patch?
Since we already have the HDFS-5535 branch, I think we can first commit this
patch into HDFS-5535 branch. Besides, we may also want to add some unit tests
to check if we have successfully initialized the replication queue in different
scenarios (HA/non-HA, NN failover, in/not in safemode, etc)? But it's also fine
to me to add the unit test in a separate jira.
> Make replication queue initialization asynchronous
> --------------------------------------------------
>
> Key: HDFS-5496
> URL: https://issues.apache.org/jira/browse/HDFS-5496
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: namenode
> Reporter: Kihwal Lee
> Assignee: Vinay
> Attachments: HDFS-5496.patch, HDFS-5496.patch, HDFS-5496.patch,
> HDFS-5496.patch, HDFS-5496.patch
>
>
> Today, initialization of replication queues blocks safe mode exit and certain
> HA state transitions. For a big name space, this can take hundreds of seconds
> with the FSNamesystem write lock held. During this time, important requests
> (e.g. initial block reports, heartbeat, etc) are blocked.
> The effect of delaying the initialization would be not starting replication
> right away, but I think the benefit outweighs. If we make it asynchronous,
> the work per iteration should be limited, so that the lock duration is
> capped.
> If full/incremental block reports and any other requests that modifies block
> state properly performs replication checks while the blocks are scanned and
> the queues populated in background, every block will be processed. (Some may
> be done twice) The replication monitor should run even before all blocks are
> processed.
> This will allow namenode to exit safe mode and start serving immediately even
> with a big name space. It will also reduce the HA failover latency.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)