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();