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 <[email protected]> Authored: Thu Jan 16 10:30:30 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> 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) {
