You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2019/07/15 21:07:33 UTC
[ambari] branch trunk updated: AMBARI-25336 : Perf improvement with
Collections usages over iterations (#3048)
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 <vj...@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();