Author: manik.surtani(a)jboss.com
Date: 2009-02-18 07:05:26 -0500 (Wed, 18 Feb 2009)
New Revision: 7722
Modified:
core/branches/3.0.X/src/main/java/org/jboss/cache/mvcc/MVCCNodeHelper.java
core/branches/3.0.X/src/test/java/org/jboss/cache/loader/testloaders/DummyInMemoryCacheLoader.java
core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/CacheLoaderTest.java
core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/PassivationTest.java
core/branches/3.0.X/src/test/java/org/jboss/cache/passivation/PassivationTestsBase.java
Log:
JBCACHE-1479 excessive cache loading and deadlocks
Modified: core/branches/3.0.X/src/main/java/org/jboss/cache/mvcc/MVCCNodeHelper.java
===================================================================
--- core/branches/3.0.X/src/main/java/org/jboss/cache/mvcc/MVCCNodeHelper.java 2009-02-18
10:33:00 UTC (rev 7721)
+++ core/branches/3.0.X/src/main/java/org/jboss/cache/mvcc/MVCCNodeHelper.java 2009-02-18
12:05:26 UTC (rev 7722)
@@ -250,6 +250,7 @@
n = nodeFactory.createWrappedNode(in, parent.getDelegationTarget());
n.setCreated(true);
+ n.setDataLoaded(true); // created here so we are loading it here
context.putLookedUpNode(fqn, n);
n.markForUpdate(dataContainer, writeSkewCheck);
}
Modified:
core/branches/3.0.X/src/test/java/org/jboss/cache/loader/testloaders/DummyInMemoryCacheLoader.java
===================================================================
---
core/branches/3.0.X/src/test/java/org/jboss/cache/loader/testloaders/DummyInMemoryCacheLoader.java 2009-02-18
10:33:00 UTC (rev 7721)
+++
core/branches/3.0.X/src/test/java/org/jboss/cache/loader/testloaders/DummyInMemoryCacheLoader.java 2009-02-18
12:05:26 UTC (rev 7722)
@@ -291,4 +291,12 @@
{
nodes.clear();
}
+
+ public static class Cfg extends IndividualCacheLoaderConfig
+ {
+ public Cfg()
+ {
+ setClassName(DummyInMemoryCacheLoader.class.getName());
+ }
+ }
}
Modified: core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/CacheLoaderTest.java
===================================================================
--- core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/CacheLoaderTest.java 2009-02-18
10:33:00 UTC (rev 7721)
+++ core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/CacheLoaderTest.java 2009-02-18
12:05:26 UTC (rev 7722)
@@ -44,8 +44,6 @@
assertNotNull("Retrieval error: expected to retrieve " + CAPITAL + "
for " + AUSTRIA, cache.get(AUSTRIA, CAPITAL));
assertNull("Retrieval error: did not expect to retrieve " + AREA + "
for " + AUSTRIA, cache.get(AUSTRIA, AREA));
- load++;
-
// verify statistics after retrieving entries - misses should still be same since
nodes were already loaded
assertEquals("CacheLoaderLoads count error: ", load,
loader.getCacheLoaderLoads());
assertEquals("CacheLoaderMisses count error: ", miss,
loader.getCacheLoaderMisses());
@@ -104,7 +102,6 @@
// add two attributes - this should cause two stores
stores += 2;
- load++;
cache.put(POLAND, CAPITAL, "Warsaw");
cache.put(POLAND, CURRENCY, "Zloty");
assertEquals("CacheLoaderLoads count error: ", load,
loader.getCacheLoaderLoads());
Modified: core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/PassivationTest.java
===================================================================
--- core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/PassivationTest.java 2009-02-18
10:33:00 UTC (rev 7721)
+++ core/branches/3.0.X/src/test/java/org/jboss/cache/mgmt/PassivationTest.java 2009-02-18
12:05:26 UTC (rev 7722)
@@ -52,8 +52,6 @@
assertNotNull("Retrieval error: expected to retrieve " + CAPITAL + "
for " + AUSTRIA, cache.get(AUSTRIA, CAPITAL));
assertNull("Retrieval error: did not expect to retrieve " + AREA + "
for " + AUSTRIA, cache.get(AUSTRIA, AREA));
- miss++;
-
// verify statistics after retrieving entries - no change since nodes were already
loaded
assertEquals("CacheLoaderLoads count error: ", 0,
act.getCacheLoaderLoads());
assertEquals("CacheLoaderMisses count error: ", miss,
act.getCacheLoaderMisses());
@@ -82,7 +80,7 @@
assertNotNull("Retrieval error: expected to retrieve " + CURRENCY +
" for " + AUSTRIA, cache.get(AUSTRIA, CURRENCY));
// verify statistics after retrieving evicted entry - loads and activations should
now increment by 1
- activations++;
+ activations+= 3;
assertEquals("CacheLoaderLoads count error: ", 1,
act.getCacheLoaderLoads());
assertEquals("CacheLoaderMisses count error: ", miss,
act.getCacheLoaderMisses());
assertEquals("Activations count error: ", activations,
act.getActivations());
@@ -113,7 +111,7 @@
cache.put(POLAND, new HashMap<String, Object>());
cache.put(POLAND, CAPITAL, "Warsaw");
cache.put(POLAND, CURRENCY, "Zloty");
- miss += 3;
+ miss ++;
assertEquals("CacheLoaderLoads count error: ", 1,
act.getCacheLoaderLoads());
assertEquals("CacheLoaderMisses count error: ", miss,
act.getCacheLoaderMisses());
assertEquals("Activations count error: ", activations,
act.getActivations());
@@ -127,7 +125,7 @@
assertEquals("Passivations count error: ", 2, pass.getPassivations());
// retrieve a valid attribute - this will cause an activation and a load
- activations++;
+ activations+=3;
assertNotNull("Retrieval error: expected to retrieve " + CURRENCY +
" for " + POLAND, cache.get(POLAND, CURRENCY));
assertEquals("CacheLoaderLoads count error: ", 2,
act.getCacheLoaderLoads());
assertEquals("CacheLoaderMisses count error: ", miss,
act.getCacheLoaderMisses());
@@ -142,7 +140,7 @@
assertEquals("Passivations count error: ", 3, pass.getPassivations());
// retrieve an invalid attribute - this will cause an activation and a load
- activations++;
+ activations+=3;
assertNull("Retrieval error: did not expect to retrieve " + AREA + "
for " + POLAND, cache.get(POLAND, AREA));
assertEquals("CacheLoaderLoads count error: ", 3,
act.getCacheLoaderLoads());
assertEquals("CacheLoaderMisses count error: ", miss,
act.getCacheLoaderMisses());
Modified:
core/branches/3.0.X/src/test/java/org/jboss/cache/passivation/PassivationTestsBase.java
===================================================================
---
core/branches/3.0.X/src/test/java/org/jboss/cache/passivation/PassivationTestsBase.java 2009-02-18
10:33:00 UTC (rev 7721)
+++
core/branches/3.0.X/src/test/java/org/jboss/cache/passivation/PassivationTestsBase.java 2009-02-18
12:05:26 UTC (rev 7722)
@@ -655,7 +655,7 @@
assertTrue(loader.exists(Fqn.fromString("/first/second")));
assert (exists("/first"));
String val = (String) cache.get("/first/second", "key1");
- assertTrue(loader.exists(Fqn.fromString("/first/second")));
+ assertFalse(loader.exists(Fqn.fromString("/first/second")));
assertEquals("val1", val);
String val2 = (String) cache.get("/first/second/third",
"key2");// activate node
assertFalse(loader.exists(Fqn.fromString("/first/second/third")));