[infinispan-commits] Infinispan SVN: r1086 - in trunk/core/src: main/java/org/infinispan/distribution and 1 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Fri Oct 30 13:25:51 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-10-30 13:25:51 -0400 (Fri, 30 Oct 2009)
New Revision: 1086
Modified:
trunk/core/src/main/java/org/infinispan/config/Configuration.java
trunk/core/src/main/java/org/infinispan/distribution/JoinTask.java
trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java
Log:
Use a different cfg element for enabling/disabling rehashing
Modified: trunk/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/Configuration.java 2009-10-30 15:37:59 UTC (rev 1085)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java 2009-10-30 17:25:51 UTC (rev 1086)
@@ -442,6 +442,10 @@
public void setNumOwners(int numOwners) {
this.clustering.hash.setNumOwners(numOwners);
}
+
+ public void setRehashEnabled(boolean rehashEnabled) {
+ this.clustering.hash.setRehashEnabled(rehashEnabled);
+ }
public void setRehashWaitTime(long rehashWaitTime) {
this.clustering.hash.setRehashWait(rehashWaitTime);
@@ -567,6 +571,10 @@
return clustering.hash.numOwners;
}
+ public boolean isRehashEnabled() {
+ return clustering.hash.rehashEnabled;
+ }
+
public long getRehashWaitTime() {
return clustering.hash.rehashWait;
}
@@ -692,6 +700,9 @@
}
public void assertValid() throws ConfigurationException {
+ // certain combinations are illegal, such as state transfer + DIST
+ if (clustering.mode.isDistributed() && clustering.stateRetrieval.fetchInMemoryState)
+ throw new ConfigurationException("Cache cannot use DISTRIBUTION mode and have fetchInMemoryState set to true");
}
public boolean isOnePhaseCommit() {
@@ -1402,7 +1413,10 @@
protected Long rehashWait=60000L;
/** @configRef desc="Rehashing timeout" */
- protected Long rehashRpcTimeout=60 * 1000 * 10L;
+ protected Long rehashRpcTimeout=60 * 1000 * 10L;
+
+ /** @configRef desc="If false, no rebalancing or rehashing will take place when a new node joins the cluster or a node leaves. Defaults to true." **/
+ protected Boolean rehashEnabled=true;
@XmlAttribute(name="class")
public void setConsistentHashClass(String consistentHashClass) {
@@ -1432,6 +1446,12 @@
this.rehashRpcTimeout = rehashRpcTimeout;
}
+ @XmlAttribute
+ public void setRehashEnabled(Boolean rehashEnabled) {
+ testImmutability("rehashEnabled");
+ this.rehashEnabled = rehashEnabled;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -1445,6 +1465,7 @@
if (rehashRpcTimeout != null ? !rehashRpcTimeout.equals(hashType.rehashRpcTimeout) : hashType.rehashRpcTimeout != null)
return false;
if (rehashWait != null ? !rehashWait.equals(hashType.rehashWait) : hashType.rehashWait != null) return false;
+ if (rehashEnabled != hashType.rehashEnabled) return false;
return true;
}
@@ -1455,6 +1476,7 @@
result = 31 * result + (numOwners != null ? numOwners.hashCode() : 0);
result = 31 * result + (rehashWait != null ? rehashWait.hashCode() : 0);
result = 31 * result + (rehashRpcTimeout != null ? rehashRpcTimeout.hashCode() : 0);
+ result = 31 * result + (rehashEnabled ? 0 : 1);
return result;
}
}
Modified: trunk/core/src/main/java/org/infinispan/distribution/JoinTask.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/JoinTask.java 2009-10-30 15:37:59 UTC (rev 1085)
+++ trunk/core/src/main/java/org/infinispan/distribution/JoinTask.java 2009-10-30 17:25:51 UTC (rev 1086)
@@ -102,7 +102,7 @@
chNew = createConsistentHash(configuration, chOld.getCaches(), self);
dmi.setConsistentHash(chNew);
- if (configuration.isFetchInMemoryState()) {
+ if (configuration.isRehashEnabled()) {
// 3. Enable TX logging
transactionLogger.enable();
@@ -131,7 +131,7 @@
}
unlocked = true;
- if (!configuration.isFetchInMemoryState()) {
+ if (!configuration.isRehashEnabled()) {
rpcManager.broadcastRpcCommand(cf.buildRehashControlCommand(JOIN_REHASH_START, self), true, true);
}
// 10.
@@ -139,7 +139,7 @@
rpcManager.invokeRemotely(coordinator(), cf.buildRehashControlCommand(JOIN_COMPLETE, self), SYNCHRONOUS,
configuration.getRehashRpcTimeout(), true);
- if (configuration.isFetchInMemoryState()) {
+ if (configuration.isRehashEnabled()) {
// 11.
invalidateInvalidHolders(chOld, chNew);
}
Modified: trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java 2009-10-30 15:37:59 UTC (rev 1085)
+++ trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java 2009-10-30 17:25:51 UTC (rev 1086)
@@ -41,7 +41,7 @@
protected void createCacheManagers() throws Throwable {
cacheName = "dist";
configuration = getDefaultClusteredConfig(sync ? Configuration.CacheMode.DIST_SYNC : Configuration.CacheMode.DIST_ASYNC, tx);
- configuration.setFetchInMemoryState(performRehashing);
+ configuration.setRehashEnabled(performRehashing);
if (!testRetVals) {
configuration.setUnsafeUnreliableReturnValues(true);
// we also need to use repeatable read for tests to work when we dont have reliable return values, since the
More information about the infinispan-commits
mailing list