[jbosscache-commits] JBoss Cache SVN: r7610 - in core/trunk/src: main/java/org/jboss/cache/interceptors and 4 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Jan 29 07:43:31 EST 2009


Author: manik.surtani at jboss.com
Date: 2009-01-29 07:43:31 -0500 (Thu, 29 Jan 2009)
New Revision: 7610

Modified:
   core/trunk/src/main/java/org/jboss/cache/InternalNode.java
   core/trunk/src/main/java/org/jboss/cache/NodeSPI.java
   core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
   core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
   core/trunk/src/main/java/org/jboss/cache/invocation/NodeInvocationDelegate.java
   core/trunk/src/main/java/org/jboss/cache/mvcc/NodeReference.java
   core/trunk/src/test/java/org/jboss/cache/mock/NodeSpiMock.java
   core/trunk/src/test/resources/log4j.xml
Log:
JBCACHE-1471 -  Slow cache.get for fqn with a large number of key/value entries.

Modified: core/trunk/src/main/java/org/jboss/cache/InternalNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/InternalNode.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/main/java/org/jboss/cache/InternalNode.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -58,6 +58,8 @@
 
    Set<K> getKeys();
 
+   boolean containsKey(K key);
+
    void setInternalState(Map state);
 
    Map getInternalState(boolean onlyInternalState);

Modified: core/trunk/src/main/java/org/jboss/cache/NodeSPI.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/NodeSPI.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/main/java/org/jboss/cache/NodeSPI.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -417,7 +417,16 @@
     */
    V getDirect(K key);
 
+   /**
+    * Returns true if a mapping exists for this key. Returns false if no
+    * mapping exists.
+    *
+    * @param key The key checked for inclusion in the node data.
+    * @return true if a mapping exists for the key, false if not.
+    */
+   boolean containsKeyDirect(K key);
 
+
    /**
     * Functionally the same as {@link #clearData()}  except that it operates directly on the node and bypasses the
     * interceptor chain.

Modified: core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -432,6 +432,11 @@
       return Immutables.immutableSetCopy(data.keySet());
    }
 
+   public boolean containsKey(K key)
+   {
+      return data != null && data.containsKey(key);
+   }
+
    public boolean removeChild(Object childName)
    {
       return children.remove(childName) != null;

Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -438,7 +438,8 @@
             if (trace) log.trace("Don't load [" + fqn + "], key requested is null");
             return false;
          }
-         if (n.getKeysDirect().contains(key))
+         
+         if (n.containsKeyDirect(key))
          {
             if (trace) log.trace("Don't load [" + fqn + "], already have necessary key in memory");
             return false;
@@ -544,4 +545,4 @@
    {
       // this is a no-op.  Only used by subclasses.
    }
-}
\ No newline at end of file
+}

Modified: core/trunk/src/main/java/org/jboss/cache/invocation/NodeInvocationDelegate.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/invocation/NodeInvocationDelegate.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/main/java/org/jboss/cache/invocation/NodeInvocationDelegate.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -243,6 +243,10 @@
       node.clear();
    }
 
+   public boolean containsKeyDirect(K key) {
+       return node.containsKey(key);
+   }
+
    public Set<K> getKeysDirect()
    {
       return node.getKeys();

Modified: core/trunk/src/main/java/org/jboss/cache/mvcc/NodeReference.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/mvcc/NodeReference.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/main/java/org/jboss/cache/mvcc/NodeReference.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -202,6 +202,11 @@
       return delegate.getKeys();
    }
 
+   public final boolean containsKey(K key)
+   {
+       return delegate.containsKey(key);
+   }
+
    public final void setInternalState(Map state)
    {
       delegate.setInternalState(state);

Modified: core/trunk/src/test/java/org/jboss/cache/mock/NodeSpiMock.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/mock/NodeSpiMock.java	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/test/java/org/jboss/cache/mock/NodeSpiMock.java	2009-01-29 12:43:31 UTC (rev 7610)
@@ -237,6 +237,11 @@
       return data.get(key);
    }
 
+   public boolean containsKeyDirect(Object key)
+   {
+      return data != null && data.containsKey(key);
+   }
+
    public void clearDataDirect()
    {
       data.clear();

Modified: core/trunk/src/test/resources/log4j.xml
===================================================================
--- core/trunk/src/test/resources/log4j.xml	2009-01-29 00:04:52 UTC (rev 7609)
+++ core/trunk/src/test/resources/log4j.xml	2009-01-29 12:43:31 UTC (rev 7610)
@@ -84,8 +84,8 @@
 
     <root>
         <priority value="WARN"/>
-        <appender-ref ref="FILE"/>
-        <!-- <appender-ref ref="CONSOLE"/> -->
+        <!--<appender-ref ref="FILE"/>-->
+         <appender-ref ref="CONSOLE"/>
     </root>
 
 </log4j:configuration>




More information about the jbosscache-commits mailing list