<p>Awesome!<br>
Are you really sure about eradicating the old implementation?</p>
<p>Cheers,<br>
Sanne</p>
<div class="gmail_quote">On 6 Jul 2011 19:39, "Vladimir Blagojevic" <<a href="mailto:vblagoje@redhat.com">vblagoje@redhat.com</a>> wrote:<br type="attribution">> Hey,<br>> <br>> Ok I've issued a pull request. Please review it <br>
> <a href="https://github.com/infinispan/infinispan/pull/418">https://github.com/infinispan/infinispan/pull/418</a><br>> I am very happy with performance increase observed in new LRU. It <br>> significantly beats synchronized Map and performance is very close to <br>
> ConcurrentHashMap itself.<br>> I ran tests overnight for 12 hours (each test run is 20 minutes).<br>> <br>> Dan, please have a look at new MapStressTest and add enhancements you <br>> discussed with Galder and Sanne. Once you integrate these changes lets <br>
> do another round of testing of both LRU impls and if all goes well we <br>> can drop old LRU entirely.<br>> <br>> Cheers,<br>> Vladimir<br>> <br>> <br>> <br>> [ec2-user@ip-10-38-110-25 infinispan]$ ps -e | grep java<br>
> [ec2-user@ip-10-38-110-25 infinispan]$ cat perf_new_lru.log<br>> [INFO] Scanning for projects...<br>> [INFO] Reactor build order:<br>> [INFO] Infinispan Common Parent<br>> [INFO] Infinispan Core<br>> [INFO] Infinispan Tools<br>
> [INFO] Infinispan Query API<br>> [INFO] Infinispan Tree API<br>> [INFO] Parent pom for cachestore modules<br>> [INFO] Infinispan JDBC CacheStore<br>> [INFO] Infinispan Lucene Directory Implementation<br>
> [INFO] Infinispan JDBM CacheStore<br>> [INFO] Infinispan BDBJE CacheStore<br>> [INFO] Infinispan CloudCacheStore<br>> [INFO] Parent pom for server modules<br>> [INFO] Infinispan Server Core Module<br>
> [INFO] Infinispan Server Hotrod Module<br>> [INFO] Infinispan Client Hotrod Module<br>> [INFO] Infinispan remote CacheStore<br>> [INFO] Infinispan CassandraCacheStore<br>> [INFO] Infinispan Server Memcached Module<br>
> [INFO] Infinispan WebSocket Server<br>> [INFO] Infinispan REST Server<br>> [INFO] Infinispan RHQ Plugin<br>> [INFO] Infinispan Spring Integration<br>> [INFO] Infinispan GUI Demo<br>> [INFO] Infinispan EC2 Demo<br>
> [INFO] Infinispan Distributed Executors and Map/Reduce Demo<br>> [INFO] Infinispan EC2 Demo UI<br>> [INFO] Infinispan Directory Demo<br>> [INFO] Infinispan Lucene Directory Demo<br>> [INFO] Infinispan GridFileSystem WebDAV interface<br>
> [INFO] Infinispan Distribution<br>> [INFO] <br>> ------------------------------------------------------------------------<br>> [INFO] Building Infinispan Common Parent<br>> [INFO] task-segment: [test]<br>
> [INFO] <br>> ------------------------------------------------------------------------<br>> [INFO] snapshot org.jboss.ws:jbossws-api:1.0.0-SNAPSHOT: checking for <br>> updates from jboss-public-repository<br>
> [INFO] snapshot org.jboss.ws:jbossws-api:1.0.0-SNAPSHOT: checking for <br>> updates from jboss-public-repository-group<br>> [INFO] snapshot org.jboss.ws:jbossws-parent:1.0.10-SNAPSHOT: checking <br>> for updates from jboss-public-repository<br>
> [INFO] snapshot org.jboss.ws:jbossws-parent:1.0.10-SNAPSHOT: checking <br>> for updates from jboss-public-repository-group<br>> [INFO] [enforcer:enforce {execution: enforce-java}]<br>> [INFO] <br>> ------------------------------------------------------------------------<br>
> [INFO] Building Infinispan Core<br>> [INFO] task-segment: [test]<br>> [INFO] <br>> ------------------------------------------------------------------------<br>> [INFO] [enforcer:enforce {execution: enforce-java}]<br>
> [INFO] [resources:resources {execution: default-resources}]<br>> [INFO] Using 'UTF-8' encoding to copy filtered resources.<br>> [INFO] Copying 17 resources<br>> [INFO] [compiler:compile {execution: default-compile}]<br>
> [INFO] Compiling 52 source files to <br>> /home/ec2-user/infinispan/core/target/classes<br>> [INFO] Preparing exec:java<br>> [WARNING] Removing: java from forked lifecycle, to prevent recursive <br>> invocation.<br>
> [INFO] [enforcer:enforce {execution: enforce-java}]<br>> [INFO] [exec:java {execution: default}]<br>> Generating schema file in <br>> /home/ec2-user/infinispan/core/src/main/resources/schema<br>> Using file name infinispan-config-5.0.xsd for schema<br>
> Generated schema file successfully<br>> [INFO] [resources:testResources {execution: default-testResources}]<br>> [INFO] Using 'UTF-8' encoding to copy filtered resources.<br>> [INFO] Copying 24 resources<br>
> [INFO] [compiler:testCompile {execution: default-testCompile}]<br>> [INFO] Nothing to compile - all classes are up to date<br>> [INFO] [surefire:test {execution: default-test}]<br>> [INFO] Surefire report directory: <br>
> /home/ec2-user/infinispan/core/target/surefire-reports<br>> <br>> -------------------------------------------------------<br>> T E S T S<br>> -------------------------------------------------------<br>> Running TestSuite<br>
> Performance for container BoundedConcurrentHashMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 188<br>> Average put ops/ms 126<br>> Average remove ops/ms 128<br>
> Size = 743454<br>> Performance for container BoundedConcurrentHashMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 54<br>> Average put ops/ms 33<br>> Average remove ops/ms 41<br>
> Size = 762775<br>> Performance for container BoundedConcurrentHashMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 26<br>> Average put ops/ms 15<br>> Average remove ops/ms 19<br>
> Size = 758876<br>> [testng-MapStressTest] Test <br>> testBufferedConcurrentHashMapLRU(org.infinispan.stress.MapStressTest) <br>> succeeded.<br>> Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.<br>
> Performance for container BoundedConcurrentHashMap max capacity is <br>> 131072[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 305<br>> Average put ops/ms 99<br>> Average remove ops/ms 213<br>
> Size = 98200<br>> Performance for container BoundedConcurrentHashMap max capacity is <br>> 131072[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 89<br>> Average put ops/ms 30<br>> Average remove ops/ms 55<br>
> Size = 96159<br>> Performance for container BoundedConcurrentHashMap max capacity is <br>> 131072[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 47<br>> Average put ops/ms 12<br>> Average remove ops/ms 19<br>
> Size = 96977<br>> [testng-MapStressTest] Test <br>> testBufferedConcurrentHashMapLRU(org.infinispan.stress.MapStressTest) <br>> succeeded.<br>> Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.<br>
> Performance for container BoundedConcurrentHashMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 234<br>> Average put ops/ms 112<br>> Average remove ops/ms 158<br>
> Size = 393215<br>> Performance for container BoundedConcurrentHashMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 68<br>> Average put ops/ms 32<br>> Average remove ops/ms 47<br>
> Size = 391512<br>> Performance for container BoundedConcurrentHashMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 35<br>> Average put ops/ms 15<br>> Average remove ops/ms 21<br>
> Size = 390856<br>> [testng-MapStressTest] Test <br>> testBufferedConcurrentHashMapLRU(org.infinispan.stress.MapStressTest) <br>> succeeded.<br>> Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.<br>
> Performance for container CacheImpl max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 104<br>> Average put ops/ms 48<br>> Average remove ops/ms 58<br>> Size = 738030<br>
> Performance for container CacheImpl max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 30<br>> Average put ops/ms 13<br>> Average remove ops/ms 22<br>> Size = 774764<br>
> Performance for container CacheImpl max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 16<br>> Average put ops/ms 6<br>> Average remove ops/ms 13<br>> Size = 776668<br>
> [testng-MapStressTest] Test <br>> testCache(org.infinispan.stress.MapStressTest) succeeded.<br>> Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.<br>> Performance for container CacheImpl max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 220<br>> Average put ops/ms 44<br>> Average remove ops/ms 123<br>> Size = 98304<br>> Performance for container CacheImpl max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 66<br>> Average put ops/ms 12<br>> Average remove ops/ms 39<br>> Size = 97832<br>> Performance for container CacheImpl max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 34<br>> Average put ops/ms 5<br>> Average remove ops/ms 21<br>> Size = 97802<br>> [testng-MapStressTest] Test <br>> testCache(org.infinispan.stress.MapStressTest) succeeded.<br>
> Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.<br>> Performance for container CacheImpl max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 144<br>
> Average put ops/ms 44<br>> Average remove ops/ms 77<br>> Size = 393216<br>> Performance for container CacheImpl max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 42<br>
> Average put ops/ms 12<br>> Average remove ops/ms 28<br>> Size = 392794<br>> Performance for container CacheImpl max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 22<br>
> Average put ops/ms 6<br>> Average remove ops/ms 16<br>> Size = 387007<br>> [testng-MapStressTest] Test <br>> testCache(org.infinispan.stress.MapStressTest) succeeded.<br>> Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.<br>
> Performance for container ConcurrentHashMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 303<br>> Average put ops/ms 235<br>> Average remove ops/ms 240<br>
> Size = 711798<br>> Performance for container ConcurrentHashMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 88<br>> Average put ops/ms 68<br>> Average remove ops/ms 70<br>
> Size = 669381<br>> Performance for container ConcurrentHashMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 45<br>> Average put ops/ms 29<br>> Average remove ops/ms 31<br>
> Size = 758993<br>> [testng-MapStressTest] Test <br>> testConcurrentHashMap(org.infinispan.stress.MapStressTest) succeeded.<br>> Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.<br>> Performance for container ConcurrentHashMap max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 261<br>> Average put ops/ms 198<br>> Average remove ops/ms 197<br>> Size = 667905<br>> Performance for container ConcurrentHashMap max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 75<br>> Average put ops/ms 55<br>> Average remove ops/ms 56<br>> Size = 614548<br>> Performance for container ConcurrentHashMap max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 37<br>> Average put ops/ms 24<br>> Average remove ops/ms 25<br>> Size = 789004<br>> [testng-MapStressTest] Test <br>> testConcurrentHashMap(org.infinispan.stress.MapStressTest) succeeded.<br>
> Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.<br>> Performance for container ConcurrentHashMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 305<br>
> Average put ops/ms 231<br>> Average remove ops/ms 236<br>> Size = 656558<br>> Performance for container ConcurrentHashMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 88<br>
> Average put ops/ms 66<br>> Average remove ops/ms 68<br>> Size = 716811<br>> Performance for container ConcurrentHashMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 44<br>
> Average put ops/ms 30<br>> Average remove ops/ms 31<br>> Size = 757864<br>> [testng-MapStressTest] Test <br>> testConcurrentHashMap(org.infinispan.stress.MapStressTest) succeeded.<br>> Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.<br>
> Performance for container SynchronizedMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 171<br>> Average put ops/ms 171<br>> Average remove ops/ms 142<br>
> Size = 679283<br>> Performance for container SynchronizedMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 52<br>> Average put ops/ms 52<br>> Average remove ops/ms 38<br>
> Size = 806142<br>> Performance for container SynchronizedMap max capacity is <br>> 1048576[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 26<br>> Average put ops/ms 27<br>> Average remove ops/ms 19<br>
> Size = 860559<br>> [testng-MapStressTest] Test <br>> testHashMap(org.infinispan.stress.MapStressTest) succeeded.<br>> Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.<br>> Performance for container SynchronizedMap max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 171<br>> Average put ops/ms 172<br>> Average remove ops/ms 151<br>> Size = 722315<br>> Performance for container SynchronizedMap max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 51<br>> Average put ops/ms 54<br>> Average remove ops/ms 47<br>> Size = 810163<br>> Performance for container SynchronizedMap max capacity is <br>
> 131072[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 25<br>> Average put ops/ms 26<br>> Average remove ops/ms 22<br>> Size = 848856<br>> [testng-MapStressTest] Test <br>> testHashMap(org.infinispan.stress.MapStressTest) succeeded.<br>
> Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.<br>> Performance for container SynchronizedMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[8,2,1]<br>> Average get ops/ms 169<br>
> Average put ops/ms 173<br>> Average remove ops/ms 151<br>> Size = 802294<br>> Performance for container SynchronizedMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[32,4,2]<br>> Average get ops/ms 51<br>
> Average put ops/ms 53<br>> Average remove ops/ms 47<br>> Size = 666371<br>> Performance for container SynchronizedMap max capacity is <br>> 524288[numReaders,numWriters,numRemovers]=[64,8,3]<br>> Average get ops/ms 26<br>
> Average put ops/ms 26<br>> Average remove ops/ms 21<br>> Size = 829093<br>> [testng-MapStressTest] Test <br>> testHashMap(org.infinispan.stress.MapStressTest) succeeded.<br>> Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.<br>
> Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: <br>> 43,209.511 sec<br>> <br>> Results :<br>> <br>> Tests run: 12, Failures: 0, Errors: 0, Skipped: 0<br>> <br>> [INFO] <br>> ------------------------------------------------------------------------<br>
> [INFO] Building Infinispan Tools<br>> [INFO] task-segment: [test]<br>> [INFO] <br>> ------------------------------------------------------------------------<br>> [INFO] snapshot org.infinispan:infinispan-core:5.0.0-SNAPSHOT: checking <br>
> for updates from jboss-public-repository<br>> [INFO] [enforcer:enforce {execution: enforce-java}]<br>> [INFO] [resources:resources {execution: default-resources}]<br>> [INFO] Using 'UTF-8' encoding to copy filtered resources.<br>
> [INFO] Copying 2 resources<br>> [INFO] [compiler:compile {execution: default-compile}]<br>> [INFO] Nothing to compile - all classes are up to date<br>> [INFO] [resources:testResources {execution: default-testResources}]<br>
> [INFO] Using 'UTF-8' encoding to copy filtered resources.<br>> [INFO] skip non existing resourceDirectory <br>> /home/ec2-user/infinispan/tools/src/test/resources<br>> [INFO] [compiler:testCompile {execution: default-testCompile}]<br>
> [INFO] Nothing to compile - all classes are up to date<br>> [INFO] [surefire:test {execution: default-test}]<br>> [INFO] Surefire report directory: <br>> /home/ec2-user/infinispan/tools/target/surefire-reports<br>
> <br>> -------------------------------------------------------<br>> T E S T S<br>> -------------------------------------------------------<br>> There are no tests to run.<br>> <br>> Results :<br>> <br>
> Tests run: 0, Failures: 0, Errors: 0, Skipped: 0<br>> <br>> [INFO] <br>> ------------------------------------------------------------------------<br>> [ERROR] BUILD FAILURE<br>> [INFO] <br>> ------------------------------------------------------------------------<br>
> [INFO] No tests were executed! (Set -DfailIfNoTests=false to ignore <br>> this error.)<br>> [INFO] <br>> ------------------------------------------------------------------------<br>> [INFO] For more information, run Maven with the -e switch<br>
> [INFO] <br>> ------------------------------------------------------------------------<br>> [INFO] Total time: 720 minutes 23 seconds<br>> [INFO] Finished at: Wed Jul 06 17:13:51 UTC 2011<br>> [INFO] Final Memory: 206M/2001M<br>
> [INFO] <br>> ------------------------------------------------------------------------<br>> [ec2-user@ip-10-38-110-25 infinispan]$<br>> _______________________________________________<br>> infinispan-dev mailing list<br>
> <a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>> <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
</div>