[infinispan-commits] Infinispan SVN: r839 - in trunk/core/src/main/java/org/infinispan: factories and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Fri Sep 18 11:33:31 EDT 2009


Author: galder.zamarreno at jboss.com
Date: 2009-09-18 11:33:30 -0400 (Fri, 18 Sep 2009)
New Revision: 839

Modified:
   trunk/core/src/main/java/org/infinispan/config/Configuration.java
   trunk/core/src/main/java/org/infinispan/factories/LockManagerFactory.java
   trunk/core/src/main/java/org/infinispan/remoting/rpc/RpcManagerImpl.java
Log:
Briefly documented LockManagerFactory and made several extra parameters configurable for state retrieval, removing the corresponding TODOs.

Modified: trunk/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-09-18 15:29:58 UTC (rev 838)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java	2009-09-18 15:33:30 UTC (rev 839)
@@ -44,6 +44,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Random;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -393,7 +394,23 @@
    public void setStateRetrievalTimeout(long stateRetrievalTimeout, TimeUnit timeUnit) {
       setStateRetrievalTimeout(timeUnit.toMillis(stateRetrievalTimeout));
    }
- 
+   
+   public void setStateRetrievalInitialRetryWaitTime(long initialRetryWaitTime) {
+      clustering.stateRetrieval.setInitialRetryWaitTime(initialRetryWaitTime);
+   }
+
+   public void setStateRetrievalInitialRetryWaitTime(long initialRetryWaitTime, TimeUnit timeUnit) {
+      setStateRetrievalInitialRetryWaitTime(timeUnit.toMillis(initialRetryWaitTime));
+   }
+
+   public void setStateRetrievalRetryWaitTimeIncreaseFactor(int retryWaitTimeIncreaseFactor) {
+      clustering.stateRetrieval.setRetryWaitTimeIncreaseFactor(retryWaitTimeIncreaseFactor);
+   }
+
+   public void setStateRetrievalNumRetries(int numRetries) {
+      clustering.stateRetrieval.setNumRetries(numRetries);
+   }
+
    public void setIsolationLevel(String isolationLevel) {
       if (isolationLevel == null) throw new ConfigurationException("Isolation level cannot be null", "IsolationLevel");
       locking.setIsolationLevel(IsolationLevel.valueOf(uc(isolationLevel)));
@@ -515,6 +532,18 @@
       return clustering.stateRetrieval.timeout;
    }
 
+   public long getStateRetrievalInitialRetryWaitTime() {
+      return clustering.stateRetrieval.initialRetryWaitTime;
+   }
+
+   public int getStateRetrievalRetryWaitTimeIncreaseFactor() {
+      return clustering.stateRetrieval.retryWaitTimeIncreaseFactor;
+   }
+
+   public int getStateRetrievalNumRetries() {
+      return clustering.stateRetrieval.numRetries;
+   }
+
    public boolean isUseLazyDeserialization() {
       return lazyDeserialization.enabled;
    }
@@ -1236,24 +1265,51 @@
       
       /** @configRef desc="Timeout for state transfer"*/
       @Dynamic      
-      protected Long timeout=10000L;     
+      protected Long timeout = 10000L;
       
+      /** @configRef desc="Initial wait time when backing off before retrying state transfer retrieval"*/
+      protected Long initialRetryWaitTime = 500L;
+      
+      /** @configRef desc="Wait time increase factor over successive state retrieval backoffs"*/
+      protected Integer retryWaitTimeIncreaseFactor = 2;
+      
+      /** @configRef desc="Number of state retrieval retries"*/
+      protected Integer numRetries = 5;
+      
       @XmlAttribute
       public void setFetchInMemoryState(Boolean fetchInMemoryState) {
          testImmutability("fetchInMemoryState");
          this.fetchInMemoryState = fetchInMemoryState;
       }
 
