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) {