[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