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/03/17 07:17:14 UTC
[1/4] stratos git commit: Fix RuleTasksDelegator class logs and line
limit exceeds
Repository: stratos
Updated Branches:
refs/heads/master 66f173226 -> 8ad5fef24
Fix RuleTasksDelegator class logs and line limit exceeds
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/efe1f791
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/efe1f791
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/efe1f791
Branch: refs/heads/master
Commit: efe1f7914973ebfc49fc8ee576770c0bc64491c6
Parents: 66f1732
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Mar 17 11:20:47 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Mar 17 11:20:54 2015 +0530
----------------------------------------------------------------------
.../autoscaler/rule/RuleTasksDelegator.java | 45 ++++++++++++--------
1 file changed, 28 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/efe1f791/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 85bee11..a5571b9 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
@@ -65,7 +65,8 @@ public class RuleTasksDelegator {
}
- public int getNumberOfInstancesRequiredBasedOnRif(float rifPredictedValue, float requestsServedPerInstance, float averageRequestsServedPerInstance, boolean arspiReset) {
+ public int getNumberOfInstancesRequiredBasedOnRif(float rifPredictedValue, float requestsServedPerInstance, float
+ averageRequestsServedPerInstance, boolean arspiReset) {
float requestsInstanceCanHandle = requestsServedPerInstance;
@@ -133,7 +134,8 @@ public class RuleTasksDelegator {
if (laReset) {
laBasedRequiredInstances = numberOfInstancesReuquiredBasedOnLoadAverage;
}
- numberOfInstances = Math.max(Math.max(numberOfInstancesRequiredBasedOnMemoryConsumption, numberOfInstancesReuquiredBasedOnLoadAverage), numberOfInstancesRequiredBasedOnRif);
+ numberOfInstances = Math.max(Math.max(numberOfInstancesRequiredBasedOnMemoryConsumption,
+ numberOfInstancesReuquiredBasedOnLoadAverage), numberOfInstancesRequiredBasedOnRif);
return numberOfInstances;
}
@@ -189,7 +191,8 @@ public class RuleTasksDelegator {
int minimumCountOfNetworkPartition = 0;
ClusterMonitor clusterMonitor = (ClusterMonitor) AutoscalerContext.getInstance().getClusterMonitor(clusterId);
ClusterContext clusterContext = (ClusterContext) clusterMonitor.getClusterContext();
- ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext = clusterContext.getNetworkPartitionCtxt(nwPartitionId);
+ ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext =
+ clusterContext.getNetworkPartitionCtxt(nwPartitionId);
ClusterInstanceContext clusterInstanceContext =
(ClusterInstanceContext) clusterLevelNetworkPartitionContext.
getInstanceContext(clusterInstanceId);
@@ -272,18 +275,20 @@ public class RuleTasksDelegator {
//Moving member to pending termination list
if (clusterMonitorPartitionContext.activeMemberAvailable(memberId)) {
- log.info(String.format("[scale-down] Moving active member to termination pending list [member id] %s [partition] %s " +
- "[network partition] %s" , memberId, clusterMonitorPartitionContext.getPartitionId(),
+ log.info(String.format("[scale-down] Moving active member to termination pending list [member id] %s " +
+ "[partition] %s [network partition] %s" , memberId,
+ clusterMonitorPartitionContext.getPartitionId(),
clusterMonitorPartitionContext.getNetworkPartitionId()));
- clusterMonitorPartitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
- clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
+ clusterMonitorPartitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
+ clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
} else if (clusterMonitorPartitionContext.pendingMemberAvailable(memberId)) {
- log.info(String.format("[scale-down] Moving pending member to termination pending list [member id] %s [partition] %s " +
- "[network partition] %s" , memberId, clusterMonitorPartitionContext.getPartitionId(),
+ log.info(String.format("[scale-down] Moving pending member to termination pending list [member id] %s " +
+ "[partition] %s [network partition] %s" , memberId,
+ clusterMonitorPartitionContext.getPartitionId(),
clusterMonitorPartitionContext.getNetworkPartitionId()));
- clusterMonitorPartitionContext.movePendingMemberToObsoleteMembers(memberId);
- clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
+ clusterMonitorPartitionContext.movePendingMemberToObsoleteMembers(memberId);
+ clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
}
} catch (Exception e) {
log.error("[scale-down] Cannot move member to termination pending list ", e);
@@ -345,10 +350,13 @@ public class RuleTasksDelegator {
float memberGredientLoadAverage = memberStatsContext.getLoadAverage().getGradient();
float memberSecondDerivativeLoadAverage = memberStatsContext.getLoadAverage().getSecondDerivative();
- double memberPredictedLoadAverage = getPredictedValueForNextMinute(memberAverageLoadAverage, memberGredientLoadAverage, memberSecondDerivativeLoadAverage, 1);
-
- log.debug("Member ID : " + memberStatsContext.getMemberId() + " : Predicted Load Average : " + memberPredictedLoadAverage);
+ double memberPredictedLoadAverage = getPredictedValueForNextMinute(memberAverageLoadAverage,
+ memberGredientLoadAverage, memberSecondDerivativeLoadAverage, 1);
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("[member-id] $s [predicted load average] $s ", memberStatsContext.getMemberId()
+ , memberPredictedLoadAverage));
+ }
loadAveragePredicted += memberPredictedLoadAverage;
++totalMemberCount;
}
@@ -372,10 +380,13 @@ public class RuleTasksDelegator {
float memberMemoryConsumptionGredient = memberStatsContext.getMemoryConsumption().getGradient();
float memberMemoryConsumptionSecondDerivative = memberStatsContext.getMemoryConsumption().getSecondDerivative();
- double memberPredictedMemoryConsumption = getPredictedValueForNextMinute(memberMemoryConsumptionAverage, memberMemoryConsumptionGredient, memberMemoryConsumptionSecondDerivative, 1);
-
- log.debug("Member ID : " + memberStatsContext.getMemberId() + " : Predicted Memory Consumption : " + memberPredictedMemoryConsumption);
+ double memberPredictedMemoryConsumption = getPredictedValueForNextMinute(memberMemoryConsumptionAverage,
+ memberMemoryConsumptionGredient, memberMemoryConsumptionSecondDerivative, 1);
+ if(log.isDebugEnabled()) {
+ log.debug(String.format("[member-id] $s [predicted memory consumption] $s ", memberStatsContext.getMemberId()
+ , memberPredictedMemoryConsumption));
+ }
memoryConsumptionPredicted += memberPredictedMemoryConsumption;
++totalMemberCount;
}
[4/4] stratos git commit: Fix indentation of scaling.drl file to
adhere line limit
Posted by la...@apache.org.
Fix indentation of scaling.drl file to adhere line limit
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8ad5fef2
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8ad5fef2
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8ad5fef2
Branch: refs/heads/master
Commit: 8ad5fef242496e56d0a849280f8871df930062e5
Parents: ce64e75
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Mar 17 11:47:01 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Mar 17 11:47:01 2015 +0530
----------------------------------------------------------------------
.../src/main/conf/drools/scaling.drl | 69 +++++++++++++-------
1 file changed, 47 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/8ad5fef2/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 f37c773..2f71ce3 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
@@ -64,8 +64,10 @@ dialect "mvel"
loadThresholds : LoadThresholds() from autoscalePolicy.getLoadThresholds()
partitionAlgorithm : PartitionAlgorithm() from delegator.getPartitionAlgorithm(algorithmName)
- eval(log.debug("Running scale up rule: [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster] " + clusterId))
- eval(log.debug("[scaling] [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster] " + clusterId + " Algorithm name: " + algorithmName))
+ eval(log.debug("Running scale up rule: [network-partition] " + clusterInstanceContext.getNetworkPartitionId() +
+ " [cluster] " + clusterId))
+ eval(log.debug("[scaling] [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster] "
+ + clusterId + " Algorithm name: " + algorithmName))
rifThreshold : Float() from loadThresholds.getRequestsInFlightThreshold()
@@ -89,11 +91,17 @@ dialect "mvel"
requestsServedPerInstance : Float() from clusterInstanceContext.getRequestsServedPerInstance()
averageRequestsServedPerInstance : Float() from clusterInstanceContext.getAverageRequestsServedPerInstance()
- numberOfInstancesReuquiredBasedOnRif : Integer() from delegator.getNumberOfInstancesRequiredBasedOnRif(rifPredictedValue, requestsServedPerInstance, averageRequestsServedPerInstance, arspiReset)
- numberOfInstancesReuquiredBasedOnMemoryConsumption : Integer() from delegator.getNumberOfInstancesRequiredBasedOnMemoryConsumption(mcThreshold, mcPredictedValue, minInstancesCount, maxInstancesCount)
- numberOfInstancesReuquiredBasedOnLoadAverage : Integer() from delegator.getNumberOfInstancesRequiredBasedOnLoadAverage(laThreshold, laPredictedValue, minInstancesCount)
+ numberOfInstancesReuquiredBasedOnRif : Integer() from delegator.getNumberOfInstancesRequiredBasedOnRif(
+ rifPredictedValue, requestsServedPerInstance, averageRequestsServedPerInstance, arspiReset)
+ numberOfInstancesReuquiredBasedOnMemoryConsumption : Integer() from
+ delegator.getNumberOfInstancesRequiredBasedOnMemoryConsumption(mcThreshold, mcPredictedValue, minInstancesCount,
+ maxInstancesCount)
+ numberOfInstancesReuquiredBasedOnLoadAverage : Integer() from
+ delegator.getNumberOfInstancesRequiredBasedOnLoadAverage(laThreshold, laPredictedValue, minInstancesCount)
- numberOfRequiredInstances : Integer() from delegator.getMaxNumberOfInstancesRequired(numberOfInstancesReuquiredBasedOnRif, numberOfInstancesReuquiredBasedOnMemoryConsumption ,mcReset ,numberOfInstancesReuquiredBasedOnLoadAverage, laReset)
+ numberOfRequiredInstances : Integer() from delegator.getMaxNumberOfInstancesRequired(
+ numberOfInstancesReuquiredBasedOnRif, numberOfInstancesReuquiredBasedOnMemoryConsumption, mcReset,
+ numberOfInstancesReuquiredBasedOnLoadAverage, laReset)
@@ -115,7 +123,9 @@ dialect "mvel"
then
- log.debug("[scaling] Number of required instances based on stats: " + numberOfRequiredInstances + " [active instances count] " + activeInstancesCount + " [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster] " + clusterId);
+ log.debug("[scaling] Number of required instances based on stats: " + numberOfRequiredInstances + " " +
+ "[active instances count] " + activeInstancesCount + " [network-partition] " +
+ clusterInstanceContext.getNetworkPartitionId() + " [cluster] " + clusterId);
int nonTerminatedMembers = clusterInstanceContext.getNonTerminatedMemberCount();
if(scaleUp){
@@ -132,7 +142,8 @@ dialect "mvel"
+ " [instance id]" + clusterInstanceContext.getId() + " [max] " + clusterMaxMembers
+ " [number of required instances] " + numberOfRequiredInstances
+ " [additional instances to be created] " + additionalInstances);
- delegator.delegateScalingOverMaxNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), clusterInstanceContext.getId());
+ delegator.delegateScalingOverMaxNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(),
+ clusterInstanceContext.getId());
} else {
additionalInstances = numberOfRequiredInstances - nonTerminatedMembers;
@@ -140,11 +151,13 @@ dialect "mvel"
clusterInstanceContext.resetScaleDownRequestsCount();
- log.debug("[scale-up] " + " [has scaling dependents] " + clusterInstanceContext.hasScalingDependants() + " [cluster] " + clusterId );
+ log.debug("[scale-up] " + " [has scaling dependents] " + clusterInstanceContext.hasScalingDependants() +
+ " [cluster] " + clusterId );
if(clusterInstanceContext.hasScalingDependants()) {
log.debug("[scale-up] Notifying dependencies [cluster] " + clusterId);
- delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), clusterInstanceContext.getId(), numberOfRequiredInstances, clusterInstanceContext.getMinInstanceCount());
+ delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(),
+ clusterInstanceContext.getId(), numberOfRequiredInstances, clusterInstanceContext.getMinInstanceCount());
} else {
boolean partitionsAvailable = true;
@@ -152,7 +165,8 @@ dialect "mvel"
while(count != additionalInstances && partitionsAvailable){
- ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)partitionAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
+ ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)
+ partitionAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
if(partitionContext != null){
log.info("[scale-up] Partition available, hence trying to spawn an instance to scale up!" );
@@ -171,7 +185,8 @@ dialect "mvel"
notifying to parent for possible group scaling or app bursting.
[cluster] " + clusterId + " [instance id]" + clusterInstanceContext.getId() +
" [max] " + clusterMaxMembers);
- delegator.delegateScalingOverMaxNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), clusterInstanceContext.getId());
+ delegator.delegateScalingOverMaxNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(),
+ clusterInstanceContext.getId());
}
} else if(scaleDown){
@@ -180,18 +195,21 @@ dialect "mvel"
log.debug("[scale-down] Decided to Scale down [cluster] " + clusterId);
if(clusterInstanceContext.getScaleDownRequestsCount() > 2 ){
- log.debug("[scale-down] Reached scale down requests threshold [cluster] " + clusterId + " Count " + clusterInstanceContext.getScaleDownRequestsCount());
+ log.debug("[scale-down] Reached scale down requests threshold [cluster] " + clusterId + " Count " +
+ clusterInstanceContext.getScaleDownRequestsCount());
if(clusterInstanceContext.hasScalingDependants()) {
log.debug("[scale-up] Notifying dependencies [cluster] " + clusterId);
- delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), clusterInstanceContext.getId(), numberOfRequiredInstances, clusterInstanceContext.getMinInstanceCount());
+ delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(),
+ clusterInstanceContext.getId(), numberOfRequiredInstances, clusterInstanceContext.getMinInstanceCount());
} else{
MemberStatsContext selectedMemberStatsContext = null;
double lowestOverallLoad = 0.0;
boolean foundAValue = false;
- ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext) partitionAlgorithm.getNextScaleDownPartitionContext((clusterInstanceContext.getPartitionCtxtsAsAnArray()));
+ ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)
+ partitionAlgorithm.getNextScaleDownPartitionContext((clusterInstanceContext.getPartitionCtxtsAsAnArray()));
if(partitionContext != null){
log.info("[scale-down] Partition available to scale down ");
// log.debug("[scale-down] " + " [partition] " + partition.getId() + " [cluster] " + clusterId);
@@ -212,15 +230,19 @@ dialect "mvel"
MemoryConsumption memoryConsumption = memberStatsContext.getMemoryConsumption();
log.debug("[scale-down] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] "
- + clusterId + " [member] " + memberStatsContext.getMemberId() + " Memory consumption: " + memoryConsumption);
+ + clusterId + " [member] " + memberStatsContext.getMemberId() + " Memory consumption: " +
+ memoryConsumption);
- double predictedCpu = delegator.getPredictedValueForNextMinute(loadAverage.getAverage(),loadAverage.getGradient(),loadAverage.getSecondDerivative(), 1);
+ double predictedCpu = delegator.getPredictedValueForNextMinute(loadAverage.getAverage(),
+ loadAverage.getGradient(),loadAverage.getSecondDerivative(), 1);
log.debug("[scale-down] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] "
+ clusterId + " [member] " + memberStatsContext.getMemberId() + " Predicted CPU: " + predictedCpu);
- double predictedMemoryConsumption = delegator.getPredictedValueForNextMinute(memoryConsumption.getAverage(),memoryConsumption.getGradient(),memoryConsumption.getSecondDerivative(), 1);
+ double predictedMemoryConsumption = delegator.getPredictedValueForNextMinute(
+ memoryConsumption.getAverage(),memoryConsumption.getGradient(),memoryConsumption.getSecondDerivative(), 1);
log.debug("[scale-down] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] "
- + clusterId + " [member] " + memberStatsContext.getMemberId() + " Predicted memory consumption: " + predictedMemoryConsumption);
+ + clusterId + " [member] " + memberStatsContext.getMemberId() + " Predicted memory consumption: " +
+ predictedMemoryConsumption);
double overallLoad = (predictedCpu + predictedMemoryConsumption) / 2;
log.debug("[scale-down] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] "
@@ -249,15 +271,18 @@ dialect "mvel"
}
}
} else{
- log.debug("[scale-down] Not reached scale down requests threshold. " + clusterId + " Count " + clusterInstanceContext.getScaleDownRequestsCount());
+ log.debug("[scale-down] Not reached scale down requests threshold. " + clusterId + " Count " +
+ clusterInstanceContext.getScaleDownRequestsCount());
clusterInstanceContext.increaseScaleDownRequestsCount();
}
} else {
- log.info("[scale-down] Min is reached, hence not scaling down [cluster] " + clusterId + " [instance id]" + clusterInstanceContext.getId());
+ log.info("[scale-down] Min is reached, hence not scaling down [cluster] " + clusterId + " [instance id]"
+ + clusterInstanceContext.getId());
if(clusterInstanceContext.isInGroupScalingEnabledSubtree()){
- delegator.delegateScalingDownBeyondMinNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), clusterInstanceContext.getId());
+ delegator.delegateScalingDownBeyondMinNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(),
+ clusterInstanceContext.getId());
}
}
} else{
[2/4] stratos git commit: Formatting RuleTasksDelegator class and
removing unused lines
Posted by la...@apache.org.
Formatting RuleTasksDelegator class and removing unused lines
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c595ef8f
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c595ef8f
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c595ef8f
Branch: refs/heads/master
Commit: c595ef8fea98455ddbec9dda4168feb8bb77b02e
Parents: efe1f79
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Mar 17 11:29:00 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Mar 17 11:29:00 2015 +0530
----------------------------------------------------------------------
.../autoscaler/rule/RuleTasksDelegator.java | 49 +++++++++-----------
1 file changed, 23 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/c595ef8f/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 a5571b9..c4d643b 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
@@ -34,9 +34,7 @@ import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext;
import org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher;
-import org.apache.stratos.autoscaler.exception.cartridge.TerminationException;
import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
-import org.apache.stratos.autoscaler.util.AutoscalerConstants;
import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
import org.apache.stratos.common.client.CloudControllerServiceClient;
import org.apache.stratos.common.constants.StratosConstants;
@@ -46,8 +44,6 @@ import org.apache.stratos.common.constants.StratosConstants;
*/
public class RuleTasksDelegator {
- public static final double SCALE_UP_FACTOR = 0.8; //get from config
- public static final double SCALE_DOWN_FACTOR = 0.2;
private static boolean arspiIsSet = false;
private static final Log log = LogFactory.getLog(RuleTasksDelegator.class);
@@ -89,12 +85,12 @@ public class RuleTasksDelegator {
public int getNumberOfInstancesRequiredBasedOnMemoryConsumption(float threshold, double predictedValue,
int min, int max) {
double numberOfAdditionalInstancesRequired = 0;
- if(predictedValue != threshold) {
+ if (predictedValue != threshold) {
float scalingRange = 100 - threshold;
int instanceRange = max - min;
- if(instanceRange != 0){
+ if (instanceRange != 0) {
float gradient = scalingRange / instanceRange;
numberOfAdditionalInstancesRequired = (predictedValue - threshold) / gradient;
@@ -108,7 +104,7 @@ public class RuleTasksDelegator {
int min) {
double numberOfInstances;
- if(threshold != 0) {
+ if (threshold != 0) {
numberOfInstances = (min * predictedValue) / threshold;
return (int) Math.ceil(numberOfInstances);
@@ -144,7 +140,7 @@ public class RuleTasksDelegator {
PartitionAlgorithm autoscaleAlgorithm = null;
//FIXME to not parse for algo when partition is chosen by the parent
- if(partitionAlgorithm == null) {
+ if (partitionAlgorithm == null) {
//Send one after another as default
partitionAlgorithm = StratosConstants.PARTITION_ONE_AFTER_ANOTHER_ALGORITHM_ID;
}
@@ -176,10 +172,11 @@ public class RuleTasksDelegator {
/**
* Invoked from drools to start an instance.
+ *
* @param clusterMonitorPartitionContext Cluster monitor partition context
- * @param clusterId Cluster id
- * @param clusterInstanceId Instance id
- * @param isPrimary Is a primary member
+ * @param clusterId Cluster id
+ * @param clusterInstanceId Instance id
+ * @param isPrimary Is a primary member
*/
public void delegateSpawn(ClusterLevelPartitionContext clusterMonitorPartitionContext, String clusterId,
String clusterInstanceId, boolean isPrimary) {
@@ -188,8 +185,8 @@ public class RuleTasksDelegator {
String nwPartitionId = clusterMonitorPartitionContext.getNetworkPartitionId();
// Calculate accumulation of minimum counts of all the partition of current network partition
- int minimumCountOfNetworkPartition = 0;
- ClusterMonitor clusterMonitor = (ClusterMonitor) AutoscalerContext.getInstance().getClusterMonitor(clusterId);
+ int minimumCountOfNetworkPartition;
+ ClusterMonitor clusterMonitor = AutoscalerContext.getInstance().getClusterMonitor(clusterId);
ClusterContext clusterContext = (ClusterContext) clusterMonitor.getClusterContext();
ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext =
clusterContext.getNetworkPartitionCtxt(nwPartitionId);
@@ -230,7 +227,7 @@ public class RuleTasksDelegator {
public void delegateScalingDependencyNotification(String clusterId, String networkPartitionId, String instanceId,
int requiredInstanceCount, int minimumInstanceCount) {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug("Scaling dependent notification is going to the [parentInstance] " + instanceId);
}
//Notify parent for checking scaling dependencies
@@ -244,7 +241,7 @@ public class RuleTasksDelegator {
}
public void delegateScalingOverMaxNotification(String clusterId, String networkPartitionId, String instanceId) {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug("Scaling max out notification is going to the [parentInstance] " + instanceId);
}
//Notify parent for checking scaling dependencies
@@ -257,7 +254,7 @@ public class RuleTasksDelegator {
}
public void delegateScalingDownBeyondMinNotification(String clusterId, String networkPartitionId, String instanceId) {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug("Scaling down lower min notification is going to the [parentInstance] " + instanceId);
}
//Notify parent for checking scaling dependencies
@@ -276,19 +273,19 @@ public class RuleTasksDelegator {
if (clusterMonitorPartitionContext.activeMemberAvailable(memberId)) {
log.info(String.format("[scale-down] Moving active member to termination pending list [member id] %s " +
- "[partition] %s [network partition] %s" , memberId,
+ "[partition] %s [network partition] %s", memberId,
clusterMonitorPartitionContext.getPartitionId(),
clusterMonitorPartitionContext.getNetworkPartitionId()));
- clusterMonitorPartitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
- clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
+ clusterMonitorPartitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
+ clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
} else if (clusterMonitorPartitionContext.pendingMemberAvailable(memberId)) {
log.info(String.format("[scale-down] Moving pending member to termination pending list [member id] %s " +
- "[partition] %s [network partition] %s" , memberId,
+ "[partition] %s [network partition] %s", memberId,
clusterMonitorPartitionContext.getPartitionId(),
clusterMonitorPartitionContext.getNetworkPartitionId()));
- clusterMonitorPartitionContext.movePendingMemberToObsoleteMembers(memberId);
- clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
+ clusterMonitorPartitionContext.movePendingMemberToObsoleteMembers(memberId);
+ clusterMonitorPartitionContext.removeMemberStatsContext(memberId);
}
} catch (Exception e) {
log.error("[scale-down] Cannot move member to termination pending list ", e);
@@ -314,7 +311,7 @@ public class RuleTasksDelegator {
CloudControllerServiceClient.getInstance().terminateInstance(memberId);
} catch (Exception e) {
log.error("Cannot terminate instance", e);
- }
+ }
}
//Grouping
@@ -329,7 +326,7 @@ public class RuleTasksDelegator {
}
} catch (Exception e) {
log.error("Cannot terminate instance", e);
- }
+ }
}
public int getPredictedReplicasForStat(int minReplicas, float statUpperLimit, float statPredictedValue) {
@@ -353,7 +350,7 @@ public class RuleTasksDelegator {
double memberPredictedLoadAverage = getPredictedValueForNextMinute(memberAverageLoadAverage,
memberGredientLoadAverage, memberSecondDerivativeLoadAverage, 1);
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("[member-id] $s [predicted load average] $s ", memberStatsContext.getMemberId()
, memberPredictedLoadAverage));
}
@@ -383,7 +380,7 @@ public class RuleTasksDelegator {
double memberPredictedMemoryConsumption = getPredictedValueForNextMinute(memberMemoryConsumptionAverage,
memberMemoryConsumptionGredient, memberMemoryConsumptionSecondDerivative, 1);
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("[member-id] $s [predicted memory consumption] $s ", memberStatsContext.getMemberId()
, memberPredictedMemoryConsumption));
}
[3/4] stratos git commit: Formatting ClusterMonitor class and
removing unused lines
Posted by la...@apache.org.
Formatting ClusterMonitor class and removing unused lines
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ce64e751
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ce64e751
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ce64e751
Branch: refs/heads/master
Commit: ce64e7514147c59f56d515ab27ffe77b804c8a00
Parents: c595ef8
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Mar 17 11:31:56 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Mar 17 11:31:56 2015 +0530
----------------------------------------------------------------------
.../monitor/cluster/ClusterMonitor.java | 68 ++++++++++----------
1 file changed, 35 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/ce64e751/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index dfaa582..3fcc315 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -229,10 +229,10 @@ public class ClusterMonitor extends Monitor implements Runnable {
* then won't send the notification to parent.
*/
ClusterInstance instance = (ClusterInstance) this.instanceIdToInstanceMap.get(instanceId);
- if(instance == null) {
+ if (instance == null) {
log.warn("The required cluster [instance] " + instanceId + " not found in the ClusterMonitor");
} else {
- if(instance.getStatus() != status) {
+ if (instance.getStatus() != status) {
instance.setStatus(status);
}
/*if (instance.getStatus() == ClusterStatus.Inactive && !this.hasStartupDependents) {
@@ -386,27 +386,27 @@ public class ClusterMonitor extends Monitor implements Runnable {
return groupScalingEnabledSubtree;
}
-
- private static void createClusterInstance(String serviceType,
- String clusterId, String alias, String instanceId,
- String partitionId, String networkPartitionId) {
-
- try {
- CloudControllerServiceClient.getInstance().createClusterInstance(
- serviceType, clusterId, alias, instanceId, partitionId,
- networkPartitionId);
- } catch (RemoteException e) {
- String msg = " Exception occurred in creating cluster instance with cluster-id [" + clusterId
- + "] instance-id ["+instanceId+"] service-type ["+serviceType+"]"
- + "] alias ["+alias+"] partition-id ["+partitionId+"]"
- + "] network-parition-id ["+networkPartitionId+"]"
- + " .Reason ["+e.getMessage()+"]" ;
- log.error(msg);
- throw new RuntimeException(msg, e);
- }
-
- }
+ private static void createClusterInstance(String serviceType,
+ String clusterId, String alias, String instanceId,
+ String partitionId, String networkPartitionId) {
+
+ try {
+ CloudControllerServiceClient.getInstance().createClusterInstance(
+ serviceType, clusterId, alias, instanceId, partitionId,
+ networkPartitionId);
+ } catch (RemoteException e) {
+ String msg = " Exception occurred in creating cluster instance with cluster-id [" + clusterId
+ + "] instance-id [" + instanceId + "] service-type [" + serviceType + "]"
+ + "] alias [" + alias + "] partition-id [" + partitionId + "]"
+ + "] network-parition-id [" + networkPartitionId + "]"
+ + " .Reason [" + e.getMessage() + "]";
+ log.error(msg);
+ throw new RuntimeException(msg, e);
+ }
+
+
+ }
public void addClusterLevelNWPartitionContext(ClusterLevelNetworkPartitionContext clusterLevelNWPartitionCtxt) {
networkPartitionIdToClusterLevelNetworkPartitionCtxts.put(clusterLevelNWPartitionCtxt.getId(), clusterLevelNWPartitionCtxt);
@@ -685,9 +685,9 @@ public class ClusterMonitor extends Monitor implements Runnable {
log.info("Parent scaling event received to [cluster]: " + this.getClusterId()
- + ", [network partition]: " + scalingEvent.getNetworkPartitionId()
- + ", [event] " + scalingEvent.getId() + ", [group instance] " + scalingEvent.getInstanceId()
- + ", [factor] " + scalingEvent.getFactor());
+ + ", [network partition]: " + scalingEvent.getNetworkPartitionId()
+ + ", [event] " + scalingEvent.getId() + ", [group instance] " + scalingEvent.getInstanceId()
+ + ", [factor] " + scalingEvent.getFactor());
this.scalingFactorBasedOnDependencies = scalingEvent.getFactor();
@@ -1317,7 +1317,7 @@ public class ClusterMonitor extends Monitor implements Runnable {
ClusterInstanceContext instanceContext =
(ClusterInstanceContext) getAllNetworkPartitionCtxts().get(networkPartitionId)
- .getInstanceContext(instanceId);
+ .getInstanceContext(instanceId);
boolean allMovedToObsolete = true;
for (ClusterLevelPartitionContext partitionContext : instanceContext.getPartitionCtxts()) {
if (log.isInfoEnabled()) {
@@ -1355,14 +1355,14 @@ public class ClusterMonitor extends Monitor implements Runnable {
}
partitionContext.movePendingMemberToObsoleteMembers(memberId);
}
- if(partitionContext.getTotalMemberCount() == 0) {
+ if (partitionContext.getTotalMemberCount() == 0) {
allMovedToObsolete = allMovedToObsolete && true;
} else {
allMovedToObsolete = false;
}
}
- if(allMovedToObsolete) {
+ if (allMovedToObsolete) {
monitor.monitor();
}
}
@@ -1375,19 +1375,21 @@ public class ClusterMonitor extends Monitor implements Runnable {
return ((ClusterContext) this.clusterContext).getNetworkPartitionCtxts();
}
- public ClusterInstanceContext getClusterInstanceContext(String networkPartitionId, String instanceId) {Map<String, ClusterLevelNetworkPartitionContext> clusterLevelNetworkPartitionContextMap =
+ public ClusterInstanceContext getClusterInstanceContext(String networkPartitionId, String instanceId) {
+ Map<String,
+ ClusterLevelNetworkPartitionContext> clusterLevelNetworkPartitionContextMap =
((ClusterContext) this.clusterContext).getNetworkPartitionCtxts();
- if(StringUtils.isBlank(networkPartitionId)) {
+ if (StringUtils.isBlank(networkPartitionId)) {
throw new RuntimeException("Network partition id is null");
}
ClusterLevelNetworkPartitionContext networkPartitionContext =
clusterLevelNetworkPartitionContextMap.get(networkPartitionId);
- if(networkPartitionContext == null) {
+ if (networkPartitionContext == null) {
throw new RuntimeException("Network partition context not found: [network-partition-id] " +
- networkPartitionId);
+ networkPartitionId);
}
ClusterInstanceContext instanceContext = (ClusterInstanceContext) networkPartitionContext.
- getInstanceContext(instanceId);
+ getInstanceContext(instanceId);
return instanceContext;
}