Repository: stratos Updated Branches: refs/heads/master c7bac9b4e -> 7bacd9e54
making obsolete member timeout configurable Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/7bacd9e5 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/7bacd9e5 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/7bacd9e5 Branch: refs/heads/master Commit: 7bacd9e54d29ce563fa9b4280340958b7159ffbb Parents: c7bac9b Author: R-Rajkumar <[email protected]> Authored: Sat Oct 25 11:10:26 2014 +0530 Committer: R-Rajkumar <[email protected]> Committed: Sat Oct 25 11:10:26 2014 +0530 ---------------------------------------------------------------------- .../stratos/autoscaler/PartitionContext.java | 23 +++++++++++--------- .../common/constants/StratosConstants.java | 6 ++++- .../distribution/src/main/conf/autoscaler.xml | 6 +++-- 3 files changed, 22 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/7bacd9e5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java index f5c4251..6afd2bb 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java @@ -33,6 +33,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.util.ConfUtil; import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition; import org.apache.stratos.cloud.controller.stub.pojo.MemberContext; +import org.apache.stratos.common.constants.StratosConstants; /** @@ -58,7 +59,7 @@ public class PartitionContext implements Serializable{ private Properties properties; // 15 mints as the default - private long expiryTime = 900000; + private long pendingMemberExpiryTime = 900000; // pending members private List<MemberContext> pendingMembers; @@ -82,7 +83,7 @@ public class PartitionContext implements Serializable{ this.activeMembers = new ArrayList<MemberContext>(); this.terminationPendingMembers = new ArrayList<MemberContext>(); - expiryTime = memberExpiryTime; + pendingMemberExpiryTime = memberExpiryTime; } public PartitionContext(Partition partition) { @@ -97,9 +98,11 @@ public class PartitionContext implements Serializable{ // check if a different value has been set for expiryTime XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); - expiryTime = conf.getLong("autoscaler.member.expiryTimeout", 900000); + pendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_MEMBER_EXPIRY_TIMEOUT, 900000); + obsoltedMemberExpiryTime = conf.getLong(StratosConstants.OBSOLETED_MEMBER_EXPIRY_TIMEOUT, 86400000); if (log.isDebugEnabled()) { - log.debug("Member expiry time is set to: " + expiryTime); + log.debug("Member expiry time is set to: " + pendingMemberExpiryTime); + log.debug("Member obsoleted expiry time is set to: " + obsoltedMemberExpiryTime); } Thread th = new Thread(new PendingMemberWatcher(this)); @@ -260,12 +263,12 @@ public class PartitionContext implements Serializable{ return true; } - public long getExpiryTime() { - return expiryTime; + public long getPendingMemberExpiryTime() { + return pendingMemberExpiryTime; } - public void setExpiryTime(long expiryTime) { - this.expiryTime = expiryTime; + public void setPendingMemberExpiryTime(long pendingMemberExpiryTime) { + this.pendingMemberExpiryTime = pendingMemberExpiryTime; } public Map<String, MemberContext> getObsoletedMembers() { @@ -385,7 +388,7 @@ public class PartitionContext implements Serializable{ public void run() { while (true) { - long expiryTime = ctxt.getExpiryTime(); + long expiryTime = ctxt.getPendingMemberExpiryTime(); List<MemberContext> pendingMembers = ctxt.getPendingMembers(); synchronized (pendingMembers) { @@ -407,7 +410,7 @@ public class PartitionContext implements Serializable{ ctxt.addObsoleteMember(pendingMember); pendingMembersFailureCount++; if( pendingMembersFailureCount > PENDING_MEMBER_FAILURE_THRESHOLD){ - setExpiryTime(expiryTime * 2);//Doubles the expiry time after the threshold of failure exceeded + setPendingMemberExpiryTime(expiryTime * 2);//Doubles the expiry time after the threshold of failure exceeded //TODO Implement an alerting system: STRATOS-369 } } http://git-wip-us.apache.org/repos/asf/stratos/blob/7bacd9e5/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 72cbb26..95ff6e3 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 @@ -163,5 +163,9 @@ public class StratosConstants { // Policy and definition related constants public static final int PUBLIC_DEFINITION = 0; - + + // Autoscaler member timeout constants + public static final String PENDING_MEMBER_EXPIRY_TIMEOUT = "autoscaler.member.pendingMemberExpiryTimeout"; + public static final String OBSOLETED_MEMBER_EXPIRY_TIMEOUT = "autoscaler.member.obsoletedMemberExpiryTimeout"; } + http://git-wip-us.apache.org/repos/asf/stratos/blob/7bacd9e5/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 d04625e..0758c6d 100644 --- a/products/stratos/modules/distribution/src/main/conf/autoscaler.xml +++ b/products/stratos/modules/distribution/src/main/conf/autoscaler.xml @@ -38,8 +38,10 @@ <clientTimeout>300000</clientTimeout> </stratosManager> <member> - <!-->member expiry timeout (time waited till activation) in ms<--> - <expiryTimeout>900000</expiryTimeout> + <!-- this is the maximum time a member can be in pending member state --> + <pendingMemberExpiryTimeout>900000</pendingMemberExpiryTimeout> + <!-- this is the maximum time a member can be in obsoleted member state --> + <obsoletedMemberExpiryTimeout>86400000</obsoletedMemberExpiryTimeout> </member> <!-- monitor task interval --> <monitorInterval>60000</monitorInterval>
