[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