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 2015/04/24 12:48:33 UTC

[2/9] stratos git commit: Handle obsolete partition contexts in partition selection algorithm

Handle obsolete partition contexts in partition selection algorithm


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

Branch: refs/heads/master
Commit: 17cfb01907caddcdefbea303829aa80cc4c1edaf
Parents: 528f5b5
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Fri Apr 24 14:17:53 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Fri Apr 24 14:17:53 2015 +0530

----------------------------------------------------------------------
 .../autoscaler/algorithms/partition/OneAfterAnother.java       | 5 +++--
 .../stratos/autoscaler/algorithms/partition/RoundRobin.java    | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/17cfb019/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
index a6b6386..226e57f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
@@ -39,7 +39,7 @@ public class OneAfterAnother implements PartitionAlgorithm {
 
         for (PartitionContext partitionContext : partitionContexts) {
 
-            if (partitionContext.getNonTerminatedMemberCount() < partitionContext.getMax()) {
+            if (partitionContext.getNonTerminatedMemberCount() < partitionContext.getMax() && !partitionContext.isObsoletePartition()) {
 
                 if (log.isDebugEnabled()) {
                     log.debug(String.format("[one-after-another algorithm] [scale-up] [partition] %s has space to create " +
@@ -57,7 +57,8 @@ public class OneAfterAnother implements PartitionAlgorithm {
 
         for (int partitionIndex = partitionContexts.length - 1; partitionIndex >= 0; partitionIndex--) {
 
-            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() > 0) {
+            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() > 0
+                    && !partitionContexts[partitionIndex].isObsoletePartition()) {
 
                 if (log.isDebugEnabled()) {
                     log.debug(String.format("[one-after-another algorithm] [scale-down] [partition] %s has members that" +

http://git-wip-us.apache.org/repos/asf/stratos/blob/17cfb019/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
index d274d0f..1ced903 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
@@ -50,7 +50,8 @@ public class RoundRobin implements PartitionAlgorithm {
                 break;
             }
 
-            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() < lowestInstanceCount) {
+            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() < lowestInstanceCount
+                    && !partitionContexts[partitionIndex].isObsoletePartition()) {
                 lowestInstanceCount = partitionContexts[partitionIndex].getNonTerminatedMemberCount();
                 selectedIndex = partitionIndex;
             }
@@ -84,7 +85,8 @@ public class RoundRobin implements PartitionAlgorithm {
 
         for (int partitionIndex = partitionContexts.length - 1; partitionIndex >= 0; partitionIndex--) {
 
-            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() > highestInstanceCount) {
+            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() > highestInstanceCount
+                    && !partitionContexts[partitionIndex].isObsoletePartition()) {
 
                 highestInstanceCount = partitionContexts[partitionIndex].getNonTerminatedMemberCount();
                 selectedIndex = partitionIndex;