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>

Reply via email to