[jbosscache-commits] JBoss Cache SVN: r7321 - in core/branches/flat/src/main/java/org/jboss/starobrno: cluster and 6 other directories.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Sat Dec 13 06:49:23 EST 2008
Author: manik.surtani at jboss.com
Date: 2008-12-13 06:49:23 -0500 (Sat, 13 Dec 2008)
New Revision: 7321
Added:
core/branches/flat/src/main/java/org/jboss/starobrno/util/LinkedList.java
Modified:
core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMapDelta.java
core/branches/flat/src/main/java/org/jboss/starobrno/cluster/ReplicationQueue.java
core/branches/flat/src/main/java/org/jboss/starobrno/context/TransactionContextImpl.java
core/branches/flat/src/main/java/org/jboss/starobrno/eviction/algorithms/lfu/LFUQueue.java
core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/InterceptorChain.java
core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/LockingInterceptor.java
core/branches/flat/src/main/java/org/jboss/starobrno/loader/FileCacheLoader.java
core/branches/flat/src/main/java/org/jboss/starobrno/transaction/DummyTransactionManager.java
core/branches/flat/src/main/java/org/jboss/starobrno/util/ReflectionUtil.java
Log:
Used custom LinkedList impl
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-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/atomic/AtomicHashMapDelta.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -23,11 +23,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jboss.starobrno.util.LinkedList;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.util.LinkedList;
import java.util.List;
/**
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/cluster/ReplicationQueue.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/cluster/ReplicationQueue.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/cluster/ReplicationQueue.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -31,9 +31,9 @@
import org.jboss.starobrno.factories.annotations.Start;
import org.jboss.starobrno.factories.annotations.Stop;
import org.jboss.starobrno.remoting.RPCManager;
+import org.jboss.starobrno.util.LinkedList;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/context/TransactionContextImpl.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/context/TransactionContextImpl.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/context/TransactionContextImpl.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -27,11 +27,16 @@
import org.jboss.starobrno.transaction.GlobalTransaction;
import org.jboss.starobrno.util.FastCopyHashMap;
import org.jboss.starobrno.util.Immutables;
+import org.jboss.starobrno.util.LinkedList;
import javax.transaction.RollbackException;
import javax.transaction.SystemException;
import javax.transaction.Transaction;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
/**
* A transaction context specially geared to dealing with MVCC.
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/eviction/algorithms/lfu/LFUQueue.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/eviction/algorithms/lfu/LFUQueue.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/eviction/algorithms/lfu/LFUQueue.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -23,8 +23,17 @@
import org.jboss.starobrno.eviction.KeyEntry;
import org.jboss.starobrno.eviction.algorithms.SortedEvictionQueue;
+import org.jboss.starobrno.util.LinkedList;
-import java.util.*;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
/**
* LFUQueue EvictionQueue implementation for LFU Policy.
@@ -40,7 +49,7 @@
private LinkedList<KeyEntry<K>> evictionList;
private Set<KeyEntry<K>> removalQueue;
private Comparator<KeyEntry<K>> comparator;
-
+
private int numElements = 0;
protected LFUQueue()
@@ -67,7 +76,8 @@
{
evictionList.removeFirst();
removalQueue.remove(ne);
- } else
+ }
+ else
{
break;
}
@@ -200,10 +210,12 @@
if (neNodeHits > ne2NodeHits)
{
return 1;
- } else if (neNodeHits < ne2NodeHits)
+ }
+ else if (neNodeHits < ne2NodeHits)
{
return -1;
- } else if (neNodeHits == ne2NodeHits)
+ }
+ else if (neNodeHits == ne2NodeHits)
{
return 0;
}
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/InterceptorChain.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/InterceptorChain.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/InterceptorChain.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -30,10 +30,10 @@
import org.jboss.starobrno.factories.annotations.Start;
import org.jboss.starobrno.interceptors.base.CommandInterceptor;
import org.jboss.starobrno.invocation.InvocationContextContainer;
+import org.jboss.starobrno.util.LinkedList;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.LinkedList;
import java.util.List;
/**
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/LockingInterceptor.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/LockingInterceptor.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/interceptors/LockingInterceptor.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -28,7 +28,12 @@
import org.jboss.starobrno.commands.tx.CommitCommand;
import org.jboss.starobrno.commands.tx.PrepareCommand;
import org.jboss.starobrno.commands.tx.RollbackCommand;
-import org.jboss.starobrno.commands.write.*;
+import org.jboss.starobrno.commands.write.ClearCommand;
+import org.jboss.starobrno.commands.write.EvictCommand;
+import org.jboss.starobrno.commands.write.PutKeyValueCommand;
+import org.jboss.starobrno.commands.write.PutMapCommand;
+import org.jboss.starobrno.commands.write.RemoveCommand;
+import org.jboss.starobrno.commands.write.ReplaceCommand;
import org.jboss.starobrno.container.DataContainer;
import org.jboss.starobrno.container.MVCCEntry;
import org.jboss.starobrno.container.MVCCEntryCreator;
@@ -37,8 +42,8 @@
import org.jboss.starobrno.factories.annotations.Start;
import org.jboss.starobrno.interceptors.base.CommandInterceptor;
import org.jboss.starobrno.lock.LockManager;
-import org.jboss.starobrno.util.ObjectDuplicator;
+import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
@@ -267,14 +272,22 @@
{
if (useReadCommitted)
{
- Map<Object, MVCCEntry> original = ctx.getLookedUpEntries();
- if (!original.isEmpty())
+ Map<Object, MVCCEntry> lookedUpEntries = ctx.getLookedUpEntries();
+ if (!lookedUpEntries.isEmpty())
{
- Map<Object, MVCCEntry> defensiveCopy = ObjectDuplicator.duplicateMap(original);
- for (Map.Entry<Object, MVCCEntry> e : defensiveCopy.entrySet())
+ // This should be a Set but we can use an ArrayList instead for efficiency since we know that the elements
+ // will always be unique as they are keys from a Map. Also, we know the maximum size so this ArrayList
+ // should never resize.
+ List<Object> keysToRemove = new ArrayList<Object>(lookedUpEntries.size());
+ for (Map.Entry<Object, MVCCEntry> e : lookedUpEntries.entrySet())
{
- if (!e.getValue().isChanged()) ctx.removeLookedUpEntry(e.getKey());
+ if (!e.getValue().isChanged()) keysToRemove.add(e.getKey());
}
+
+ if (!keysToRemove.isEmpty())
+ {
+ for (Object key : keysToRemove) ctx.removeLookedUpEntry(key);
+ }
}
}
}
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/loader/FileCacheLoader.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/loader/FileCacheLoader.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/loader/FileCacheLoader.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -21,6 +21,16 @@
*/
package org.jboss.starobrno.loader;
+import net.jcip.annotations.ThreadSafe;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.starobrno.CacheException;
+import org.jboss.starobrno.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.starobrno.lock.StripedLock;
+import org.jboss.starobrno.marshall.EntryData;
+import org.jboss.starobrno.util.LinkedList;
+import org.jboss.util.stream.MarshalledValueInputStream;
+
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
@@ -29,21 +39,10 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import net.jcip.annotations.ThreadSafe;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jboss.starobrno.CacheException;
-import org.jboss.starobrno.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
-import org.jboss.starobrno.lock.StripedLock;
-import org.jboss.starobrno.marshall.EntryData;
-import org.jboss.util.stream.MarshalledValueInputStream;
-
/**
* Simple file-based CacheLoader implementation. Nodes are directories, attributes of a node is a file in the directory
* <p/>
@@ -69,7 +68,7 @@
* @version $Id$
*/
@ThreadSafe
-public class FileCacheLoader<K,V> extends AbstractCacheLoader<K,V>
+public class FileCacheLoader<K, V> extends AbstractCacheLoader<K, V>
{
File root = null;
String rootPath = null;
@@ -234,7 +233,7 @@
try
{
File file = getFile(key, false);
- if (! file.exists())
+ if (!file.exists())
return null;
retval = loadValue(key);
@@ -338,7 +337,7 @@
input = new MarshalledValueInputStream(fileIn);
V value = (V) getMarshaller().objectFromObjectStream(input);
K key = (K) getMarshaller().objectFromObjectStream(input);
- return new EntryData<K,V>(key, value);
+ return new EntryData<K, V>(key, value);
}
catch (FileNotFoundException fnfe)
{
@@ -436,7 +435,7 @@
public void clear()
{
File directory = new File(rootPath);
- if (! directory.exists())
+ if (!directory.exists())
return;
File[] files = directory.listFiles();
@@ -460,9 +459,9 @@
public List<EntryData<K, V>> getAllEntries()
{
- List<EntryData<K,V>> entries = new LinkedList<EntryData<K,V>>();
+ List<EntryData<K, V>> entries = new LinkedList<EntryData<K, V>>();
File directory = new File(rootPath);
- if (! directory.exists())
+ if (!directory.exists())
return entries;
File[] files = directory.listFiles();
@@ -475,7 +474,7 @@
lock(file.getName());
if (file.exists())
{
- EntryData<K,V> entry = loadEntry(file);
+ EntryData<K, V> entry = loadEntry(file);
if (entry != null)
entries.add(entry);
}
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/transaction/DummyTransactionManager.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/transaction/DummyTransactionManager.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/transaction/DummyTransactionManager.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -56,7 +56,7 @@
try
{
Properties p = new Properties();
- p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
+// p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
Context ctx = new InitialContext(p);
ctx.bind("java:/TransactionManager", instance);
ctx.bind("UserTransaction", utx);
Added: core/branches/flat/src/main/java/org/jboss/starobrno/util/LinkedList.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/util/LinkedList.java (rev 0)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/util/LinkedList.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -0,0 +1,17 @@
+package org.jboss.starobrno.util;
+
+import java.util.Iterator;
+
+/**
+ * Similar to JDK LinkedList, except this implementation uses a more efficient iterator making use of the next and previous
+ * object references in each Entry.
+ */
+
+public class LinkedList<E> extends java.util.LinkedList<E>
+{
+ @Override
+ public Iterator<E> iterator()
+ {
+ return listIterator(0);
+ }
+}
Modified: core/branches/flat/src/main/java/org/jboss/starobrno/util/ReflectionUtil.java
===================================================================
--- core/branches/flat/src/main/java/org/jboss/starobrno/util/ReflectionUtil.java 2008-12-13 00:54:00 UTC (rev 7320)
+++ core/branches/flat/src/main/java/org/jboss/starobrno/util/ReflectionUtil.java 2008-12-13 11:49:23 UTC (rev 7321)
@@ -30,7 +30,6 @@
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
/**
More information about the jbosscache-commits
mailing list