[
https://issues.apache.org/jira/browse/YARN-1879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14161499#comment-14161499
]
Tsuyoshi OZAWA commented on YARN-1879:
--------------------------------------
Thanks for your comments, Jian and Karthik.
{quote}
from RM’s perspective, these are just new requests, as the new RM doesn’t have
any cache for previous requests from client.
{quote}
I confirmed that it's true. Not only {{finishApplicationMaster}} but also
{{registerApplicationMaster}} don't touch the data in ZK directly, so RM can
handle retried requests transparently following cases:
1. When EmbeddedElector choose different RM as a leader before and after the
failover, ZK doesn't have the data of RMAttempt/RMApp. Then, RM recognizes a
retried-request as a new request. e.g. there is active-RM(RM1) and
standby-RM(RM2) and RM's leader failovers from RM1 to RM2.
2. Still when EmbeddedElector choose same RM as a leader before and after the
failover, RM goes into standby state and RM stop all services before failover
and it reload the data of RMAppAttempt/RMApp. In this case, RM recognizes a
retried-request as a new request. e.g. there is active-RM(RM1) and
standby-RM(RM2) and RM's leader failovers from RM1 to RM1.
I think it has no problem to mark these methods as Idempotent.
> Mark Idempotent/AtMostOnce annotations to ApplicationMasterProtocol for RM
> fail over
> ------------------------------------------------------------------------------------
>
> Key: YARN-1879
> URL: https://issues.apache.org/jira/browse/YARN-1879
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: resourcemanager
> Reporter: Jian He
> Assignee: Tsuyoshi OZAWA
> Priority: Critical
> Attachments: YARN-1879.1.patch, YARN-1879.1.patch,
> YARN-1879.11.patch, YARN-1879.12.patch, YARN-1879.13.patch,
> YARN-1879.14.patch, YARN-1879.15.patch, YARN-1879.16.patch,
> YARN-1879.17.patch, YARN-1879.18.patch, YARN-1879.19.patch,
> YARN-1879.2-wip.patch, YARN-1879.2.patch, YARN-1879.20.patch,
> YARN-1879.21.patch, YARN-1879.22.patch, YARN-1879.3.patch, YARN-1879.4.patch,
> YARN-1879.5.patch, YARN-1879.6.patch, YARN-1879.7.patch, YARN-1879.8.patch,
> YARN-1879.9.patch
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)