Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-4755

Optimize sending appACLsUpdated event to TimelineServer while recovering completed applications

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      In method RMAppManager#createAndPopulateNewRMApp, appACLsUpdated is sent to timelineserver for every application that get created.

       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;
        }
      

      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.

      Attachments

        Activity

          People

            Naganarasimha Naganarasimha G R
            rohithsharma Rohith Sharma K S
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: