Updated Branches: refs/heads/master 3df204620 -> efdffe6ac
Fix min check and algorithm to get non terminated count Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/efdffe6a Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/efdffe6a Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/efdffe6a Branch: refs/heads/master Commit: efdffe6acaa3228a7acc0b3ebf2cfa54b6fbdfba Parents: 3df2046 Author: Lahiru Sandaruwan <[email protected]> Authored: Wed Jan 15 22:55:44 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Wed Jan 15 22:55:44 2014 +0530 ---------------------------------------------------------------------- .../stratos/autoscaler/NetworkPartitionContext.java | 12 ++++++------ .../org/apache/stratos/autoscaler/PartitionContext.java | 4 +++- .../stratos/autoscaler/algorithm/OneAfterAnother.java | 6 +++--- .../apache/stratos/autoscaler/algorithm/RoundRobin.java | 8 +++++--- .../modules/distribution/src/main/conf/mincheck.drl | 4 ++-- 5 files changed, 19 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdffe6a/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 3e089cf..3bc56a2 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 @@ -446,16 +446,16 @@ public class NetworkPartitionContext implements Serializable{ // return partitionToMemberCountMap.containsKey(partitionId); // } - public int getMemberCountOfPartition(String partitionId){ +// public int getMemberCountOfPartition(String partitionId){ // if(partitionToMemberCountMap.containsKey(partitionId)) { // return partitionToMemberCountMap.get(partitionId); // } // return 0; - if(partitionCtxts.containsKey(partitionId)){ - return getPartitionCtxt(partitionId).getTotalMemberCount(); - } - return 0; - } +// if(partitionCtxts.containsKey(partitionId)){ +// return getPartitionCtxt(partitionId).getTotalMemberCount(); +// } +// return 0; +// } public Map<String, PartitionContext> getPartitionCtxts() { return partitionCtxts; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdffe6a/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..886138d 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 @@ -325,7 +325,9 @@ public class PartitionContext implements Serializable{ return activeMembers.size() + pendingMembers.size() + terminationPendingMembers.size(); } - public int getNonTerminatedMemberCount() { + public int + + gs() { return activeMembers.size() + pendingMembers.size(); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdffe6a/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 636b372..acc5e09 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 @@ -65,7 +65,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm { // 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.getMemberCountOfPartition(currentPartitionId), + currentPartitionId, networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId), currentPartition.getPartitionMax())) ; return currentPartition; } else { @@ -106,7 +106,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm { // 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.getMemberCountOfPartition(currentPartitionId), + currentPartitionId, networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId), currentPartition.getPartitionMin())) ; return currentPartition; } else { @@ -114,7 +114,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm { if (log.isDebugEnabled()) log.debug(String.format("Partition %s reached with no space to scale down," + "[current] %s [mib] %s", currentPartitionId, - networkPartitionContext.getMemberCountOfPartition(currentPartitionId), + networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId), currentPartition.getPartitionMin())); return null; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdffe6a/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 a24eb06..04aa5f0 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 @@ -57,9 +57,11 @@ public class RoundRobin implements AutoscaleAlgorithm{ if(networkPartitionContext.getNonTerminatedMemberCountOfPartition(currentPartitionId) < currentPartition.getPartitionMax()){ - // current partition is free - if(log.isDebugEnabled()) - log.debug("Free space found in partition " + currentPartition.getId()); + // 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())) ; return currentPartition; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdffe6a/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl ---------------------------------------------------------------------- diff --git a/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl b/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl index 2c04459..994c950 100755 --- a/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl +++ b/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl @@ -54,9 +54,9 @@ dialect "mvel" when $ctxt : PartitionContext () eval(log.debug("Running minimum rule: [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId())) - eval(log.debug("[min-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Total member count: " + $ctxt.getTotalMemberCount())) + eval(log.debug("[min-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Non termnated member count: " + $ctxt.getNonTerminatedMemberCount())) eval(log.debug("[min-check] [network-partition] " + $ctxt.getNetworkPartitionId() + " [partition] " + $ctxt.getPartitionId() + " Minimum member count: " + $ctxt.getMinimumMemberCount())) - eval($ctxt.getTotalMemberCount() < $ctxt.getMinimumMemberCount()) + eval($ctxt.getNonTerminatedMemberCount() < $ctxt.getMinimumMemberCount()) then $delegator.delegateSpawn($ctxt, clusterId, lbRef);
