[
https://issues.apache.org/jira/browse/YARN-1574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13866111#comment-13866111
]
Karthik Kambatla commented on YARN-1574:
----------------------------------------
Approach looks reasonable. Comments:
# It is probably better to cast to Service instead of AbstractService.
{code}
+ rmDispatcher = setupDispatcher();
+ rmContext.setDispatcher(rmDispatcher);
+ ((AbstractService)rmDispatcher).init(this.conf);
+ ((AbstractService)rmDispatcher).start();
{code}
# In the above snippet, I would update rmDispatcher and
rmContext.setDispatcher() after the init and start are called. That way there
won't be a window where the dispatcher is not started and hence can't handle
events.
# Can we also make sure that callers of rmContext.getDispatcher() are not
caching the dispatcher? Even though, most callers are currently in
RMActiveServices and not Always-On, we should make sure they don't cache. We
should probably update rmContext.getDispatcher() documentation also to reflect
that?
> When RM transit from Active to Standby, the same eventDispatcher should not
> be registered more than once
> --------------------------------------------------------------------------------------------------------
>
> Key: YARN-1574
> URL: https://issues.apache.org/jira/browse/YARN-1574
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Xuan Gong
> Assignee: Xuan Gong
> Priority: Blocker
> Attachments: YARN-1574.1.patch, YARN-1574.1.patch
>
>
> Currently, we move rmDispatcher out of ActiveService. But we still register
> the Event dispatcher, such as schedulerDispatcher, RMAppEventDispatcher when
> we initiate the ActiveService.
> Almost every time when we transit RM from Active to Standby, we need to
> initiate the ActiveService. That means we will register the same event
> Dispatcher which will cause the same event will be handled several times.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)