Updated Branches: refs/heads/master 70d56224c -> efbc7af46
Get scale down decision only if active member count is higher than minimum limit Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/efbc7af4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/efbc7af4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/efbc7af4 Branch: refs/heads/master Commit: efbc7af462ab12ebd1cdd19a0b880775d1ede00a Parents: 70d5622 Author: Lahiru Sandaruwan <[email protected]> Authored: Thu Jan 16 00:58:15 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Thu Jan 16 00:58:15 2014 +0530 ---------------------------------------------------------------------- .../apache/stratos/autoscaler/NetworkPartitionContext.java | 7 +++++++ .../java/org/apache/stratos/autoscaler/PartitionContext.java | 4 ++-- .../apache/stratos/autoscaler/algorithm/OneAfterAnother.java | 2 +- .../org/apache/stratos/autoscaler/algorithm/RoundRobin.java | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efbc7af4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java index 3bc56a2..09a8277 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/NetworkPartitionContext.java @@ -484,6 +484,13 @@ public class NetworkPartitionContext implements Serializable{ return 0; } + public int getActiveMemberCount(String currentPartitionId) { + if(partitionCtxts.containsKey(currentPartitionId)){ + return getPartitionCtxt(currentPartitionId).getActiveMemberCount(); + } + return 0; + } + // public void setPartitions(Partition[] partitions) { // this.partitions = partitions; // for (Partition partition: partitions){ http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efbc7af4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java index 36c3e97..5e0024d 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java @@ -105,8 +105,8 @@ public class PartitionContext implements Serializable{ this.pendingMembers = pendingMembers; } - public List<MemberContext> getActiveMembers() { - return activeMembers; + public int getActiveMemberCount() { + return activeMembers.size(); } public void setActiveMembers(List<MemberContext> activeMembers) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efbc7af4/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 acc5e09..65cbdfc 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 @@ -101,7 +101,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm { String currentPartitionId = currentPartition.getId(); // has more than minimum instances. - if (networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId) > + if (networkPartitionContext.getActiveMemberCount(currentPartitionId) > currentPartition.getPartitionMin()) { // current partition is free if (log.isDebugEnabled()) http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efbc7af4/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 04aa5f0..ea4786f 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 @@ -105,7 +105,7 @@ public class RoundRobin implements AutoscaleAlgorithm{ String currentPartitionId = currentPartition.getId(); // has more than minimum instances. - if (networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId) > + if (networkPartitionContext.getActiveMemberCount(currentPartitionId) > currentPartition.getPartitionMin()) { // current partition is free if (log.isDebugEnabled()) {
