[infinispan-commits] Infinispan SVN: r2459 - in branches/4.2.x/core/src/main/java/org/infinispan: statetransfer and 1 other directory.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Fri Oct 1 05:50:49 EDT 2010
Author: manik.surtani at jboss.com
Date: 2010-10-01 05:50:49 -0400 (Fri, 01 Oct 2010)
New Revision: 2459
Modified:
branches/4.2.x/core/src/main/java/org/infinispan/config/Configuration.java
branches/4.2.x/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java
Log:
[ISPN-661] (Make the timeout values for statetransfer flush configurable)
Modified: branches/4.2.x/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- branches/4.2.x/core/src/main/java/org/infinispan/config/Configuration.java 2010-09-30 14:08:13 UTC (rev 2458)
+++ branches/4.2.x/core/src/main/java/org/infinispan/config/Configuration.java 2010-10-01 09:50:49 UTC (rev 2459)
@@ -458,6 +458,18 @@
setStateRetrievalTimeout(timeUnit.toMillis(stateRetrievalTimeout));
}
+ public void setStateRetrievalLogFlushTimeout(long logFlushTimeout) {
+ this.clustering.stateRetrieval.setLogFlushTimeout(logFlushTimeout);
+ }
+
+ public void setStateRetrievalLogFlushTimeout(long logFlushTimeout, TimeUnit timeUnit) {
+ this.clustering.stateRetrieval.setLogFlushTimeout(timeUnit.toMillis(logFlushTimeout));
+ }
+
+ public void setStateRetrievalMaxNonProgressingLogWrites(int maxNonProgressingLogWrites) {
+ this.clustering.stateRetrieval.setMaxNonProgressingLogWrites(maxNonProgressingLogWrites);
+ }
+
public void setStateRetrievalInitialRetryWaitTime(long initialRetryWaitTime) {
clustering.stateRetrieval.setInitialRetryWaitTime(initialRetryWaitTime);
}
@@ -640,6 +652,14 @@
return clustering.stateRetrieval.numRetries;
}
+ public int getStateRetrievalMaxNonProgressingLogWrites() {
+ return clustering.stateRetrieval.maxNonProgressingLogWrites;
+ }
+
+ public long getStateRetrievalLogFlushTimeout() {
+ return clustering.stateRetrieval.logFlushTimeout;
+ }
+
public boolean isUseLazyDeserialization() {
return lazyDeserialization.enabled;
}
@@ -1477,6 +1497,12 @@
/** @configRef desc="Number of state retrieval retries before giving up and aborting startup."*/
protected Integer numRetries = 5;
+ /** @configRef desc="This is the maximum amount of time to run a cluster-wide flush, to allow for syncing of transaction logs." **/
+ protected Long logFlushTimeout = 60000L;
+
+ /** @configRef desc="This is the maximum number of non-progressing transaction log writes after which a brute-force flush approach is resorted to, to synchronize transaction logs." **/
+ protected Integer maxNonProgressingLogWrites = 100;
+
@XmlAttribute
public void setFetchInMemoryState(Boolean fetchInMemoryState) {
testImmutability("fetchInMemoryState");
@@ -1513,6 +1539,18 @@
this.timeout = timeout;
}
+ @XmlAttribute
+ public void setLogFlushTimeout(Long logFlushTimeout) {
+ testImmutability("logFlushTimeout");
+ this.logFlushTimeout = logFlushTimeout;
+ }
+
+ @XmlAttribute
+ public void setMaxNonProgressingLogWrites(Integer maxNonProgressingLogWrites) {
+ testImmutability("maxNonProgressingLogWrites");
+ this.maxNonProgressingLogWrites = maxNonProgressingLogWrites;
+ }
+
public void accept(ConfigurationBeanVisitor v) {
v.visitStateRetrievalType(this);
}
Modified: branches/4.2.x/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java
===================================================================
--- branches/4.2.x/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java 2010-09-30 14:08:13 UTC (rev 2458)
+++ branches/4.2.x/core/src/main/java/org/infinispan/statetransfer/StateTransferManagerImpl.java 2010-10-01 09:50:49 UTC (rev 2459)
@@ -84,6 +84,8 @@
private static final Byte DELIMITER = (byte) 123;
boolean transientState, persistentState, alwaysProvideTransientState;
+ int maxNonProgressingLogWrites;
+ long flushTimeout;
volatile boolean needToUnblockRPC = false;
volatile Address stateSender;
@@ -114,6 +116,8 @@
transientState = configuration.isFetchInMemoryState();
alwaysProvideTransientState = configuration.isAlwaysProvideInMemoryState();
persistentState = cs != null && clm.isEnabled() && clm.isFetchPersistentState() && !clm.isShared();
+ maxNonProgressingLogWrites = configuration.getStateRetrievalMaxNonProgressingLogWrites();
+ flushTimeout = configuration.getStateRetrievalLogFlushTimeout();
if (transientState || persistentState) {
long startTime = 0;
@@ -176,10 +180,6 @@
}
private void generateTransactionLog(ObjectOutput oo) throws Exception {
- // todo this should be configurable
- int maxNonProgressingLogWrites = 100;
- int flushTimeout = 60000;
-
DistributedSync distributedSync = rpcManager.getTransport().getDistributedSync();
try {
More information about the infinispan-commits
mailing list