[jbosscache-commits] JBoss Cache SVN: r5147 - benchmarks/benchmark-fwk/trunk/src/org/cachebench/tests.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Wed Jan 16 07:24:13 EST 2008


Author: mircea.markus
Date: 2008-01-16 07:24:13 -0500 (Wed, 16 Jan 2008)
New Revision: 5147

Modified:
   benchmarks/benchmark-fwk/trunk/src/org/cachebench/tests/ReplicationOccursTest.java
Log:


Modified: benchmarks/benchmark-fwk/trunk/src/org/cachebench/tests/ReplicationOccursTest.java
===================================================================
--- benchmarks/benchmark-fwk/trunk/src/org/cachebench/tests/ReplicationOccursTest.java	2008-01-16 10:58:53 UTC (rev 5146)
+++ benchmarks/benchmark-fwk/trunk/src/org/cachebench/tests/ReplicationOccursTest.java	2008-01-16 12:24:13 UTC (rev 5147)
@@ -25,6 +25,8 @@
 
    private Configuration conf;
    private static final String PREFIX = "_ReplicationOccursTest_";
+   private static final int REPLICATION_TRY_COUNT = 5;
+   private static final int REPLICATION_TRY_SLEEP = 2000;
 
    public void setConfiguration(Configuration configuration)
    {
@@ -38,7 +40,7 @@
 
       Integer currentNodeIndex = conf.getClusterConfig().getCurrentNodeIndex();
       cache.put(PREFIX + currentNodeIndex, "true");
-      Thread.sleep(2000);//just to make sure that prev barrier closed its sockets etc
+      Thread.sleep(REPLICATION_TRY_SLEEP);//just to make sure that prev barrier closed its sockets etc
 
       if (conf.getClusterConfig().getClusterSize() == 1)
       {
@@ -49,13 +51,32 @@
          return result;
       }
 
-      boolean allNodesReplicated = nodesReplicated(cache, testCaseName, testName);
+      boolean allNodesReplicated = checkReplicationSeveralTimes(testName, cache, testCaseName);
 
       Map<SocketAddress, Object> receivedValues = broadcastReplicationResult(allNodesReplicated);
       cache.empty();
       return allReplicatedFine(receivedValues);
    }
 
+   /**
+    * If caches replicate async, then try several times.
+    */
+   private boolean checkReplicationSeveralTimes(String testName, CacheWrapper cache, String testCaseName)
+         throws Exception
+   {
+      for (int i =0; i < REPLICATION_TRY_COUNT; i++)
+      {
+         if (nodesReplicated(cache, testCaseName, testName))
+         {
+            return true;
+         }
+         log.info("Replication test faild, " + (i+1) + " tries so far. Sleeping for  " + REPLICATION_TRY_SLEEP
+               + " millies then try again");
+         Thread.sleep(REPLICATION_TRY_SLEEP);
+      }
+      return false;
+   }
+
    private Map<SocketAddress, Object> broadcastReplicationResult(boolean allNodesReplicated)
          throws Exception
    {




More information about the jbosscache-commits mailing list