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

Bikas Saha commented on YARN-1098:
----------------------------------

bq. While this is definitely an improvement over my earlier patch using 
anonymous classes, the RM services(AdminService, ClientRMService etc.) will be 
fields in the ResourceManager and not ActiveServices. Are we okay with this 
not-entirely-idle approach?
I think its a compromise that lets us go down the path of RM failover without 
getting bogged down in cleaning the ResourceManager service relationships. 
Basically, ActiveServices being an inner class allows its to access all 
ResourceManager fields. And the ResourceManager is transferring ownership of 
all these members to ActiveServices. Currently all of them are being owned by 
ActiveService. When a service becomes AlwaysOn then its ownership moves to the 
ResourceManager. However they all still need to be members of the 
ResourceManager so that they can easily reference each other like they 
currently do. Improving their references and cleaning that up can be tracked 
via the other refactor umbrella jira that we have opened.

This route will hopefully lets us achieve our goals with minimal 
destabilization of the code flow. And we can see how to evolve the code from 
thereafter. I am not writing the code, so most of this is from code 
observation. You and I might change our minds in the next iteration. So please 
dont hold me to it :)

bq. I did not understand why setRMStateStore method needed to be changed in the 
first place?
If we go down the above route then we will probably not need any method 
signature changes.

                
> Separate out RM services into "Always On" and "Active"
> ------------------------------------------------------
>
>                 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-1.patch, yarn-1098-2.patch, 
> 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

Reply via email to