[
https://issues.apache.org/jira/browse/YARN-1098?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13753368#comment-13753368
]
Bikas Saha commented on YARN-1098:
----------------------------------
Overall approach looks good.
We probably need a distinction between Active services and "AlwaysOn" services.
Active services are started on transitionToActive() and stopped on
transitionToStandby(). eg. amliveliness monitor should stop in standby mode.
Without digging into the details, IMO, only the RPC services and perhaps the
dispatcher should be in "AlwaysOn" services. Distinction between stateless and
stateful services is probably not the useful in this context. YARN-1027 also
introduced a similar concept of standby services and active services.
"AlwaysOn" service run in both active and standby.
The addIfService refactoring, if needed, would probably be a different jira.
Dont see why we would require it for this change.
ResourceManager can have an internal composite service called
ActiveStateServices that is used to start and stop active services. "AlwaysOn"
services could start and stop within the ResourceManager composite service as
they currently do. They probably dont need to be differentiated.
Other than services, there are objects like RMAppManager, RMStateStore,
RMContext (that has all apps etc), ResourceScheduler, RMNMInfo etc. that need
to be started during transitionToActive() and stopped during
transitionToStandby(). We could choose to either 1) discard these objects and
hope they get GC'd or 2) explicitly add a start/stop method to them in which
they can discard their internal state and become "clean" to refresh their new
state from the state store at a later point. For some of them, it may be easier
to discard the object and for others it may be easier to call a stop() method.
> Separate out stateless services from stateful services in the RM
> ----------------------------------------------------------------
>
> Key: YARN-1098
> URL: https://issues.apache.org/jira/browse/YARN-1098
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: resourcemanager
> Affects Versions: 2.1.0-beta
> Reporter: Karthik Kambatla
> Assignee: Karthik Kambatla
> Labels: ha
> Attachments: yarn-1098-approach.patch, yarn-1098-approach.patch
>
>
> From discussion on YARN-1027, it makes sense to separate out services that
> are stateful and stateless. The stateless services can run perennially
> irrespective of whether the RM is in Active/Standby state, while the stateful
> services need to be started on transitionToActive() and completely shutdown
> on transitionToStandby().
> The external-facing stateless services should respond to the client/AM/NM
> requests depending on whether the RM is Active/Standby.
--
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