[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