[jbosscache-commits] JBoss Cache SVN: r7418 - core/trunk/src/test/java/org/jboss/cache/buddyreplication.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Thu Jan 8 18:18:44 EST 2009
Author: mircea.markus
Date: 2009-01-08 18:18:44 -0500 (Thu, 08 Jan 2009)
New Revision: 7418
Modified:
core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java
Log:
more strict replication control
Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java 2009-01-08 21:28:50 UTC (rev 7417)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java 2009-01-08 23:18:44 UTC (rev 7418)
@@ -30,11 +30,18 @@
private String key = "key";
private String value = "value";
+ ReplicationListener replicationListener0;
+ ReplicationListener replicationListener1;
+ ReplicationListener replicationListener2;
@BeforeClass
public void createCaches() throws Exception
{
caches = createCaches(3, false, true);
+ replicationListener0 = ReplicationListener.getReplicationListener(caches.get(0));
+ replicationListener1 = ReplicationListener.getReplicationListener(caches.get(1));
+ replicationListener2 = ReplicationListener.getReplicationListener(caches.get(2));
+
}
public void testDataGravitationDontKillOwner() throws Exception
@@ -46,12 +53,8 @@
caches.get(0).put(fqn, key, value);
- TestingUtil.dumpCacheContents(caches);
-
assertEquals("Value should exist", value, caches.get(0).get(fqn, key));
- TestingUtil.dumpCacheContents(caches);
-
// use exists instead of get() to prevent going up the interceptor stack
assertTrue("Should be false", !caches.get(1).exists(fqn));
assertTrue("Should be false", !caches.get(2).exists(fqn));
@@ -60,15 +63,14 @@
assertTrue("Value be true", caches.get(1).exists(backupFqn));
assertFalse("Should be false", caches.get(2).exists(backupFqn));
- ReplicationListener replListener = ReplicationListener.getReplicationListener(caches.get(1));
- replListener.expect(DataGravitationCleanupCommand.class);
+ replicationListener0.expect(DataGravitationCleanupCommand.class);
+ replicationListener1.expect(DataGravitationCleanupCommand.class);
// according to data gravitation, a call to *any* cache should retrieve the data, and move the data to the new cache.
assertEquals("Value should have gravitated", value, caches.get(2).get(fqn, key));
- replListener.waitForReplicationToOccur();
+ replicationListener0.waitForReplicationToOccur();
+ replicationListener1.waitForReplicationToOccur();
- TestingUtil.dumpCacheContents(caches);
-
// now lets test the eviction part of gravitation
Fqn newBackupFqn = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn);
@@ -88,17 +90,12 @@
}
-
public void testTransactionsCommit() throws Exception
{
-
-
caches.get(0).put(fqn, key, value);
Fqn oldBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(0).getLocalAddress()) + "/test");
Fqn newBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(2).getLocalAddress()) + "/test");
-// dumpCacheContents(caches);
-
TransactionManager txman = caches.get(2).getTransactionManager();
@@ -113,12 +110,12 @@
assertTrue(!caches.get(2).exists(newBackupFqn));
+ replicationListener0.expect(DataGravitationCleanupCommand.class);
+ replicationListener1.expect(DataGravitationCleanupCommand.class);
+
txman.begin();
-// dumpCacheContents(caches);
- // will cause gravitation
caches.get(2).get(fqn, key);
-// dumpCacheContents(caches);
assertTrue(caches.get(0).exists(fqn));
assertTrue(!caches.get(1).exists(fqn));
@@ -131,10 +128,9 @@
assertTrue(!caches.get(2).exists(newBackupFqn));
txman.commit();
- cleanupDelay(); // cleanup commands are async
-// dumpCacheContents(caches);
-
+ replicationListener0.waitForReplicationToOccur();
+ replicationListener1.waitForReplicationToOccur();
assertTrue(!caches.get(0).exists(fqn));
assertTrue(!caches.get(1).exists(fqn));
assertTrue(caches.get(2).exists(fqn));
@@ -145,16 +141,9 @@
assertTrue(!caches.get(1).exists(newBackupFqn));
assertTrue(!caches.get(2).exists(newBackupFqn));
-// dumpCacheContents(caches);
-
assertNoLocks(caches);
}
- private void cleanupDelay()
- {
- TestingUtil.sleepThread(250);
- }
-
public void testTransactionsRollback() throws Exception
{
TestingUtil.dumpCacheContents(caches.get(0));
@@ -165,8 +154,6 @@
Fqn oldBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(0).getLocalAddress()) + "/test");
Fqn newBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(2).getLocalAddress()) + "/test");
-// dumpCacheContents(caches);
-
TransactionManager txman = caches.get(2).getTransactionManager();
@@ -183,9 +170,7 @@
txman.begin();
-// dumpCacheContents(caches);
caches.get(2).get(fqn, key);
-// dumpCacheContents(caches);
assertTrue(caches.get(0).exists(fqn));
assertTrue(!caches.get(1).exists(fqn));
@@ -199,8 +184,6 @@
txman.rollback();
-// dumpCacheContents(caches);
-
assertTrue(caches.get(0).exists(fqn));
assertTrue(!caches.get(1).exists(fqn));
assertTrue(!caches.get(2).exists(fqn));
@@ -243,10 +226,11 @@
assertNoLocks(caches);
// gravitate to 2:
- ReplicationListener replListener1 = ReplicationListener.getReplicationListener(caches.get(0));
- replListener1.expect(DataGravitationCleanupCommand.class);
+ replicationListener0.expect(DataGravitationCleanupCommand.class);
+ replicationListener1.expect(DataGravitationCleanupCommand.class);
caches.get(2).getNode(fqn); // expectWithTx entire subtree to gravitate.
- replListener1.waitForReplicationToOccur(); // cleanup commands are async
+ replicationListener0.waitForReplicationToOccur();
+ replicationListener1.waitForReplicationToOccur();
Fqn newBackupFqn = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn);
Fqn newBackupFqn2 = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn2);
@@ -265,8 +249,6 @@
assertTrue(!caches.get(1).exists(newBackupFqn));
assertTrue(!caches.get(1).exists(newBackupFqn2));
- TestingUtil.dumpCacheContents(caches);
-
for (CacheSPI<Object, Object> cache : caches)
{
assertTrue(!cache.exists(backupFqn));
@@ -276,41 +258,6 @@
assertNoLocks(caches);
}
- private void testDataOwner(boolean optimistic) throws Exception
- {
- List<CacheSPI<Object, Object>> caches = createCaches(1, 2, false, true, optimistic);
- cachesTL.set(caches);
-
- // add some stuff on the primary
- CacheSPI dataOwner = caches.get(0);
- CacheSPI buddy = caches.get(1);
-
- dataOwner.put(fqn, key, value);
-
- assert dataOwner.peek(fqn, false) != null : "Should have data";
- assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";
- assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
-
- assert buddy.peek(fqn, false) == null : "Should not have data";
- assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
- assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
- assert buddy.peek(fqnTransformer.getBackupFqn(dataOwner.getLocalAddress(), fqn), false) != null : "Should have backup data";
-
- // now do a gravitate call.
- assert buddy.get(fqn, key).equals(value) : "Data should have gravitated!";
- // gravitation cleanup calls are async.
- cleanupDelay();
-
- assert buddy.peek(fqn, false) != null : "Should have data";
- assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
- assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
-
- assert dataOwner.peek(fqn, false) == null : "Should not have data";
- assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
- assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";
- assert dataOwner.peek(fqnTransformer.getBackupFqn(buddy.getLocalAddress(), fqn), false) != null : "Should have backup data";
- }
-
public void testStaleRegionOnDataOwner() throws Exception
{
// add some stuff on the primary
@@ -329,10 +276,11 @@
assert second.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(first.getLocalAddress())), false) != null : "Should have backup node for second";
assert second.peek(fqnTransformer.getBackupFqn(first.getLocalAddress(), fqn), false) != null : "Should have backup data";
+ replicationListener0.expect(DataGravitationCleanupCommand.class);
// now do a gravitate call.
assert second.get(fqn, key).equals(value) : "Data should have gravitated!";
// gravitation cleanup calls are async.
- cleanupDelay();
+ replicationListener0.waitForReplicationToOccur();
assert second.peek(fqn, false) != null : "Should have data";
assert second.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(first.getLocalAddress())), false) != null : "Should have backup node for second";
@@ -370,12 +318,13 @@
assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
assert buddy.peek(fqnTransformer.getBackupFqn(dataOwner.getLocalAddress(), fqn), false) != null : "Should have backup data";
+ replicationListener0.expect(DataGravitationCleanupCommand.class);
+ replicationListener1.expect(DataGravitationCleanupCommand.class);
// now do a gravitate call.
assert thirdInstance.get(fqn, key).equals(value) : "Data should have gravitated!";
-
- // gravitation cleanup calls are async.
- TestingUtil.sleepThread(250);
-
+ replicationListener0.waitForReplicationToOccur();
+ replicationListener1.waitForReplicationToOccur();
+
assert thirdInstance.peek(fqn, false) != null : "Should have data";
assert thirdInstance.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";
assert thirdInstance.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(thirdInstance.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
@@ -454,8 +403,10 @@
}
}
}
-
- @Test (enabled = true, dependsOnMethods = {"testConcurrency","testStaleRegionOnBuddy","testStaleRegionOnDataOwner", "testDataGravitationDontKillOwner", "testTransactionsCommit", "testTransactionsRollback", "testSubtreeRetrieval"})
+
+ @Test(enabled = true, dependsOnMethods = {"testConcurrency", "testStaleRegionOnBuddy", "testStaleRegionOnDataOwner",
+ "testDataGravitationDontKillOwner", "testTransactionsCommit", "testTransactionsRollback",
+ "testSubtreeRetrieval"})
public void testCompleteStateSurvival() throws Exception
{
CacheBlockListener blockListener = new CacheBlockListener();
More information about the jbosscache-commits
mailing list