This is an automated email from the ASF dual-hosted git repository. jonathanhurley pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push: new 616d197 AMBARI-25336 : Perf improvement with Collections usages over iterations (#3048) 616d197 is described below commit 616d19716a999312d6d4a47bcfc9935f4e9e6efe Author: Viraj Jasani <vjas...@salesforce.com> AuthorDate: Tue Jul 16 02:37:26 2019 +0530 AMBARI-25336 : Perf improvement with Collections usages over iterations (#3048) --- .../server/actionmanager/ActionDBAccessorImpl.java | 15 ++++----------- .../apache/ambari/server/actionmanager/Stage.java | 6 +----- .../ambari/server/stack/upgrade/UpgradePack.java | 6 +----- .../org/apache/ambari/server/state/StackInfo.java | 4 +--- .../server/state/alert/AlertDefinitionHash.java | 4 +--- .../ambari/server/state/cluster/ClusterImpl.java | 4 +--- .../apache/ambari/server/topology/Configuration.java | 10 ++-------- .../validators/ClusterConfigTypeValidatorTest.java | 20 +++++++++++++------- 8 files changed, 24 insertions(+), 45 deletions(-) diff --git a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java index 7ab721b..c5ac613 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java @@ -20,7 +20,6 @@ package org.apache.ambari.server.actionmanager; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -736,14 +735,13 @@ public class ActionDBAccessorImpl implements ActionDBAccessor { return Collections.emptyList(); } - List<HostRoleCommand> commands = new ArrayList<>(); + List<HostRoleCommand> commands; try { hrcOperationsLock.readLock().lock(); Map<Long, HostRoleCommand> cached = hostRoleCommandCache.getAllPresent(taskIds); - commands.addAll(cached.values()); + commands = new ArrayList<>(cached.values()); - List<Long> absent = new ArrayList<>(); - absent.addAll(taskIds); + List<Long> absent = new ArrayList<>(taskIds); absent.removeAll(cached.keySet()); if (!absent.isEmpty()) { @@ -753,12 +751,7 @@ public class ActionDBAccessorImpl implements ActionDBAccessor { cacheHostRoleCommand(hostRoleCommand); } } - Collections.sort(commands, new Comparator<HostRoleCommand>() { - @Override - public int compare(HostRoleCommand o1, HostRoleCommand o2) { - return (int) (o1.getTaskId()-o2.getTaskId()); - } - }); + commands.sort((o1, o2) -> (int) (o1.getTaskId() - o2.getTaskId())); } finally { hrcOperationsLock.readLock().unlock(); } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java index eab50d4f..5b8f5d6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java @@ -531,11 +531,7 @@ public class Stage { * @return list of hosts */ public synchronized List<String> getHosts() { // TODO: Check whether method should be synchronized - List<String> hlist = new ArrayList<>(); - for (String h : hostRoleCommands.keySet()) { - hlist.add(h); - } - return hlist; + return new ArrayList<>(hostRoleCommands.keySet()); } synchronized float getSuccessFactor(Role r) { diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/upgrade/UpgradePack.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/upgrade/UpgradePack.java index a47606e..92e2199 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/stack/upgrade/UpgradePack.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/upgrade/UpgradePack.java @@ -468,11 +468,7 @@ public class UpgradePack { } private List<Grouping> getDowngradeGroupsForNonrolling() { - List<Grouping> list = new ArrayList<>(); - for (Grouping g : groups) { - list.add(g); - } - return list; + return new ArrayList<>(groups); } /** diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java index 6b55e66..ec541e7 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java @@ -247,9 +247,7 @@ public class StackInfo implements Comparable<StackInfo>, Validable { Collection<ExtensionInfo> extensions = getExtensions(); extensions.add(extension); Collection<ServiceInfo> services = getServices(); - for (ServiceInfo service : extension.getServices()) { - services.add(service); - } + services.addAll(extension.getServices()); } public void removeExtension(ExtensionInfo extension) { diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/alert/AlertDefinitionHash.java b/ambari-server/src/main/java/org/apache/ambari/server/state/alert/AlertDefinitionHash.java index 27fe886..821eb8c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/alert/AlertDefinitionHash.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/alert/AlertDefinitionHash.java @@ -416,9 +416,7 @@ public class AlertDefinitionHash { if (component.getValue().isMasterComponent()) { Map<String, ServiceComponentHost> componentHosts = component.getValue().getServiceComponentHosts(); if (null != componentHosts) { - for (String componentHost : componentHosts.keySet()) { - affectedHosts.add(componentHost); - } + affectedHosts.addAll(componentHosts.keySet()); } } } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java index 09654cf..8959e6f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java @@ -1259,9 +1259,7 @@ public class ClusterImpl implements Cluster { try { List<Config> list = new ArrayList<>(); for (Entry<String, ConcurrentMap<String, Config>> entry : allConfigs.entrySet()) { - for (Config config : entry.getValue().values()) { - list.add(config); - } + list.addAll(entry.getValue().values()); } return Collections.unmodifiableList(list); } finally { diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/Configuration.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/Configuration.java index e6b1d88..254f875 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/Configuration.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/Configuration.java @@ -431,14 +431,8 @@ public class Configuration { */ public Collection<String> getAllConfigTypes() { Collection<String> allTypes = new HashSet<>(); - for (String type : getFullProperties().keySet()) { - allTypes.add(type); - } - - for (String type : getFullAttributes().keySet()) { - allTypes.add(type); - } - + allTypes.addAll(getFullProperties().keySet()); + allTypes.addAll(getFullAttributes().keySet()); return allTypes; } diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/ClusterConfigTypeValidatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/ClusterConfigTypeValidatorTest.java index c2fea1d..ccf0ecf 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/ClusterConfigTypeValidatorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/ClusterConfigTypeValidatorTest.java @@ -96,8 +96,10 @@ public class ClusterConfigTypeValidatorTest extends EasyMockSupport { EasyMock.expect(blueprintMock.getServices()).andReturn(new HashSet<>(Arrays.asList("YARN", "HDFS"))); - EasyMock.expect(stackMock.getConfigurationTypes("HDFS")).andReturn(Arrays.asList("core-site")); - EasyMock.expect(stackMock.getConfigurationTypes("YARN")).andReturn(Arrays.asList("yarn-site")); + EasyMock.expect(stackMock.getConfigurationTypes("HDFS")).andReturn( + Collections.singletonList("core-site")); + EasyMock.expect(stackMock.getConfigurationTypes("YARN")).andReturn( + Collections.singletonList("yarn-site")); replayAll(); @@ -114,12 +116,14 @@ public class ClusterConfigTypeValidatorTest extends EasyMockSupport { // GIVEN // the config type that is not present in the stack definition for services - clusterRequestConfigTypes = new HashSet<>(Arrays.asList("oozie-site")); + clusterRequestConfigTypes = new HashSet<>(Collections.singletonList("oozie-site")); EasyMock.expect(clusterConfigurationMock.getAllConfigTypes()).andReturn(clusterRequestConfigTypes).anyTimes(); EasyMock.expect(blueprintMock.getServices()).andReturn(new HashSet<>(Arrays.asList("YARN", "HDFS"))); - EasyMock.expect(stackMock.getConfigurationTypes("HDFS")).andReturn(Arrays.asList("core-site")); - EasyMock.expect(stackMock.getConfigurationTypes("YARN")).andReturn(Arrays.asList("yarn-site")); + EasyMock.expect(stackMock.getConfigurationTypes("HDFS")).andReturn( + Collections.singletonList("core-site")); + EasyMock.expect(stackMock.getConfigurationTypes("YARN")).andReturn( + Collections.singletonList("yarn-site")); replayAll(); @@ -140,8 +144,10 @@ public class ClusterConfigTypeValidatorTest extends EasyMockSupport { EasyMock.expect(blueprintMock.getServices()).andReturn(new HashSet<>(Arrays.asList("YARN", "HDFS"))); - EasyMock.expect(stackMock.getConfigurationTypes("HDFS")).andReturn(Arrays.asList("core-site")); - EasyMock.expect(stackMock.getConfigurationTypes("YARN")).andReturn(Arrays.asList("yarn-site")); + EasyMock.expect(stackMock.getConfigurationTypes("HDFS")).andReturn( + Collections.singletonList("core-site")); + EasyMock.expect(stackMock.getConfigurationTypes("YARN")).andReturn( + Collections.singletonList("yarn-site")); replayAll();