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

Bikas Saha commented on YARN-1521:
----------------------------------

How are the following idempotent? Looks like submitApplication was made 
idempotent in this patch itself? What about moveApplication? If the app has 
been moved from A->B then asking another move from A would be an error. So a 
retry after the operation should also return an error unless there is specific 
handling for the retry.
{code}
+  @Idempotent
   public SubmitApplicationResponse submitApplication(
       SubmitApplicationRequest request) 
+  @Idempotent
   public MoveApplicationAcrossQueuesResponse moveApplicationAcrossQueues(
{code}


IMO, how can we simply create an empty response and return it? Currently this 
is safe because that response object has no fields. But if a field is added 
tomorrow then this code would be wrong since users would get a response object 
from which they cannot get response information. We should be using RetryCache 
to populate the response from the actual response that was returned for the 
original request that got retried.
{code}-      throw RPCUtil.getRemoteException(message);
+      LOG.info("This is an earlier submitted application: " + applicationId);
+      return SubmitApplicationResponse.newInstance();{code}



> Mark appropriate protocol methods with the idempotent annotation or 
> AtMostOnce annotation
> -----------------------------------------------------------------------------------------
>
>                 Key: YARN-1521
>                 URL: https://issues.apache.org/jira/browse/YARN-1521
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Xuan Gong
>            Assignee: Xuan Gong
>            Priority: Blocker
>             Fix For: 2.4.0
>
>         Attachments: YARN-1521.0.patch, YARN-1521.1.patch, YARN-1521.2.patch, 
> YARN-1521.3.patch
>
>
> After YARN-1028, we add the automatically failover into RMProxy. This JIRA is 
> to identify whether we need to add idempotent annotation and which methods 
> can be marked as idempotent.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to