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)