4 Replies Latest reply on May 5, 2012 11:40 AM by vchmakov

    How to scale with REST server

    vchmakov

      Hi,

       

      It seems like all requests via REST interface are serialized. I’m not sure on what level the serialization occurs. Can anyone please advise?

       

      Thanks,

       

      Vlad

        • 1. Re: How to scale with REST server
          galder.zamarreno

          What do you mean by serialized?

          • 2. Re: How to scale with REST server
            vchmakov

            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.

            • 3. Re: How to scale with REST server
              galder.zamarreno

              Hmmmm, interesting. Can post your test here so that we can run it on our side?

              • 4. Re: How to scale with REST server
                vchmakov

                Hi,

                 

                 

                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,

                 

                 

                Vlad

                 

                 

                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.