You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/07/29 12:55:27 UTC
[06/12] stratos git commit: adding configurable setting in order to
spin and terminate instances in parallel
adding configurable setting in order to spin and terminate instances in parallel
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c0e24c32
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c0e24c32
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c0e24c32
Branch: refs/heads/master
Commit: c0e24c32beafbf0a57772ea110048a4d154b481a
Parents: 5b2af1a
Author: reka <rt...@gmail.com>
Authored: Mon Jul 27 14:54:27 2015 +0530
Committer: reka <rt...@gmail.com>
Committed: Wed Jul 29 16:11:07 2015 +0530
----------------------------------------------------------------------
.../partition/ClusterLevelPartitionContext.java | 15 ++++++++++++++-
.../stratos/common/constants/StratosConstants.java | 1 +
.../distribution/src/main/conf/autoscaler.xml | 1 +
3 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/c0e24c32/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
index 4bbd73a..3ef2e45 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
@@ -58,6 +58,8 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
// 15 mints as the default
private long pendingMemberExpiryTime = 900000;
+ //
+ private boolean spinTerminateParallel;
// pending members
private List<MemberContext> pendingMembers;
@@ -149,6 +151,7 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
pendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_MEMBER_EXPIRY_TIMEOUT, 900000);
obsoltedMemberExpiryTime = conf.getLong(StratosConstants.OBSOLETED_MEMBER_EXPIRY_TIMEOUT, 86400000);
+ spinTerminateParallel = conf.getBoolean(StratosConstants.SPIN_TERMINATE_PARALLEL, false);
terminationPendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_TERMINATION_MEMBER_EXPIRY_TIMEOUT, 1800000);
if (log.isDebugEnabled()) {
log.debug("Member expiry time is set to: " + pendingMemberExpiryTime);
@@ -484,7 +487,17 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
}
public int getNonTerminatedMemberCount() {
- return activeMembers.size() + pendingMembers.size();
+ int nonTerminatedMemberCount = 0;
+ if(spinTerminateParallel) {
+ // Returning all the pending members as there shouldn't be a spawning
+ // before complete termination.
+ // Will be applicable only when having min1*max1 situation
+ nonTerminatedMemberCount = activeMembers.size() + pendingMembers.size() +
+ terminationPendingMembers.size() + obsoletedMembers.size();
+ } else {
+ nonTerminatedMemberCount = activeMembers.size() + pendingMembers.size();
+ }
+ return nonTerminatedMemberCount;
}
public List<MemberContext> getActiveMembers() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/c0e24c32/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
index 1275f5c..d95907b 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
@@ -164,6 +164,7 @@ public class StratosConstants {
// member expiry timeout constants
public static final String PENDING_MEMBER_EXPIRY_TIMEOUT = "autoscaler.member.pendingMemberExpiryTimeout";
+ public static final String SPIN_TERMINATE_PARALLEL = "autoscaler.member.pendingMemberExpiryTimeout";
public static final String OBSOLETED_MEMBER_EXPIRY_TIMEOUT = "autoscaler.member.obsoletedMemberExpiryTimeout";
public static final String PENDING_TERMINATION_MEMBER_EXPIRY_TIMEOUT = "autoscaler.member.pendingTerminationMemberExpiryTimeout";
http://git-wip-us.apache.org/repos/asf/stratos/blob/c0e24c32/products/stratos/modules/distribution/src/main/conf/autoscaler.xml
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/autoscaler.xml b/products/stratos/modules/distribution/src/main/conf/autoscaler.xml
index 2577070..8c10e2e 100644
--- a/products/stratos/modules/distribution/src/main/conf/autoscaler.xml
+++ b/products/stratos/modules/distribution/src/main/conf/autoscaler.xml
@@ -37,6 +37,7 @@
<clientTimeout>300000</clientTimeout>
</identity>
<member>
+ <spinAfterTerminate>false</spinAfterTerminate>
<!-- this is the maximum time(ms) a member can be in pending member state -->
<pendingMemberExpiryTimeout>900000</pendingMemberExpiryTimeout>
<!-- this is the maximum time(ms) a member can be in obsoleted member state -->