[jbosscache-commits] JBoss Cache SVN: r7265 - in core/branches/flat/src: test/java/org/jboss/starobrno/atomic and 1 other directories.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Mon Dec 8 13:59:07 EST 2008
Author: manik.surtani at jboss.com
Date: 2008-12-08 13:59:07 -0500 (Mon, 08 Dec 2008)
New Revision: 7265
Modified:
core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMap.java
core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMapDelta.java
core/branches/flat/src/test/java/org/jboss/starobrno/atomic/AtomicHashMapTest.java
core/branches/flat/src/test/java/org/jboss/starobrno/profiling/TreeProfileTest.java
Log:
Perf improvements
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMap.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMap.java 2008-12-08 18:24:10 UTC (rev 7264)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMap.java 2008-12-08 18:59:07 UTC (rev 7265)
@@ -97,7 +97,7 @@
op.key = key;
op.newValue = value;
op.oldValue = delegate.put(key, value);
- delta.changelog.add(op);
+ delta.addOperation(op);
return op.oldValue;
}
@@ -106,7 +106,7 @@
RemoveOperation<K, V> op = new RemoveOperation<K, V>();
op.key = (K) key;
op.oldValue = delegate.remove(key);
- delta.changelog.add(op);
+ delta.addOperation(op);
return op.oldValue;
}
@@ -120,7 +120,7 @@
{
ClearOperation<K, V> op = new ClearOperation<K, V>();
op.originalEntries = (FastCopyHashMap<K, V>) delegate.clone();
- delta.changelog.add(op);
+ delta.addOperation(op);
delegate.clear();
}
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMapDelta.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMapDelta.java 2008-12-08 18:24:10 UTC (rev 7264)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMapDelta.java 2008-12-08 18:59:07 UTC (rev 7265)
@@ -27,7 +27,7 @@
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -37,7 +37,7 @@
*/
public class AtomicHashMapDelta implements Delta
{
- List<Operation> changelog = new LinkedList<Operation>();
+ private List<Operation> changelog;
private static final Log log = LogFactory.getLog(AtomicHashMapDelta.class);
private static final boolean trace = log.isTraceEnabled();
@@ -54,6 +54,16 @@
return other;
}
+ public void addOperation(Operation o)
+ {
+ if (changelog == null)
+ {
+ // lazy init
+ changelog = new ArrayList<Operation>();
+ }
+ changelog.add(o);
+ }
+
public void writeExternal(ObjectOutput out) throws IOException
{
if (trace) log.trace("Serializing changelog " + changelog);
@@ -73,4 +83,9 @@
"changelog=" + changelog +
'}';
}
+
+ public int getChangeLogSize()
+ {
+ return changelog == null ? 0 : changelog.size();
+ }
}
\ No newline at end of file
Modified: core/branches/flat/src/test/java/org/jboss/starobrno/atomic/AtomicHashMapTest.java
===================================================================
--- core/branches/flat/src/test/java/org/jboss/starobrno/atomic/AtomicHashMapTest.java 2008-12-08 18:24:10 UTC (rev 7264)
+++ core/branches/flat/src/test/java/org/jboss/starobrno/atomic/AtomicHashMapTest.java 2008-12-08 18:59:07 UTC (rev 7265)
@@ -87,7 +87,7 @@
m.put("k1", "v3");
assert m.size() == 1;
AtomicHashMapDelta d = (AtomicHashMapDelta) m.delta();
- assert !d.changelog.isEmpty();
+ assert d.getChangeLogSize() != 0;
AtomicHashMap newMap = new AtomicHashMap();
newMap.initForWriting();
Modified: core/branches/flat/src/test/java/org/jboss/starobrno/profiling/TreeProfileTest.java
===================================================================
--- core/branches/flat/src/test/java/org/jboss/starobrno/profiling/TreeProfileTest.java 2008-12-08 18:24:10 UTC (rev 7264)
+++ core/branches/flat/src/test/java/org/jboss/starobrno/profiling/TreeProfileTest.java 2008-12-08 18:59:07 UTC (rev 7265)
@@ -3,6 +3,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.cache.lock.IsolationLevel;
+import org.jboss.cache.transaction.DummyTransactionManager;
import org.jboss.starobrno.Cache;
import org.jboss.starobrno.UnitTestCacheFactory;
import org.jboss.starobrno.config.Configuration;
@@ -43,7 +44,7 @@
Test configuration options
*/
protected static final long NUM_OPERATIONS = 1000000; // DURATION is replaced with a fixed number of operations instead.
- protected static final int NUM_THREADS = 25;
+ protected static final int NUM_THREADS = 50;
protected static final int MAX_RANDOM_SLEEP_MILLIS = 1;
protected static final int MAX_OVERALL_FQNS = 2000;
protected static final int TREE_DEPTH = 2;
@@ -59,7 +60,8 @@
cfg.setInvocationBatchingEnabled(true);
cfg.setCacheMode(Configuration.CacheMode.LOCAL);
cfg.setConcurrencyLevel(2000);
- cfg.setLockAcquisitionTimeout(60000);
+ cfg.setLockAcquisitionTimeout(120000);
+ cfg.setLockParentForChildInsertRemove(true);
cfg.setIsolationLevel(IsolationLevel.REPEATABLE_READ);
Cache c = new UnitTestCacheFactory().createCache(cfg);
cache = new TreeCacheImpl(c);
@@ -147,8 +149,15 @@
{
public void run()
{
- // this will create the necessary nodes.
- cache.put(fqn, "key", Collections.emptyMap());
+ try
+ {
+ // this will create the necessary nodes.
+ cache.put(fqn, "key", Collections.emptyMap());
+ }
+ catch (Exception e)
+ {
+ log.warn("Caught Exception", e);
+ }
}
});
}
@@ -160,10 +169,23 @@
{
public void run()
{
- Fqn fqn = fqns.get(r.nextInt(MAX_OVERALL_FQNS));
- cache.get(fqn, "key");
- cache.put(fqn, "key", "Value");
- cache.remove(fqn, "key");
+ try
+ {
+ Fqn fqn = fqns.get(r.nextInt(MAX_OVERALL_FQNS));
+ DummyTransactionManager.getInstance().begin();
+ cache.get(fqn, "key");
+ DummyTransactionManager.getInstance().commit();
+ DummyTransactionManager.getInstance().begin();
+ cache.put(fqn, "key", "Value");
+ DummyTransactionManager.getInstance().commit();
+ DummyTransactionManager.getInstance().begin();
+ cache.remove(fqn, "key");
+ DummyTransactionManager.getInstance().commit();
+ }
+ catch (Exception e)
+ {
+ log.warn("Caught Exception", e);
+ }
}
});
}
@@ -258,25 +280,38 @@
{
Fqn fqn = fqns.get(r.nextInt(MAX_OVERALL_FQNS));
long d = 0, st = 0;
- switch (mode)
+ try
{
- case PUT:
- Object value = getRandomString();
- st = System.nanoTime();
- cache.put(fqn, "key", value);
- d = System.nanoTime() - st;
- break;
- case GET:
- st = System.nanoTime();
- cache.get(fqn, "key");
- d = System.nanoTime() - st;
- break;
- case REMOVE:
- st = System.nanoTime();
- cache.remove(fqn, "key");
- d = System.nanoTime() - st;
- break;
+ switch (mode)
+ {
+ case PUT:
+ Object value = getRandomString();
+ st = System.nanoTime();
+ DummyTransactionManager.getInstance().begin();
+ cache.put(fqn, "key", value);
+ DummyTransactionManager.getInstance().commit();
+ d = System.nanoTime() - st;
+ break;
+ case GET:
+ st = System.nanoTime();
+ DummyTransactionManager.getInstance().begin();
+ cache.get(fqn, "key");
+ DummyTransactionManager.getInstance().commit();
+ d = System.nanoTime() - st;
+ break;
+ case REMOVE:
+ st = System.nanoTime();
+ DummyTransactionManager.getInstance().begin();
+ cache.remove(fqn, "key");
+ DummyTransactionManager.getInstance().commit();
+ d = System.nanoTime() - st;
+ break;
+ }
}
+ catch (Exception e)
+ {
+ d = 0;
+ }
duration.getAndAdd(d);
}
}
More information about the jbosscache-commits
mailing list