Author: doogie
Date: Wed May 26 14:23:11 2010 New Revision: 948449 URL: http://svn.apache.org/viewvc?rev=948449&view=rev Log: Re-apply 948328, which brings us back to using the more efficient clhm, but now UtilCache is not strictly least-recently-used. Instead, it's more of a less-recently-used. This difference can be seen when reducing the max-in-memory setting(but not reducing completely to 0). Added: ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar Removed: ofbiz/trunk/framework/base/lib/clhm-20100316.jar Modified: ofbiz/trunk/.classpath ofbiz/trunk/LICENSE ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java Modified: ofbiz/trunk/.classpath URL: http://svn.apache.org/viewvc/ofbiz/trunk/.classpath?rev=948449&r1=948448&r2=948449&view=diff ============================================================================== --- ofbiz/trunk/.classpath (original) +++ ofbiz/trunk/.classpath Wed May 26 14:23:11 2010 @@ -15,7 +15,7 @@ <classpathentry kind="lib" path="framework/base/lib/avalon-util-exception-1.0.0.jar"/> <classpathentry kind="lib" path="framework/base/lib/barcode4j-fop-ext-complete-2.0.jar"/> <classpathentry kind="lib" path="framework/base/lib/batik-all-1.7.jar"/> - <classpathentry kind="lib" path="framework/base/lib/clhm-20100316.jar"/> + <classpathentry kind="lib" path="framework/base/lib/clhm-release-1.0-lru.jar"/> <classpathentry kind="lib" path="framework/base/lib/hamcrest-all-1.2.jar"/> <classpathentry kind="lib" path="framework/base/lib/fop-0.95.jar"/> <classpathentry kind="lib" path="framework/base/lib/freemarker-2.3.15.jar"/> Modified: ofbiz/trunk/LICENSE URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=948449&r1=948448&r2=948449&view=diff ============================================================================== --- ofbiz/trunk/LICENSE (original) +++ ofbiz/trunk/LICENSE Wed May 26 14:23:11 2010 @@ -21,7 +21,7 @@ ofbiz/trunk/framework/base/lib/avalon-fr ofbiz/trunk/framework/base/lib/avalon-util-exception-1.0.0.jar ofbiz/trunk/framework/base/lib/batik-all-1.7.jar ofbiz/trunk/framework/base/lib/barcode4j-fop-ext-complete-2.0.jar -ofbiz/trunk/framework/base/lib/clhm-20100316.jar +ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar ofbiz/trunk/framework/base/lib/jakarta-regexp-1.5.jar ofbiz/trunk/framework/base/lib/jpim-0.1.jar ofbiz/trunk/framework/base/lib/juel-2.2.1.jar Added: ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar?rev=948449&view=auto ============================================================================== Files ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar (added) and ofbiz/trunk/framework/base/lib/clhm-release-1.0-lru.jar Wed May 26 14:23:11 2010 differ Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java?rev=948449&r1=948448&r2=948449&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/UtilCache.java Wed May 26 14:23:11 2010 @@ -38,7 +38,9 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; -import com.reardencommerce.kernel.collections.shared.evictable.ConcurrentLinkedHashMap; +import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; +import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.Builder; +import com.googlecode.concurrentlinkedhashmap.Weighers; import javolution.util.FastList; import javolution.util.FastMap; @@ -143,7 +145,9 @@ public class UtilCache<K, V> implements if (maxMemSize == 0) { memoryTable = new ConcurrentHashMap<Object, CacheLine<V>>(); } else { - memoryTable = ConcurrentLinkedHashMap.create(ConcurrentLinkedHashMap.EvictionPolicy.LRU, maxMemSize); + memoryTable = new Builder<Object, CacheLine<V>>() + .maximumWeightedCapacity(maxMemSize) + .build(); } if (this.useFileSystemStore) { // create the manager the first time it is needed @@ -723,7 +727,9 @@ public class UtilCache<K, V> implements ((ConcurrentLinkedHashMap) this.memoryTable).setCapacity(newInMemory); return; } else { - this.memoryTable = ConcurrentLinkedHashMap.create(ConcurrentLinkedHashMap.EvictionPolicy.LRU, newInMemory); + this.memoryTable =new Builder<Object, CacheLine<V>>() + .maximumWeightedCapacity(newInMemory) + .build(); } } else { this.memoryTable = new ConcurrentHashMap<Object, CacheLine<V>>(); Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java?rev=948449&r1=948448&r2=948449&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/cache/test/UtilCacheTests.java Wed May 26 14:23:11 2010 @@ -346,9 +346,8 @@ public class UtilCacheTests extends Gene assertKey(s, cache, s, new String(s), new String(":" + s), i + 1, map); } cache.setMaxInMemory(2); - for (int i = 0; i < size - 2; i++) { - map.remove(Integer.toString(i)); - } + assertEquals("cache.size", 2, cache.size()); + map.keySet().retainAll(cache.getCacheLineKeys()); assertEquals("map-keys", map.keySet(), cache.getCacheLineKeys()); assertEquals("map-values", map.values(), cache.values()); cache.setMaxInMemory(0); |
Free forum by Nabble | Edit this page |