You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Vinod Kumar Vavilapalli (JIRA)" <ji...@apache.org> on 2015/09/04 00:44:47 UTC

[jira] [Updated] (YARN-3990) AsyncDispatcher may overloaded with RMAppNodeUpdateEvent when Node is connected/disconnected

     [ https://issues.apache.org/jira/browse/YARN-3990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vinod Kumar Vavilapalli updated YARN-3990:
------------------------------------------
    Fix Version/s: 2.6.1

Pulled this into 2.6.1. Ran compilation and TestNodesListManager before the push. Patch applied cleanly.

> AsyncDispatcher may overloaded with RMAppNodeUpdateEvent when Node is connected/disconnected
> --------------------------------------------------------------------------------------------
>
>                 Key: YARN-3990
>                 URL: https://issues.apache.org/jira/browse/YARN-3990
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>            Reporter: Rohith Sharma K S
>            Assignee: Bibin A Chundatt
>            Priority: Critical
>              Labels: 2.6.1-candidate
>             Fix For: 2.6.1, 2.7.2
>
>         Attachments: 0001-YARN-3990.patch, 0002-YARN-3990.patch, 0003-YARN-3990.patch
>
>
> Whenever node is added or removed, NodeListManager sends RMAppNodeUpdateEvent to all the applications that are in the rmcontext. But for finished/killed/failed applications it is not required to send these events. Additional check for wheather app is finished/killed/failed would minimizes the unnecessary events
> {code}
>   public void handle(NodesListManagerEvent event) {
>     RMNode eventNode = event.getNode();
>     switch (event.getType()) {
>     case NODE_UNUSABLE:
>       LOG.debug(eventNode + " reported unusable");
>       unusableRMNodesConcurrentSet.add(eventNode);
>       for(RMApp app: rmContext.getRMApps().values()) {
>         this.rmContext
>             .getDispatcher()
>             .getEventHandler()
>             .handle(
>                 new RMAppNodeUpdateEvent(app.getApplicationId(), eventNode,
>                     RMAppNodeUpdateType.NODE_UNUSABLE));
>       }
>       break;
>     case NODE_USABLE:
>       if (unusableRMNodesConcurrentSet.contains(eventNode)) {
>         LOG.debug(eventNode + " reported usable");
>         unusableRMNodesConcurrentSet.remove(eventNode);
>       }
>       for (RMApp app : rmContext.getRMApps().values()) {
>         this.rmContext
>             .getDispatcher()
>             .getEventHandler()
>             .handle(
>                 new RMAppNodeUpdateEvent(app.getApplicationId(), eventNode,
>                     RMAppNodeUpdateType.NODE_USABLE));
>       }
>       break;
>     default:
>       LOG.error("Ignoring invalid eventtype " + event.getType());
>     }
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)