Rohith Sharma K S created YARN-4755:
---------------------------------------

             Summary: Optimize sending appACLsUpdated event to TimelineServer 
while recovering completed applications
                 Key: YARN-4755
                 URL: https://issues.apache.org/jira/browse/YARN-4755
             Project: Hadoop YARN
          Issue Type: Improvement
            Reporter: Rohith Sharma K S


In method {{RMAppManager#createAndPopulateNewRMApp}}, appACLsUpdated is sent to 
timelineserver for every application that get created. 
{code}
 private RMAppImpl createAndPopulateNewRMApp(
      ApplicationSubmissionContext submissionContext, long submitTime,
      String user, boolean isRecovery) throws YarnException {
                //
                //
    String appViewACLs = submissionContext.getAMContainerSpec()
        .getApplicationACLs().get(ApplicationAccessType.VIEW_APP);
    rmContext.getSystemMetricsPublisher().appACLsUpdated(
        application, appViewACLs, System.currentTimeMillis());
    return application;
  }
{code}

Say if we have 10K completed applications to recover, 30K events will be 
generated i.e app_created, app_finished and app_acl_updated. For completed 
applications, I think need not to send app-acl-updated event with which 
gradually reduce load on the dispatcher. 

Eventhough MultiDispatcher is used to publish timeline events, it is bottle 
neck when max-completed is configured very high value may be 100K.





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

Reply via email to