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/12/09 16:32:15 UTC
[1/3] stratos git commit: Uncommenting scaling drools
Repository: stratos
Updated Branches:
refs/heads/4.1.0-test aa2ea04a9 -> 573e5ee61
Uncommenting scaling drools
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/573e5ee6
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/573e5ee6
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/573e5ee6
Branch: refs/heads/4.1.0-test
Commit: 573e5ee611bd001895e0128db27ee21fb37128d3
Parents: b0d1aca
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Dec 9 21:03:20 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Dec 9 21:03:32 2014 +0530
----------------------------------------------------------------------
.../stratos/autoscaler/monitor/cluster/VMClusterMonitor.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/573e5ee6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 04b7433..8e82c53 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -255,7 +255,7 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
if (rifReset || memoryConsumptionReset || loadAverageReset) {
- /*VMClusterContext vmClusterContext = (VMClusterContext) clusterContext;
+ VMClusterContext vmClusterContext = (VMClusterContext) clusterContext;
getScaleCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
getScaleCheckKnowledgeSession().setGlobal("autoscalePolicy",
@@ -281,7 +281,7 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
instanceContext.setRifReset(false);
instanceContext.setMemoryConsumptionReset(false);
- instanceContext.setLoadAverageReset(false);*/
+ instanceContext.setLoadAverageReset(false);
} else if (log.isDebugEnabled()) {
log.debug(String.format("Scale rule will not run since the LB statistics have not " +
"received before this cycle for [cluster instance context] %s ",
[3/3] stratos git commit: Improving the scaling drools file
Posted by la...@apache.org.
Improving the scaling drools file
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/43875da3
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/43875da3
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/43875da3
Branch: refs/heads/4.1.0-test
Commit: 43875da327cfc1a99cec1f5a73007056a6c26961
Parents: aa2ea04
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Dec 9 21:02:02 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Dec 9 21:03:32 2014 +0530
----------------------------------------------------------------------
.../src/main/conf/drools/scaling.drl | 33 +++++++++++++-------
1 file changed, 22 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/43875da3/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
index bfc7bbd..163d671 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
@@ -124,6 +124,9 @@ dialect "mvel"
eval(log.debug("[scaling] " + " [cluster] " + clusterId + " Scale-down action: " + scaleDown))
then
+
+ log.debug("Number Of Required Instances " + numberOfRequiredInstances + " Instances Count " + instancesCount);
+
if(scaleUp){
int additionalInstances = numberOfRequiredInstances - instancesCount ;
@@ -132,24 +135,32 @@ dialect "mvel"
//Calculating the factor scaling
float factor = numberOfRequiredInstances / clusterInstanceContext.getMinInstanceCount();
- delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getId(), factor);
-
- while(count != additionalInstances){
- ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)autoscaleAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
- if(partitionContext != null){
- log.info("[scale-up] Partition available, hence trying to spawn an instance to scale up!" );
- log.debug("[scale-up] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] " + clusterId );
- delegator.delegateSpawn(partitionContext, clusterId, clusterInstanceContext.getId(), isPrimary);
- count++;
+// delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getId(), factor);
+
+ boolean partitionsAvailable = true;
+
+ while(count != additionalInstances && partitionsAvailable){
+
+ ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)autoscaleAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
+ if(partitionContext != null){
+
+ log.info("[scale-up] Partition available, hence trying to spawn an instance to scale up!" );
+ log.debug("[scale-up] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] " + clusterId );
+ delegator.delegateSpawn(partitionContext, clusterId, clusterInstanceContext.getId(), isPrimary);
+ count++;
+ } else {
+
+ partitionsAvailable = false;
+ }
}
- }
} else if(scaleDown){
float factor = numberOfRequiredInstances / clusterInstanceContext.getMinInstanceCount();
- delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), factor);
+// delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), factor);
log.debug("[scale-down] Decided to Scale down [cluster] " + clusterId);
if(clusterInstanceContext.getScaleDownRequestsCount() > 5 ){
+
log.debug("[scale-down] Reached scale down requests threshold [cluster] " + clusterId + " Count " + clusterInstanceContext.getScaleDownRequestsCount());
MemberStatsContext selectedMemberStatsContext = null;
double lowestOverallLoad = 0.0;
[2/3] stratos git commit: Fix instances calculation issue
Posted by la...@apache.org.
Fix instances calculation issue
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b0d1acab
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b0d1acab
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b0d1acab
Branch: refs/heads/4.1.0-test
Commit: b0d1acabc4050cb5c4df48576aa1f0fe494a4f84
Parents: 43875da
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Dec 9 21:02:51 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Dec 9 21:03:32 2014 +0530
----------------------------------------------------------------------
.../stratos/autoscaler/rule/RuleTasksDelegator.java | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d1acab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
index b1260bc..2b42139 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
@@ -92,9 +92,10 @@ public class RuleTasksDelegator {
}
public int getNumberOfInstancesRequiredBasedOnLoadAndMemoryConsumption(float upperLimit, float lowerLimit, double predictedValue, int activeMemberCount) {
-
- double numberOfInstances = (activeMemberCount * predictedValue) / upperLimit;
-
+ double numberOfInstances = 0;
+ if(upperLimit != 0) {
+ numberOfInstances = (activeMemberCount * predictedValue) / upperLimit;
+ }
return (int) Math.ceil(numberOfInstances);
}
@@ -108,10 +109,10 @@ public class RuleTasksDelegator {
rifBasedRequiredInstances = numberOfInstancesReuquiredBasedOnRif;
}
if (mcReset) {
- rifBasedRequiredInstances = numberOfInstancesReuquiredBasedOnMemoryConsumption;
+ mcBasedRequiredInstances = numberOfInstancesReuquiredBasedOnMemoryConsumption;
}
if (laReset) {
- rifBasedRequiredInstances = numberOfInstancesReuquiredBasedOnLoadAverage;
+ laBasedRequiredInstances = numberOfInstancesReuquiredBasedOnLoadAverage;
}
numberOfInstances = Math.max(Math.max(numberOfInstancesReuquiredBasedOnMemoryConsumption, numberOfInstancesReuquiredBasedOnLoadAverage), numberOfInstancesReuquiredBasedOnRif);
return numberOfInstances;