You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2013/12/25 22:36:03 UTC
[1/2] git commit: Added a try catch block to one after another
algorithm to trace any errors
Updated Branches:
refs/heads/master 09f9165ca -> 417e18f42
Added a try catch block to one after another algorithm to trace any errors
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/83b88803
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/83b88803
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/83b88803
Branch: refs/heads/master
Commit: 83b88803cff9a1218fdfc122dcfeb0adc425b599
Parents: 0063012
Author: Imesh Gunaratne <im...@apache.org>
Authored: Thu Dec 26 03:05:42 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Thu Dec 26 03:05:42 2013 +0530
----------------------------------------------------------------------
.../autoscaler/algorithm/OneAfterAnother.java | 143 ++++++++++---------
1 file changed, 73 insertions(+), 70 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/83b88803/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 a10c4d0..1d69cbd 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
@@ -32,103 +32,106 @@ import java.util.List;
/**
*
*/
+
/**
-* This class is used for selecting a {@link Partition} one after another and checking availability of
+ * This class is used for selecting a {@link Partition} one after another and checking availability of
* partitions of a {@link NetworkPartitionContext}
* One after another means it completes partitions in the order defined in
* {@link org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy}, and go to next if current one
* reached the max limit
- *
-*/
+ */
public class OneAfterAnother implements AutoscaleAlgorithm {
-
- private static final Log log = LogFactory.getLog(OneAfterAnother.class);
+
+ private static final Log log = LogFactory.getLog(OneAfterAnother.class);
public Partition getNextScaleUpPartition(NetworkPartitionContext networkPartitionContext, String clusterId) {
+ try {
+ int currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
+ List<?> partitions = Arrays.asList(networkPartitionContext.getPartitions());
+ int noOfPartitions = partitions.size();
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Selecting a partition from 'One After Another' algorithm, " +
+ "%s partitions in the [network partition]: %s ", noOfPartitions, networkPartitionContext.getId()));
+ }
- int currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
- List<?> partitions = Arrays.asList(networkPartitionContext.getPartitions());
- int noOfPartitions = partitions.size();
- if(log.isDebugEnabled()){
- log.debug(String.format("Selecting a partition from 'One After Another' algorithm, " +
- "%s partitions in the [network partition]: %s ", noOfPartitions, networkPartitionContext.getId()));
- }
-
- for(int i=currentPartitionIndex; i< noOfPartitions; i++)
- {
- if (partitions.get(currentPartitionIndex) instanceof Partition) {
- currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
- Partition currentPartition = (Partition) partitions.get(currentPartitionIndex);
- String currentPartitionId = currentPartition.getId();
+ for (int i = currentPartitionIndex; i < noOfPartitions; i++) {
+ if (partitions.get(currentPartitionIndex) instanceof Partition) {
+ currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
+ Partition currentPartition = (Partition) partitions.get(currentPartitionIndex);
+ String currentPartitionId = currentPartition.getId();
// if (networkPartitionContext.partitionCountExists(currentPartitionId)) {
// networkPartitionContext.addPartitionCount(currentPartitionId, 0);
// }
- if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) < currentPartition.getPartitionMax()) {
- // current partition is free
+ if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) < currentPartition.getPartitionMax()) {
+ // current partition is free
// networkPartitionContext.increaseMemberCountOfPartition(currentPartitionId, 1);
- if (log.isDebugEnabled())
- log.debug("Free space found in partition " + currentPartition.getId());
-
- return currentPartition;
- } else {
- // last partition is reached which is not free
- if (currentPartitionIndex == noOfPartitions - 1) {
if (log.isDebugEnabled())
- log.debug("Last partition also has no space");
- return null;
+ log.debug("Free space found in partition " + currentPartition.getId());
+
+ return currentPartition;
+ } else {
+ // last partition is reached which is not free
+ if (currentPartitionIndex == noOfPartitions - 1) {
+ if (log.isDebugEnabled())
+ log.debug("Last partition also has no space");
+ return null;
+ }
+
+ networkPartitionContext.setCurrentPartitionIndex(currentPartitionIndex + 1);
}
-
- networkPartitionContext.setCurrentPartitionIndex(currentPartitionIndex + 1);
}
}
- }
-
- if(log.isDebugEnabled())
- log.debug("No free partition found at network partition " + networkPartitionContext);
-
- return null;
+
+ if (log.isDebugEnabled())
+ log.debug("No free partition found at network partition " + networkPartitionContext);
+ } catch (Exception e) {
+ log.error("Could not find next scale up partition", e);
+ }
+ return null;
}
public Partition getNextScaleDownPartition(NetworkPartitionContext networkPartitionContext, String clusterId) {
-
- int currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
- List<?> partitions = Arrays.asList(networkPartitionContext.getPartitions());
-
- for(int i = currentPartitionIndex; i >= 0; i--)
- {
- if (partitions.get(currentPartitionIndex) instanceof Partition) {
- currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
- Partition currentPartition = (Partition) partitions.get(currentPartitionIndex);
- String currentPartitionId = currentPartition.getId();
-
- // has more than minimum instances.
- if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) > currentPartition.getPartitionMin()) {
- // current partition is free
+ try {
+ int currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
+ List<?> partitions = Arrays.asList(networkPartitionContext.getPartitions());
+
+ for (int i = currentPartitionIndex; i >= 0; i--) {
+ if (partitions.get(currentPartitionIndex) instanceof Partition) {
+ currentPartitionIndex = networkPartitionContext.getCurrentPartitionIndex();
+ Partition currentPartition = (Partition) partitions.get(currentPartitionIndex);
+ String currentPartitionId = currentPartition.getId();
+
+ // has more than minimum instances.
+ if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) > currentPartition.getPartitionMin()) {
+ // current partition is free
// networkPartitionContext.decreaseMemberCountOfPartition(currentPartitionId, 1);
- if (log.isDebugEnabled())
- log.debug("A free space found for scale down in partition" +
- currentPartition.getId());
- return currentPartition;
- } else {
- if (currentPartitionIndex == 0) {
if (log.isDebugEnabled())
- log.debug("First partition reached with no space to scale down");
- return null;
+ log.debug("A free space found for scale down in partition" +
+ currentPartition.getId());
+ return currentPartition;
+ } else {
+ if (currentPartitionIndex == 0) {
+ if (log.isDebugEnabled())
+ log.debug("First partition reached with no space to scale down");
+ return null;
+ }
+ // Set next partition as current partition in Autoscaler Context
+ currentPartitionIndex = currentPartitionIndex - 1;
+ networkPartitionContext.setCurrentPartitionIndex(currentPartitionIndex);
}
- // Set next partition as current partition in Autoscaler Context
- currentPartitionIndex = currentPartitionIndex - 1;
- networkPartitionContext.setCurrentPartitionIndex(currentPartitionIndex);
}
+
}
-
- }
- if(log.isDebugEnabled())
- log.debug("No space found in this network partition " + networkPartitionContext.getId());
- return null;
+ if (log.isDebugEnabled())
+ log.debug("No space found in this network partition " + networkPartitionContext.getId());
+ } catch (Exception e) {
+ log.error("Could not find next scale down partition", e);
+ }
+ return null;
}
-
+
@Override
public boolean scaleUpPartitionAvailable(String clusterId) {
@@ -139,5 +142,5 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
public boolean scaleDownPartitionAvailable(String clusterId) {
return false; //To change body of implemented methods use File | Settings | File Templates.
}
-
+
}
[2/2] git commit: Merge remote-tracking branch 'origin/master'
Posted by im...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/417e18f4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/417e18f4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/417e18f4
Branch: refs/heads/master
Commit: 417e18f4247e9209507fa16cb9d9b6f0cb2604d3
Parents: 83b8880 09f9165
Author: Imesh Gunaratne <im...@apache.org>
Authored: Thu Dec 26 03:05:56 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Thu Dec 26 03:05:56 2013 +0530
----------------------------------------------------------------------
products/autoscaler/modules/distribution/src/main/conf/scaling.drl | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------