[infinispan-commits] Infinispan SVN: r1030 - in trunk/core/src: test/java/org/infinispan/distribution and 1 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Tue Oct 27 09:01:13 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-10-27 09:01:13 -0400 (Tue, 27 Oct 2009)
New Revision: 1030
Modified:
trunk/core/src/main/java/org/infinispan/distribution/ConsistentHashHelper.java
trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java
trunk/core/src/test/java/org/infinispan/distribution/ConsistentHashPerfTest.java
trunk/core/src/test/java/org/infinispan/distribution/DefaultConsistentHashTest.java
trunk/core/src/test/java/org/infinispan/distribution/DistSyncFuncTest.java
trunk/core/src/test/java/org/infinispan/distribution/JoinTaskTest.java
trunk/core/src/test/java/org/infinispan/distribution/rehash/RehashTestBase.java
Log:
Reorg how CHs are created
Modified: trunk/core/src/main/java/org/infinispan/distribution/ConsistentHashHelper.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/distribution/ConsistentHashHelper.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/main/java/org/infinispan/distribution/ConsistentHashHelper.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -60,4 +60,22 @@
list.addAll(moreAddresses);
return createConsistentHash(c, list);
}
+
+ public static ConsistentHash createConsistentHash(Class<? extends ConsistentHash> clazz, List<Address> addresses) throws IllegalAccessException, InstantiationException, ClassNotFoundException {
+ ConsistentHash ch = Util.getInstance(clazz);
+ if (addresses != null && addresses.size() > 0) ch.setCaches(addresses);
+ return ch;
+ }
+
+ public static ConsistentHash createConsistentHash(Class<? extends ConsistentHash> clazz, List<Address> addresses, Address... moreAddresses) throws IllegalAccessException, ClassNotFoundException, InstantiationException {
+ List<Address> list = new LinkedList<Address>(addresses);
+ list.addAll(Arrays.asList(moreAddresses));
+ return createConsistentHash(clazz, list);
+ }
+
+ public static ConsistentHash createConsistentHash(Class<? extends ConsistentHash> clazz, List<Address> addresses, Collection<Address> moreAddresses) throws IllegalAccessException, ClassNotFoundException, InstantiationException {
+ List<Address> list = new LinkedList<Address>(addresses);
+ list.addAll(moreAddresses);
+ return createConsistentHash(clazz, list);
+ }
}
Modified: trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/test/java/org/infinispan/distribution/BaseDistFunctionalTest.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -62,7 +62,17 @@
RehashWaiter.waitForInitRehashToComplete(c1, c2, c3, c4);
}
-
+
+ public static ConsistentHash createNewConsistentHash(List<Address> servers) {
+ try {
+ return ConsistentHashHelper.createConsistentHash(DefaultConsistentHash.class, servers);
+ } catch (RuntimeException re) {
+ throw re;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
/**
* This is a separate class because some tools try and run this method as a test
*/
@@ -94,7 +104,7 @@
// seed this with an initial cache. Any one will do.
Cache seed = caches.get(0);
- DefaultConsistentHash ch = getDefaultConsistentHash(seed, SECONDS.toMillis(480));
+ ConsistentHash ch = getNonUnionConsistentHash(seed, SECONDS.toMillis(480));
List<Cache<Object, String>> reordered = new ArrayList<Cache<Object, String>>();
@@ -279,18 +289,18 @@
return c.getAdvancedCache().getComponentRegistry().getComponent(DistributionManager.class);
}
- protected DefaultConsistentHash getDefaultConsistentHash(Cache<?, ?> c) {
- return (DefaultConsistentHash) getDistributionManager(c).getConsistentHash();
+ protected ConsistentHash getConsistentHash(Cache<?, ?> c) {
+ return getDistributionManager(c).getConsistentHash();
}
- protected DefaultConsistentHash getDefaultConsistentHash(Cache<?, ?> c, long timeout) {
+ protected ConsistentHash getNonUnionConsistentHash(Cache<?, ?> c, long timeout) {
long expTime = System.currentTimeMillis() + timeout;
while (System.currentTimeMillis() < expTime) {
ConsistentHash ch = getDistributionManager(c).getConsistentHash();
- if (ch instanceof DefaultConsistentHash) return (DefaultConsistentHash) ch;
+ if (!(ch instanceof UnionConsistentHash)) return ch;
TestingUtil.sleepThread(100);
}
- throw new RuntimeException("Timed out waiting for a DefaultConsistentHash to be present on cache [" + addressOf(c) + "]");
+ throw new RuntimeException("Timed out waiting for a non-UnionConsistentHash to be present on cache [" + addressOf(c) + "]");
}
/**
Modified: trunk/core/src/test/java/org/infinispan/distribution/ConsistentHashPerfTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/ConsistentHashPerfTest.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/test/java/org/infinispan/distribution/ConsistentHashPerfTest.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -3,6 +3,7 @@
import org.infinispan.remoting.transport.Address;
import org.infinispan.remoting.transport.jgroups.JGroupsAddress;
import org.infinispan.test.TestingUtil;
+import org.infinispan.test.AbstractInfinispanTest;
import org.infinispan.util.Util;
import org.testng.annotations.Test;
@@ -21,7 +22,7 @@
* @since 4.0
*/
@Test(testName = "distribution.ConsistentHashPerfTest", groups = "manual", enabled = false)
-public class ConsistentHashPerfTest {
+public class ConsistentHashPerfTest extends AbstractInfinispanTest {
private void addCaches(ConsistentHash ch, int numNodes) {
Random r = new Random();
@@ -48,7 +49,7 @@
for (int nn : numNodes) {
System.gc();
TestingUtil.sleepThread(1000);
- ConsistentHash ch = new DefaultConsistentHash();
+ ConsistentHash ch = BaseDistFunctionalTest.createNewConsistentHash(null);
addCaches(ch, nn);
long start = System.nanoTime();
Object key = new Object();
@@ -64,7 +65,7 @@
final int numNodes = 100;
List<Object> keys = new ArrayList<Object>(numKeys);
- ConsistentHash ch = new DefaultConsistentHash();
+ ConsistentHash ch = BaseDistFunctionalTest.createNewConsistentHash(null);
addCaches(ch, numNodes);
for (int i = 0; i < numKeys; i++) keys.add(UUID.randomUUID());
Modified: trunk/core/src/test/java/org/infinispan/distribution/DefaultConsistentHashTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/DefaultConsistentHashTest.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/test/java/org/infinispan/distribution/DefaultConsistentHashTest.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -27,8 +27,7 @@
servers.add(new TestAddress(i));
}
- ch = new DefaultConsistentHash();
- ch.setCaches(servers);
+ ch = BaseDistFunctionalTest.createNewConsistentHash(servers);
}
@AfterTest
@@ -83,8 +82,7 @@
Address a3 = new TestAddress(3000);
Address a4 = new TestAddress(4000);
- ConsistentHash ch = new DefaultConsistentHash();
- ch.setCaches(Arrays.asList(a1, a2, a3, a4));
+ ch = BaseDistFunctionalTest.createNewConsistentHash(Arrays.asList(a1, a2, a3, a4));
// the CH may reorder the addresses. Get the new order.
List<Address> adds = ch.getCaches();
@@ -111,8 +109,7 @@
Address a3 = new TestAddress(3000);
Address a4 = new TestAddress(4000);
- ConsistentHash ch = new DefaultConsistentHash();
- ch.setCaches(Arrays.asList(a1, a2, a3, a4));
+ ch = BaseDistFunctionalTest.createNewConsistentHash(Arrays.asList(a1, a2, a3, a4));
String[] keys = new String[10000];
Random r = new Random();
Modified: trunk/core/src/test/java/org/infinispan/distribution/DistSyncFuncTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/DistSyncFuncTest.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/test/java/org/infinispan/distribution/DistSyncFuncTest.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -38,7 +38,7 @@
for (Cache<Object, String> c : caches) {
boolean isOwner = isOwner(c, key);
if (isOwner) owners.add(addressOf(c));
- boolean secondCheck = getDefaultConsistentHash(c).locate(key, 2).contains(addressOf(c));
+ boolean secondCheck = getConsistentHash(c).locate(key, 2).contains(addressOf(c));
assert isOwner == secondCheck : "Second check failed for key " + key + " on cache " + addressOf(c) + " isO = " + isOwner + " sC = " + secondCheck;
}
// check consensus
@@ -48,10 +48,10 @@
}
private void assertOwnershipConsensus(String key) {
- List l1 = getDefaultConsistentHash(c1).locate(key, 2);
- List l2 = getDefaultConsistentHash(c2).locate(key, 2);
- List l3 = getDefaultConsistentHash(c3).locate(key, 2);
- List l4 = getDefaultConsistentHash(c4).locate(key, 2);
+ List l1 = getConsistentHash(c1).locate(key, 2);
+ List l2 = getConsistentHash(c2).locate(key, 2);
+ List l3 = getConsistentHash(c3).locate(key, 2);
+ List l4 = getConsistentHash(c4).locate(key, 2);
assert l1.equals(l2) : "L1 "+l1+" and L2 "+l2+" don't agree.";
assert l2.equals(l3): "L2 "+l2+" and L3 "+l3+" don't agree.";
Modified: trunk/core/src/test/java/org/infinispan/distribution/JoinTaskTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/JoinTaskTest.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/test/java/org/infinispan/distribution/JoinTaskTest.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -40,11 +40,8 @@
JoinTask jt = new JoinTask(rpc, null, null, null, null, null);
- ConsistentHash ch = new DefaultConsistentHash();
- ch.setCaches(Arrays.asList(a1, a2, a3, a4, a5, a6, joiner));
+ jt.chNew = BaseDistFunctionalTest.createNewConsistentHash(Arrays.asList(a1, a2, a3, a4, a5, a6, joiner));
- jt.chNew = ch;
-
List<Address> a = jt.getAddressesWhoMaySendStuff(rc);
List<Address> expected;
if (rc == 2)
Modified: trunk/core/src/test/java/org/infinispan/distribution/rehash/RehashTestBase.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/rehash/RehashTestBase.java 2009-10-27 12:17:04 UTC (rev 1029)
+++ trunk/core/src/test/java/org/infinispan/distribution/rehash/RehashTestBase.java 2009-10-27 13:01:13 UTC (rev 1030)
@@ -2,7 +2,7 @@
import org.infinispan.Cache;
import org.infinispan.distribution.BaseDistFunctionalTest;
-import org.infinispan.distribution.DefaultConsistentHash;
+import org.infinispan.distribution.ConsistentHash;
import org.infinispan.remoting.transport.Address;
import org.infinispan.test.TestingUtil;
import org.testng.annotations.Test;
@@ -47,7 +47,7 @@
protected int locateJoiner(Address joinerAddress) {
for (Cache c : Arrays.asList(c1, c2, c3, c4)) {
- DefaultConsistentHash dch = getDefaultConsistentHash(c, SECONDS.toMillis(480));
+ ConsistentHash dch = getNonUnionConsistentHash(c, SECONDS.toMillis(480));
int i = 0;
for (Address a : dch.getCaches()) {
if (a.equals(joinerAddress)) return i;
More information about the infinispan-commits
mailing list