You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/01/16 05:56:00 UTC

git commit: Adjusting some logs in algorithms

Updated Branches:
  refs/heads/master 3a5f074af -> 5ad85be27


Adjusting some logs in algorithms


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/5ad85be2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/5ad85be2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/5ad85be2

Branch: refs/heads/master
Commit: 5ad85be276884147e9745ac5ed43f6f8c9696f89
Parents: 3a5f074
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Thu Jan 16 10:30:30 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Thu Jan 16 10:30:30 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/algorithm/OneAfterAnother.java   | 18 ++++-----
 .../autoscaler/algorithm/RoundRobin.java        | 41 +++++++++++---------
 2 files changed, 29 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5ad85be2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
index becfd5b..1fddf77 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
@@ -59,14 +59,12 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
                     currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
                     Partition currentPartition = (Partition) partitions.get(currentPartitionIndex);
                     String currentPartitionId = currentPartition.getId();
-
-                    if (networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId)
-                            < currentPartition.getPartitionMax()) {
+                    int nonTerminatedMemberCountOfPartition = networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId);
+                    if (nonTerminatedMemberCountOfPartition < currentPartition.getPartitionMax()) {
                         // current partition is free
                         if (log.isDebugEnabled())
                             log.debug(String.format("A free space found for scale up in partition %s [current] %s [max] %s",
-                                    currentPartitionId, networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId),
-                                                                    currentPartition.getPartitionMax()))  ;
+                                    currentPartitionId, nonTerminatedMemberCountOfPartition, currentPartition.getPartitionMax()))  ;
                         return currentPartition;
                     } else {
                         // last partition is reached which is not free
@@ -101,20 +99,18 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
                     String currentPartitionId = currentPartition.getId();
 
                     // has more than minimum instances.
-                    if (networkPartitionContext.getActiveMemberCount(currentPartitionId) >
-                            currentPartition.getPartitionMin()) {
+                    int currentlyActiveMemberCount = networkPartitionContext.getActiveMemberCount(currentPartitionId);
+                    if ( currentlyActiveMemberCount > currentPartition.getPartitionMin()) {
                         // current partition is free
                         if (log.isDebugEnabled())
                             log.debug(String.format("A free space found for scale down in partition %s [current] %s [min] %s",
-                                    currentPartitionId, networkPartitionContext.getActiveMemberCount(currentPartitionId),
-                                                                    currentPartition.getPartitionMin()))  ;
+                                    currentPartitionId, currentlyActiveMemberCount, currentPartition.getPartitionMin()))  ;
                         return currentPartition;
                     } else {
                         if (currentPartitionIndex == 0) {
                             if (log.isDebugEnabled())
                                 log.debug(String.format("Partition %s reached with no space to scale down," +
-                                        "[current] %s [min] %s", currentPartitionId,
-                                        networkPartitionContext.getActiveMemberCount(currentPartitionId),
+                                        "[current] %s [min] %s", currentPartitionId, currentlyActiveMemberCount,
                                         currentPartition.getPartitionMin()));
                             return null;
                         }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5ad85be2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
index ea4786f..fc2f891 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
@@ -33,9 +33,9 @@ import java.util.List;
  *
 */
 public class RoundRobin implements AutoscaleAlgorithm{
-	
+
 	private static final Log log = LogFactory.getLog(RoundRobin.class);
-    
+
     public Partition getNextScaleUpPartition(NetworkPartitionContext networkPartitionContext, String clusterId){
 
     	List<?> partitions = Arrays.asList(networkPartitionContext.getPartitions());
@@ -50,13 +50,12 @@ public class RoundRobin implements AutoscaleAlgorithm{
     	    if (partitions.get(currentPartitionIndex) instanceof Partition) {
     		    Partition currentPartition = (Partition) partitions.get(currentPartitionIndex);
     	        String currentPartitionId =  currentPartition.getId();
-    	        
+
     	        // point to next partition
     	        int nextPartitionIndex = currentPartitionIndex  == noOfPartitions - 1 ? 0 : currentPartitionIndex+1;
     	        networkPartitionContext.setCurrentPartitionIndex(nextPartitionIndex);
-
-    	        if(networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId)
-                        < currentPartition.getPartitionMax()){
+                int nonTerminatedMemberCountOfPartition = networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId);
+    	        if(nonTerminatedMemberCountOfPartition < currentPartition.getPartitionMax()){
                     // current partition is free
                     if (log.isDebugEnabled())
                         log.debug(String.format("A free space found for scale up in partition %s [current] %s [max] %s",
@@ -70,10 +69,10 @@ public class RoundRobin implements AutoscaleAlgorithm{
 
     	    }
     	}
-    	
+
     	// none of the partitions were free.
     	if(log.isDebugEnabled()) {
-    		log.debug("No free partition found at partition group " + networkPartitionContext);
+    		log.debug("No free partition found at network partition " + networkPartitionContext);
     	}
         return null;
     }
@@ -105,18 +104,22 @@ public class RoundRobin implements AutoscaleAlgorithm{
                 String currentPartitionId = currentPartition.getId();
 
                 // has more than minimum instances.
-                if (networkPartitionContext.getActiveMemberCount(currentPartitionId) >
-                        currentPartition.getPartitionMin()) {
+                int currentlyActiveMemberCount = networkPartitionContext.getActiveMemberCount(currentPartitionId);
+                if (currentlyActiveMemberCount > currentPartition.getPartitionMin()) {
                     // current partition is free
-                    if (log.isDebugEnabled()) {
-                        log.debug("Returning partition for scaling down " +
-                                  currentPartition.getId());
-                    }
+                    if (log.isDebugEnabled())
+                        log.debug(String.format("A free space found for scale down in partition %s [current] %s [min] %s",
+                                currentPartitionId, currentlyActiveMemberCount, currentPartition.getPartitionMin()))  ;
                     return currentPartition;
-                }
-                if (log.isDebugEnabled()) {
-                    log.debug("Found no members to scale down at partition" +
-                              currentPartition.getId());
+                }else {
+
+                    if (currentPartitionIndex == 0) {
+                        if (log.isDebugEnabled())
+                            log.debug(String.format("Partition %s reached with no space to scale down," +
+                                    "[current] %s [min] %s", currentPartitionId, currentlyActiveMemberCount,
+                                    currentPartition.getPartitionMin()));
+                        return null;
+                    }
                 }
             }
         }
@@ -127,7 +130,7 @@ public class RoundRobin implements AutoscaleAlgorithm{
         // none of the partitions were free.
         return null;
     }
-	
+
 
     @Override
     public boolean scaleUpPartitionAvailable(String clusterId) {