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;