This is an automated email from the ASF dual-hosted git repository.

amagyar pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-2.7 by this push:
     new 296a137  [AMBARI-25240] : Dynamically update Rolling Upgrade Batch 
size (#2927)
296a137 is described below

commit 296a13713d757a555a79e1cb597d0a9461d40037
Author: virajjasani <34790606+virajjas...@users.noreply.github.com>
AuthorDate: Thu May 30 15:16:37 2019 +0530

    [AMBARI-25240] : Dynamically update Rolling Upgrade Batch size (#2927)
    
    * [AMBARI-25240] : Dynamically update Rolling Upgrade Batch size
    
    * minor code change
---
 .../org/apache/ambari/server/stack/MasterHostResolver.java    | 11 +++++++++++
 .../apache/ambari/server/state/stack/upgrade/Grouping.java    |  9 +++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
index b018277..372c250 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
@@ -313,6 +313,17 @@ public class MasterHostResolver {
   }
 
   /**
+   * Find Config value for current Cluster using configType and propertyName
+   *
+   * @param configType   Config Type
+   * @param propertyName Property Name
+   * @return Value of property if present else null
+   */
+  public String getValueFromDesiredConfigurations(final String configType, 
final String propertyName) {
+    return m_configHelper.getValueFromDesiredConfigurations(m_cluster, 
configType, propertyName);
+  }
+
+  /**
    * Find the master and secondary namenode(s) based on JMX NameNodeStatus.
    */
   private HostsType.HighAvailabilityHosts findMasterAndSecondaries(NameService 
nameService, Set<String> componentHosts) throws ClassifyNameNodeException {
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java
index 150c9fa..5f667ba 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Grouping.java
@@ -32,6 +32,7 @@ import javax.xml.bind.annotation.XmlSeeAlso;
 
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.stack.HostsType;
+import org.apache.ambari.server.state.ConfigHelper;
 import org.apache.ambari.server.state.UpgradeContext;
 import org.apache.ambari.server.state.stack.UpgradePack;
 import org.apache.ambari.server.state.stack.UpgradePack.OrderService;
@@ -224,10 +225,14 @@ public class Grouping {
 
       // Expand some of the TaskWrappers into multiple based on the batch size.
       for (TaskWrapper tw : tasks) {
-        List<Set<String>> hostSets = null;
-
+        List<Set<String>> hostSets;
         if (m_grouping.parallelScheduler != null) {
           int taskParallelism = 
m_grouping.parallelScheduler.maxDegreeOfParallelism;
+          String maxDegreeFromClusterEnv = ctx.getResolver()
+                  .getValueFromDesiredConfigurations(ConfigHelper.CLUSTER_ENV, 
"max_degree_parallelism");
+          if (StringUtils.isNotEmpty(maxDegreeFromClusterEnv) && 
StringUtils.isNumeric(maxDegreeFromClusterEnv)) {
+            taskParallelism = Integer.parseInt(maxDegreeFromClusterEnv);
+          }
           if (taskParallelism == Integer.MAX_VALUE) {
             taskParallelism = ctx.getDefaultMaxDegreeOfParallelism();
           }

Reply via email to