[
https://issues.apache.org/jira/browse/HADOOP-5134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672017#action_12672017
]
dhruba borthakur commented on HADOOP-5134:
------------------------------------------
I agree that "lease recovery initiating from NN is equal to file close from a
client". Are you suggesting that the commitBlockSync will fail if the last
block has not reached the minimum replication factor? I think this would not
work too well, because restarting the lease recovery protocol would again stamp
all the valid blocks with a new gs and each datanode will again have to send
the blockReceived (with the new gs to the NN). It may so happen that the
re-tried commitBlockSync call again reaches the NN before the new blockReceived
calls. This can cause lease recovery to not end at all. Does this make sense?
> FSNamesystem#commitBlockSynchronization adds under-construction block
> locations to blocksMap
> --------------------------------------------------------------------------------------------
>
> Key: HADOOP-5134
> URL: https://issues.apache.org/jira/browse/HADOOP-5134
> Project: Hadoop Core
> Issue Type: Bug
> Components: dfs
> Affects Versions: 0.18.2
> Reporter: Hairong Kuang
> Assignee: dhruba borthakur
> Priority: Blocker
> Fix For: 0.18.4
>
>
> From my understanding of sync/append design, an under construction block
> should not have any block locations associated with it in the blocksMap. So
> an under construction block will not be managed by ReplicationMonitor.
> However, if there is an error in the write pipeline, a lease recovery will
> trigger a call, commitBlockSynchronization, to NN. This call will add the
> successfully-recovered datanodes to blocksMap. This seems to violate the
> design. It should update the targets of the last block at INode instead.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.