Updated Branches: refs/heads/master faca01666 -> 560b1c5fc
changing memberCountToBeIncreased in rool file Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/17470032 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/17470032 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/17470032 Branch: refs/heads/master Commit: 174700322f835438f41280f4060b26b4265ed12f Parents: eacb65f Author: Udara Liyanage <[email protected]> Authored: Wed Nov 27 12:17:21 2013 -0500 Committer: Udara Liyanage <[email protected]> Committed: Wed Nov 27 12:17:21 2013 -0500 ---------------------------------------------------------------------- .../distribution/src/main/conf/autoscaler.drl | 89 +++++++++----------- 1 file changed, 41 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/17470032/products/autoscaler/modules/distribution/src/main/conf/autoscaler.drl ---------------------------------------------------------------------- diff --git a/products/autoscaler/modules/distribution/src/main/conf/autoscaler.drl b/products/autoscaler/modules/distribution/src/main/conf/autoscaler.drl index e824444..c551d9a 100644 --- a/products/autoscaler/modules/distribution/src/main/conf/autoscaler.drl +++ b/products/autoscaler/modules/distribution/src/main/conf/autoscaler.drl @@ -25,7 +25,6 @@ import org.apache.stratos.autoscaler.AutoscalerContext; import org.apache.stratos.autoscaler.ClusterContext; import org.apache.stratos.autoscaler.Constants; import org.apache.stratos.autoscaler.policy.PolicyManager; -import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; import org.apache.stratos.autoscaler.policy.model.Partition; import org.apache.stratos.autoscaler.policy.model.PartitionGroup; import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy; @@ -59,7 +58,7 @@ dialect "mvel" then - int memberCountToBeIncreased = 1; + int memberCountToBeIncreased = $partition.getPartitionMembersMin() - $clusterContext.getMemberCount($partition.getId()); if($evaluator.delegateSpawn($partition,$cluster.getClusterId(), memberCountToBeIncreased)){ $clusterContext.increaseMemberCountInPartitionBy($partition.getId(), memberCountToBeIncreased); } @@ -68,57 +67,51 @@ end rule "Scaler-up Rule" dialect "mvel" when - $service : Service () - $cluster : Cluster () from $service.getClusters() - $autoScalingPolicy : AutoscalePolicy(id == $cluster.getAutoscalePolicyName() ) from $manager.getAutoscalePolicyList() - $deploymentPolicy : DeploymentPolicy(id == $cluster.getDeploymentPolicyName() ) from $manager.getDeploymentPolicyList() - $partitionGroup : PartitionGroup () from $deploymentPolicy.getPartitionGroups() - $clusterContext : ClusterContext() from $context.getClusterContext($cluster.getClusterId()) - $loadThresholds :LoadThresholds() from $autoScalingPolicy.getLoadThresholds() - - autoscaleAlgorithm : AutoscaleAlgorithm() from $evaluator.getAutoscaleAlgorithm($partitionGroup.getPartitionAlgo()) - lbStatAverage : Float() from $clusterContext.getAverageRequestsInFlight() - lbStatGradient : Float() from $clusterContext.getRequestsInFlightGradient() - lbStatSecondDerivative : Float() from $clusterContext.getRequestsInFlightSecondDerivative() - averageLimit : Float() from $loadThresholds.getRequestsInFlight().getAverage() - gradientLimit : Float() from $loadThresholds.getRequestsInFlight().getGradient() - secondDerivative : Float() from $loadThresholds.getRequestsInFlight().getSecondDerivative() - partition : Partition() from autoscaleAlgorithm.getNextScaleUpPartition($partitionGroup, $cluster.getClusterId()) - eval (lbStatAverage > averageLimit && lbStatGradient > gradientLimit) + $service : Service () + $cluster : Cluster () from $service.getClusters() + $policy : AutoscalePolicy(id == $cluster.autoscalePolicyName ) from $manager.getPolicyList() + $clusterContext : ClusterContext() from $context.getClusterContext($cluster.getClusterId()) + $loadThresholds :LoadThresholds() from $policy.getLoadThresholds() + autoscaleAlgorithm : AutoscaleAlgorithm() from $evaluator.getAutoscaleAlgorithm($policy.getHAPolicy().getPartitionAlgo()) + lbStatAverage : Float() from $clusterContext.getAverageRequestsInFlight() + lbStatGradient : Float() from $clusterContext.getRequestsInFlightGradient() + lbStatSecondDerivative : Float() from $clusterContext.getRequestsInFlightSecondDerivative() + averageLimit : Float() from $loadThresholds.getRequestsInFlight().getAverage() + gradientLimit : Float() from $loadThresholds.getRequestsInFlight().getGradient() + secondDerivative : Float() from $loadThresholds.getRequestsInFlight().getSecondDerivative() + partition : Partition() from autoscaleAlgorithm.getNextScaleUpPartition($cluster.getClusterId()) + eval (lbStatAverage > averageLimit && lbStatGradient > gradientLimit) then - int numberOfInstancesToBeSpawned = (lbStatSecondDerivative > secondDerivative) ? 2 : 1; // take from a config - $evaluator.delegateSpawn(partition,$cluster.getClusterId(), numberOfInstancesToBeSpawned); - $clusterContext.setRequestsInFlightGradient(gradientLimit); - $clusterContext.setRequestsInFlightSecondDerivative(secondDerivative); - $clusterContext.setAverageRequestsInFlight(averageLimit); + int numberOfInstancesToBeSpawned = (lbStatSecondDerivative > secondDerivative) ? 2 : 1; // take from a config + $evaluator.delegateSpawn(partition,$cluster.getClusterId(), numberOfInstancesToBeSpawned); + $clusterContext.setRequestsInFlightGradient(gradientLimit); + $clusterContext.setRequestsInFlightSecondDerivative(secondDerivative); + $clusterContext.setAverageRequestsInFlight(averageLimit); end rule "Scaler-down Rule" dialect "mvel" when - $service : Service () - $cluster : Cluster () from $service.getClusters() - $autoScalingPolicy : AutoscalePolicy(id == $cluster.getAutoscalePolicyName() ) from $manager.getAutoscalePolicyList() - $deploymentPolicy : DeploymentPolicy(id == $cluster.getDeploymentPolicyName() ) from $manager.getDeploymentPolicyList() - $partitionGroup : PartitionGroup () from $deploymentPolicy.getPartitionGroups() - $clusterContext : ClusterContext() from $context.getClusterContext($cluster.getClusterId()) - $loadThresholds :LoadThresholds() from $autoScalingPolicy.getLoadThresholds() - - autoscaleAlgorithm : AutoscaleAlgorithm() from $evaluator.getAutoscaleAlgorithm($partitionGroup.getPartitionAlgo()) - lbStatAverage : Float() from $clusterContext.getAverageRequestsInFlight() - lbStatGradient : Float() from $clusterContext.getRequestsInFlightGradient() - lbStatSecondDerivative : Float() from $clusterContext.getRequestsInFlightSecondDerivative() - averageLimit : Float() from $loadThresholds.getRequestsInFlight().getAverage() - gradientLimit : Float() from $loadThresholds.getRequestsInFlight().getGradient() - secondDerivative : Float() from $loadThresholds.getRequestsInFlight().getSecondDerivative() - scaleDownSlowerMarginOfGradient : Float() from $loadThresholds.getRequestsInFlight().getScaleDownMarginOfGradient() - scaleDownSlowerMarginOfSecondDerivative : Float() from $loadThresholds.getRequestsInFlight().getScaleDownMarginOfSecondDerivative() - partition : Partition() from autoscaleAlgorithm.getNextScaleDownPartition($partitionGroup, $cluster.getClusterId()) - eval(lbStatAverage < averageLimit && lbStatGradient < gradientLimit - scaleDownSlowerMarginOfSecondDerivative - && lbStatSecondDerivative < secondDerivative - scaleDownSlowerMarginOfSecondDerivative) + $service : Service () + $cluster : Cluster () from $service.getClusters() + $policy : AutoscalePolicy(id == $cluster.autoscalePolicyName ) from $manager.getPolicyList() + $clusterContext : ClusterContext() from $context.getClusterContext($cluster.getClusterId()) + $loadThresholds :LoadThresholds() from $policy.getLoadThresholds() + autoscaleAlgorithm : AutoscaleAlgorithm() from $evaluator.getAutoscaleAlgorithm($policy.getHAPolicy().getPartitionAlgo()) + lbStatAverage : Float() from $clusterContext.getAverageRequestsInFlight() + lbStatGradient : Float() from $clusterContext.getRequestsInFlightGradient() + lbStatSecondDerivative : Float() from $clusterContext.getRequestsInFlightSecondDerivative() + averageLimit : Float() from $loadThresholds.getRequestsInFlight().getAverage() + gradientLimit : Float() from $loadThresholds.getRequestsInFlight().getGradient() + secondDerivative : Float() from $loadThresholds.getRequestsInFlight().getSecondDerivative() + scaleDownSlowerMarginOfGradient : Float() from $loadThresholds.getRequestsInFlight().getScaleDownMarginOfGradient() + scaleDownSlowerMarginOfSecondDerivative : Float() from $loadThresholds.getRequestsInFlight().getScaleDownMarginOfSecondDerivative() + partition : Partition() from autoscaleAlgorithm.getNextScaleDownPartition($cluster.getClusterId()) + eval(lbStatAverage < averageLimit && lbStatGradient < gradientLimit - scaleDownSlowerMarginOfSecondDerivative + && lbStatSecondDerivative < secondDerivative - scaleDownSlowerMarginOfSecondDerivative) then - $evaluator.delegateTerminate(partition,$cluster.getClusterId()); - $clusterContext.setRequestsInFlightGradient(gradientLimit); - $clusterContext.setRequestsInFlightSecondDerivative(secondDerivative); - $clusterContext.setAverageRequestsInFlight(averageLimit); + $evaluator.delegateTerminate(partition,$cluster.getClusterId()); + $clusterContext.setRequestsInFlightGradient(gradientLimit); + $clusterContext.setRequestsInFlightSecondDerivative(secondDerivative); + $clusterContext.setAverageRequestsInFlight(averageLimit); end
