What do you mean by serialized?
I mean that in my tests every thread adds equal amount of time to the results. E.g. if one thread requires 200 ms to get 1000 values, then 2 threads do the same work for 400 ms and etc.
Hmmmm, interesting. Can post your test here so that we can run it on our side?
While preparing the test application I figured out a few things.
1) The contention point(s) might as well be inside the our own application. E.g. internal memory manager, the OS when system resources are requested etc.
2) The performance provided by the Infinispan’s REST interface is adequate to our current needs
However, I’m attaching a simple test application. Here are the prerequisites .
1) It is a 32-bit Windows application written in Delphi. TIdHTTP component is used to access the REST service.
2) The application populates the cache with specified number of items
3) The key is a sequential number converted into string – 1, 2, 3 etc.
4) The value is a string ‘abcdefg’.
5) Application creates specified number of threads
6) Each thread performs 5 loops. Within each loop cache is accessed specified number of times (number of items populated)
7) The Infinispan is configured with default settings
The tests have been performed against JBoss AS 7.1.1 standalone and clustered via load balancer with different number of nodes all on the same box (4-core Intel i5 with 8 GB of memory). The testing results are pretty much consistent.
If you guys are willing to give it a try, please let me know your thoughts afterwards – no matter if you find any issue or not.
Thank you for your time,
PS: Just a few words off the topic. I’m really impressed with Infinispan. Performance, simplicity of use, simplicity of configuration, CDI support, works right out of the box, etc., etc. – all this deserves respect. We have our own implementation of distributed cache in Delphi and I know way too well how many problems there are on the way until it finally starts working.
InfinispanTest.zip 6.8 MB