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/11 03:16:52 UTC
[1/2] stratos git commit: Improve mincheck tp spawn min instances at
once
Repository: stratos
Updated Branches:
refs/heads/4.1.0-test 5e3663561 -> baa13a0bb
Improve mincheck tp spawn min instances at once
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e0d4c2e0
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e0d4c2e0
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e0d4c2e0
Branch: refs/heads/4.1.0-test
Commit: e0d4c2e04a3abfced902827ed2aa3ac2828628c9
Parents: 5e36635
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Thu Dec 11 07:48:19 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Thu Dec 11 07:48:19 2014 +0530
----------------------------------------------------------------------
.../src/main/conf/drools/mincheck.drl | 42 +++++++++++++++-----
1 file changed, 33 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/e0d4c2e0/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
index c8a5df8..29b9793 100755
--- a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
@@ -53,8 +53,8 @@ global java.lang.String algorithmName;
rule "Minimum Rule"
dialect "mvel"
- when
- clusterInstanceContext : ClusterInstanceContext ()
+ when
+ clusterInstanceContext : ClusterInstanceContext ()
autoscaleAlgorithm : AutoscaleAlgorithm() from delegator.getAutoscaleAlgorithm(algorithmName)
@@ -62,16 +62,40 @@ dialect "mvel"
eval(log.debug("[min-check] [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster-instance] " + clusterInstanceContext.getId() + " Non terminated member count: " + clusterInstanceContext.getNonTerminatedMemberCount()))
eval(log.debug("[min-check] [network-partition] " + clusterInstanceContext.getNetworkPartitionId() + " [cluster-instance] " + clusterInstanceContext.getId() + " Minimum member count: " + clusterInstanceContext.getMinInstanceCount()))
- eval ( (isPrimary && (primaryMemberCount < clusterInstanceContext.getMinInstanceCount() )) || ( !isPrimary && (clusterInstanceContext.getNonTerminatedMemberCount() < clusterInstanceContext.getMinInstanceCount() )) )
+ eval ( (isPrimary && (primaryMemberCount < clusterInstanceContext.getMinInstanceCount())) || ( !isPrimary && (clusterInstanceContext.getNonTerminatedMemberCount() < clusterInstanceContext.getMinInstanceCount())) )
then
- ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)autoscaleAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
- if (isPrimary){
- log.debug("[min-check] true [primary] true [primary member count] " + primaryMemberCount);
- } else{
- log.debug("[min-check] true [primary] false");
+ int additionalInstances = 0;
+ if(isPrimary){
+
+ additionalInstances = clusterInstanceContext.getMinInstanceCount() - primaryMemberCount;
+ log.debug("[min-check] true [primary] true [primary member count] " + primaryMemberCount);
+ } else {
+
+ additionalInstances = clusterInstanceContext.getMinInstanceCount() - clusterInstanceContext.getNonTerminatedMemberCount();
+ log.debug("[min-check] true [primary] false [non terminated member count] " + clusterInstanceContext.getNonTerminatedMemberCount());
}
- delegator.delegateSpawn(partitionContext, clusterId, clusterInstanceContext.getId(), isPrimary);
+ int count = 0;
+ boolean partitionsAvailable = true;
+ while(count != additionalInstances && partitionsAvailable){
+
+ ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)autoscaleAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
+ if(partitionContext != null){
+
+ if (isPrimary){
+ } else{
+ }
+ delegator.delegateSpawn(partitionContext, clusterId, clusterInstanceContext.getId(), isPrimary);
+
+ log.info("[min-check] Partition available, hence trying to spawn an instance to fulfil minimum count!" );
+ log.debug("[min-check] " + " [partition] " + partitionContext.getPartitionId() + " [cluster] " + clusterId );
+ delegator.delegateSpawn(partitionContext, clusterId, clusterInstanceContext.getId(), isPrimary);
+ count++;
+ } else {
+
+ partitionsAvailable = false;
+ }
+ }
end
[2/2] stratos git commit: Improve scale check log
Posted by la...@apache.org.
Improve scale check log
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/baa13a0b
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/baa13a0b
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/baa13a0b
Branch: refs/heads/4.1.0-test
Commit: baa13a0bb662423d0b45826886edfb30c0008803
Parents: e0d4c2e
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Thu Dec 11 07:48:42 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Thu Dec 11 07:48:42 2014 +0530
----------------------------------------------------------------------
.../modules/distribution/src/main/conf/drools/scaling.drl | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/baa13a0b/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 03dd925..35d012b 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
@@ -123,14 +123,13 @@ dialect "mvel"
if (clusterInstanceContext.getNonTerminatedMemberCount() < clusterInstanceContext.getMaxInstanceCount()) {
int additionalInstances = numberOfRequiredInstances - activeInstancesCount ;
clusterInstanceContext.resetScaleDownRequestsCount();
- int count = 0;
//Calculating the factor scaling
float factor = numberOfRequiredInstances / clusterInstanceContext.getMinInstanceCount();
// delegator.delegateScalingDependencyNotification(clusterId, clusterInstanceContext.getId(), factor);
boolean partitionsAvailable = true;
-
+ int count = 0;
while(count != additionalInstances && partitionsAvailable){
ClusterLevelPartitionContext partitionContext = (ClusterLevelPartitionContext)autoscaleAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());
@@ -146,7 +145,7 @@ dialect "mvel"
}
}
} else{
- log.info("[scale-up] Max is reached, hence not scaling up [cluster] " + clusterId + " [instance id]" + clusterInstanceContext.getId());
+ log.info("[scale-up] Max is reached, hence not scaling up [cluster] " + clusterId + " [instance id]" + clusterInstanceContext.getId() + " [max] " + clusterInstanceContext.getMaxInstanceCount());
}
} else if(scaleDown){