You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2010/01/06 06:32:43 UTC
svn commit: r896323 - in
/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis:
cache/ cache/decorators/ cache/impl/ executor/
Author: cbegin
Date: Wed Jan 6 05:32:42 2010
New Revision: 896323
URL: http://svn.apache.org/viewvc?rev=896323&view=rev
Log:
ibatis-724 fixed: Performance inefficiency using org.apache.ibatis.cache.Cache#hasKey
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/Cache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/FifoCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LoggingCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LruCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/ScheduledCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SerializedCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SoftCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SynchronizedCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/TransactionalCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/WeakCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/impl/PerpetualCache.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/Cache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/Cache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/Cache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/Cache.java Wed Jan 6 05:32:42 2010
@@ -12,8 +12,6 @@
Object getObject(Object key);
- boolean hasKey(Object key);
-
Object removeObject(Object key);
void clear();
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/FifoCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/FifoCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/FifoCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/FifoCache.java Wed Jan 6 05:32:42 2010
@@ -41,10 +41,6 @@
return delegate.getObject(key);
}
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
- }
-
public Object removeObject(Object key) {
return delegate.removeObject(key);
}
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LoggingCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LoggingCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LoggingCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LoggingCache.java Wed Jan 6 05:32:42 2010
@@ -32,17 +32,14 @@
public Object getObject(Object key) {
requests++;
- if (hasKey(key)) {
+ final Object value = delegate.getObject(key);
+ if (value != null) {
hits++;
}
if (log.isDebugEnabled()) {
log.debug("Cache Hit Ratio [" + getId() + "]: " + getHitRatio());
}
- return delegate.getObject(key);
- }
-
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
+ return value;
}
public Object removeObject(Object key) {
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LruCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LruCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LruCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/LruCache.java Wed Jan 6 05:32:42 2010
@@ -51,10 +51,6 @@
}
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
- }
-
public Object removeObject(Object key) {
return delegate.removeObject(key);
}
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/ScheduledCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/ScheduledCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/ScheduledCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/ScheduledCache.java Wed Jan 6 05:32:42 2010
@@ -42,14 +42,6 @@
}
}
- public boolean hasKey(Object key) {
- if (clearWhenStale()) {
- return false;
- } else {
- return delegate.hasKey(key);
- }
- }
-
public Object removeObject(Object key) {
clearWhenStale();
return delegate.removeObject(key);
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SerializedCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SerializedCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SerializedCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SerializedCache.java Wed Jan 6 05:32:42 2010
@@ -35,10 +35,6 @@
return object == null ? null : deserialize((byte[]) object);
}
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
- }
-
public Object removeObject(Object key) {
return delegate.removeObject(key);
}
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SoftCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SoftCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SoftCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SoftCache.java Wed Jan 6 05:32:42 2010
@@ -59,10 +59,6 @@
return result;
}
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
- }
-
public Object removeObject(Object key) {
removeGarbageCollectedItems();
return delegate.removeObject(key);
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SynchronizedCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SynchronizedCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SynchronizedCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/SynchronizedCache.java Wed Jan 6 05:32:42 2010
@@ -43,15 +43,6 @@
}
}
- public boolean hasKey(Object key) {
- acquireReadLock();
- try {
- return delegate.hasKey(key);
- } finally {
- releaseReadLock();
- }
- }
-
public Object removeObject(Object key) {
acquireWriteLock();
try {
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/TransactionalCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/TransactionalCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/TransactionalCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/TransactionalCache.java Wed Jan 6 05:32:42 2010
@@ -32,10 +32,6 @@
return delegate.getObject(key);
}
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
- }
-
public ReadWriteLock getReadWriteLock() {
return delegate.getReadWriteLock();
}
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/WeakCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/WeakCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/WeakCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/decorators/WeakCache.java Wed Jan 6 05:32:42 2010
@@ -59,10 +59,6 @@
return result;
}
- public boolean hasKey(Object key) {
- return delegate.hasKey(key);
- }
-
public Object removeObject(Object key) {
removeGarbageCollectedItems();
return delegate.removeObject(key);
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/impl/PerpetualCache.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/impl/PerpetualCache.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/impl/PerpetualCache.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/cache/impl/PerpetualCache.java Wed Jan 6 05:32:42 2010
@@ -37,10 +37,6 @@
return cache.get(key);
}
- public boolean hasKey(Object key) {
- return cache.containsKey(key);
- }
-
public Object removeObject(Object key) {
return cache.remove(key);
}
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java Wed Jan 6 05:32:42 2010
@@ -78,8 +78,9 @@
try {
queryStack++;
CacheKey key = createCacheKey(ms, parameter, rowBounds);
- if (localCache.hasKey(key)) {
- list = (List) localCache.getObject(key);
+ final List cachedList = (List) localCache.getObject(key);
+ if (cachedList != null) {
+ list = cachedList;
} else {
localCache.putObject(key, EXECUTION_PLACEHOLDER);
try {
@@ -134,7 +135,7 @@
}
public boolean isCached(MappedStatement ms, CacheKey key) {
- return localCache.hasKey(key);
+ return localCache.getObject(key) != null;
}
public void commit(boolean required) throws SQLException {
Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java?rev=896323&r1=896322&r2=896323&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/CachingExecutor.java Wed Jan 6 05:32:42 2010
@@ -49,8 +49,9 @@
try {
if (ms.isUseCache()) {
CacheKey key = createCacheKey(ms, parameterObject, rowBounds);
- if (cache.hasKey(key)) {
- return (List) cache.getObject(key);
+ final List cachedList = (List) cache.getObject(key);
+ if (cachedList != null) {
+ return cachedList;
} else {
List list = delegate.query(ms, parameterObject, rowBounds, resultHandler);
tcm.putObject(cache, key, list);