[ 
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

Reply via email to