[ https://issues.apache.org/jira/browse/MAPREDUCE-6473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15092868#comment-15092868 ]
Jason Lowe commented on MAPREDUCE-6473: --------------------------------------- Thanks for updating the patch, Kuhu! Why are we making a copy of the localProviderList when initializing providerList instead of just doing {{providerList = localProviderList}}? I understand why we don't want to use providerList directly when initializing the array since we don't want to expose a partially initialized array to another thread, but I don't see what the copy accomplishes when the local array list is built. Please address the checkstyle nits about the brace placement since it deviates from the coding standard. I realize it was that way before, but since we're touching the code we might as well fix it. > Job submission can take a long time during Cluster initialization > ----------------------------------------------------------------- > > Key: MAPREDUCE-6473 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6473 > Project: Hadoop Map/Reduce > Issue Type: Improvement > Components: performance > Reporter: Kuhu Shukla > Assignee: Kuhu Shukla > Attachments: 99%ile.png, MAPREDUCE-6473-PerfTest.txt, > MAPREDUCE-6473-v1.patch, MAPREDUCE-6473-v2.patch, MAPREDUCE-6473-v3.patch, > MAPREDUCE-6473-v4.patch, MAPREDUCE-6473-v5.patch, MAPREDUCE-6473-v6.patch, > avgtime.png > > > During initialization in Cluster.java, the framework provider classes are > loaded inside a sync block which can considerably increase job submission > time when the number of submissions are high. The motive is to reduce time > spent in this sync block safely to improve performance. > {noformat} > synchronized (frameworkLoader) { > for (ClientProtocolProvider provider : frameworkLoader) { > LOG.debug("Trying ClientProtocolProvider : " > + provider.getClass().getName()); > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)