----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/41774/ -----------------------------------------------------------
(Updated Dec. 31, 2015, 5:47 p.m.) Review request for Ambari, Alejandro Fernandez, Dmytro Grinenko, Jonathan Hurley, Jayush Luniya, Nate Cole, and Yusaku Sako. Changes ------- Updated javadoc Bugs: AMBARI-14520 https://issues.apache.org/jira/browse/AMBARI-14520 Repository: ambari Description ------- On 900 host cluster the call to install packages took like 3 minutes 20 seconds which is kind of long. {noformat} POST http://perf-a-1:8080/api/v1/clusters/c1/stack_versions {"ClusterStackVersions":{"stack":"HDP","version":"2.2","repository_version":"2.2.9.0-3393"}}: {noformat} Diffs (updated) ----- ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariActionExecutionHelper.java 6e7e06b ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java b6ac291 ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java 43a4423 ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 3358e8c ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java c56d7ce Diff: https://reviews.apache.org/r/41774/diff/ Testing ------- mvn clean test Current request execution time: 0m22.678s With current patch, most time (about 40%) is consumed by findConfigurationTagsWithOverrides(cluster, hostname), but it seems to be inevitable even with batching addExecutionCommandsToStage() calls into a single invocation. I've tried inserting logging statements to verify that number of invocations equals to number of hosts. Rest of time is mostly consumed by org.apache.ambari.server.actionmanager.Stage.addHostRoleExecutionCommand() (20% of time) and by N invocations of ClustersImpl.getHostsForCluster() (19% of time). The latter calls can not be cached in method, so I can only rewrite method signature AmbariActionExecutionHelper.addExecutionCommandsToStage(ActionExecutionContext, Stage) and cache it in ClusterStackVersionResourceProvider. Seems to be a bad deal considering 1-3 seconds (on large clusters ) of performance boost for a rare call vs readability/maintainability of code. Thanks, Dmitro Lisnichenko