[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