-      public void accept(ConfigurationBeanVisitor v) {
-         v.visitStateRetrievalType(this);
+      @XmlAttribute
+      public void setInitialRetryWaitTime(Long initialRetryWaitTime) {
+         testImmutability("initialWaitTime");
+         this.initialRetryWaitTime = initialRetryWaitTime;
       }
 
       @XmlAttribute
+      public void setRetryWaitTimeIncreaseFactor(Integer retryWaitTimeIncreaseFactor) {
+         testImmutability("retryWaitTimeIncreaseFactor");
+         this.retryWaitTimeIncreaseFactor = retryWaitTimeIncreaseFactor;
+      }
+
+      @XmlAttribute
+      public void setNumRetries(Integer numRetries) {
+         testImmutability("numRetries");
+         this.numRetries = numRetries;
+      }
+
+      @XmlAttribute
       public void setTimeout(Long timeout) {
          testImmutability("timeout");
          this.timeout = timeout;
       }
 
+      public void accept(ConfigurationBeanVisitor v) {
+         v.visitStateRetrievalType(this);
+      }
+
       @Override
       public boolean equals(Object o) {
          if (this == o) return true;
@@ -1261,9 +1317,11 @@
 
          StateRetrievalType that = (StateRetrievalType) o;
 
-         if (fetchInMemoryState != null ? !fetchInMemoryState.equals(that.fetchInMemoryState) : that.fetchInMemoryState != null)
-            return false;
+         if (fetchInMemoryState != null ? !fetchInMemoryState.equals(that.fetchInMemoryState) : that.fetchInMemoryState != null) return false;
          if (timeout != null ? !timeout.equals(that.timeout) : that.timeout != null) return false;
+         if (initialRetryWaitTime != null ? !initialRetryWaitTime.equals(that.initialRetryWaitTime) : that.initialRetryWaitTime != null) return false;
+         if (retryWaitTimeIncreaseFactor != null ? !retryWaitTimeIncreaseFactor.equals(that.retryWaitTimeIncreaseFactor) : that.retryWaitTimeIncreaseFactor != null) return false;
+         if (numRetries != null ? !numRetries.equals(that.numRetries) : that.numRetries != null) return false;
 
          return true;
       }
@@ -1272,6 +1330,9 @@
       public int hashCode() {
          int result = fetchInMemoryState != null ? fetchInMemoryState.hashCode() : 0;
          result = 31 * result + (timeout != null ? timeout.hashCode() : 0);
+         result = 31 * result + (initialRetryWaitTime != null ? initialRetryWaitTime.hashCode() : 0);
+         result = 31 * result + (retryWaitTimeIncreaseFactor != null ? retryWaitTimeIncreaseFactor.hashCode() : 0);
+         result = 31 * result + (numRetries != null ? numRetries.hashCode() : 0);
          return result;
       }
    }

Modified: trunk/core/src/main/java/org/infinispan/factories/LockManagerFactory.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/factories/LockManagerFactory.java	2009-09-18 15:29:58 UTC (rev 838)
+++ trunk/core/src/main/java/org/infinispan/factories/LockManagerFactory.java	2009-09-18 15:33:30 UTC (rev 839)
@@ -27,7 +27,7 @@
 import org.infinispan.util.concurrent.locks.LockManagerImpl;
 
 /**
- * // TODO: MANIK: Document this
+ * Factory class that creates instances of {@link LockManager}.
  *
  * @author Manik Surtani (<a href="mailto:manik at jboss.org">manik at jboss.org</a>)
  * @since 4.0

Modified: trunk/core/src/main/java/org/infinispan/remoting/rpc/RpcManagerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/remoting/rpc/RpcManagerImpl.java	2009-09-18 15:29:58 UTC (rev 838)
+++ trunk/core/src/main/java/org/infinispan/remoting/rpc/RpcManagerImpl.java	2009-09-18 15:33:30 UTC (rev 839)
@@ -26,7 +26,6 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.Random;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.atomic.AtomicLong;
@@ -113,11 +112,9 @@
 
    public void retrieveState(String cacheName, long timeout) throws StateTransferException {
       if (t.isSupportStateTransfer()) {
-         // TODO make these configurable
-         Random r = new Random();
-         int initialWaitTime = (r.nextInt(10) + 1) * 100; // millis
-         int waitTimeIncreaseFactor = 2;
-         int numRetries = 5;
+         long initialWaitTime = configuration.getStateRetrievalInitialRetryWaitTime();
+         int waitTimeIncreaseFactor = configuration.getStateRetrievalRetryWaitTimeIncreaseFactor();
+         int numRetries = configuration.getStateRetrievalNumRetries();
          List<Address> members = t.getMembers();
          if (members.size() < 2) {
             if (log.isDebugEnabled())
@@ -128,9 +125,9 @@
          boolean success = false;
 
          try {
-
+            long wait = initialWaitTime;
             outer:
-            for (int i = 0, wait = initialWaitTime; i < numRetries; i++) {
+            for (int i = 0; i < numRetries; i++) {
                for (Address member : members) {
                   if (!member.equals(t.getAddress())) {
                      try {



More information about the infinispan-commits mailing list