[
https://issues.apache.org/jira/browse/HDFS-5020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13716237#comment-13716237
]
Jing Zhao commented on HDFS-5020:
---------------------------------
Thanks for the comments Vinay!
bq. Datanode will report to both namenodes independently in BPServiceActor
right..? not through HA configured client. DatanodeProtocol is meant to report
to each namenode separately.
Yes. So here the RetryProxy may still retry a blockReceivedAndDeleted request
because of some network issues. In that case, we will still need to either
convert blockReceivedAndDeleted to idempotent or add a retry cache mechanism
for it. Otherwise the retry request may cause a wrong pending replication
number.
> Make DatanodeProtocol#blockReceivedAndDeleted idempotent
> --------------------------------------------------------
>
> Key: HDFS-5020
> URL: https://issues.apache.org/jira/browse/HDFS-5020
> Project: Hadoop HDFS
> Issue Type: Improvement
> Affects Versions: 3.0.0
> Reporter: Jing Zhao
> Assignee: Jing Zhao
> Attachments: HDFS-5020.001.patch, HDFS-5020.002.patch
>
>
> Currently DatanodeProtocol#blockReceivedAndDeleted is not idempotent because
> pending replication maps in NN only tracks the number of the pending
> replicas, and a retry request about a received block can cause the pending
> number decreased more than once. We can make blockReceivedAndDeleted
> idempotent by tracking corresponding datanodes in the pending replication
> map.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira