3 Replies Latest reply on Jul 15, 2010 12:13 PM by clebert.suconic

    MDB Alternative + Performance

    ohughes

      Hi,

       

      I was just reading the performance tuning for HornetQ (http://hornetq.sourceforge.net/docs/hornetq-2.1.0.Final/user-manual/en/html/perf-tuning.html) and it specifies that you should not use MDBs just for the sake of it, and we are at the start of our development, and I would like to know how I would implement a standard Message Consumer in JBoss?

       

      Performance is key for us, and every little helps :-)  We are looking to acheive at least 30,000 m/s with durable messages, a big ask I know, but if anyone has done anything like this and can give any advice, then I'll gladly take it :-)

       

      Thanks in advance,

      Osian

        • 1. Re: MDB Alternative + Performance
          ohughes

          I have done some research, and thought about deploying the consumer as a service within JBoss.  Then it is possible to manage the number of threads that are deployed, etc.

           

          Anyone any thoughts around this approach?

          • 2. Re: MDB Alternative + Performance
            timfox

            Before jumping to any conclusions I would recommend measuring the performance and see if it is acceptable to you.

             

            30K messages per sec is a high target.

             

            If you are talking about just consuming the messages (the messages are already in the queue), then this will be impossible with a single consumer.

             

            Most disks can do maybe 250 syncs / sec. That means max 250 messages per sec, if you're properly syncing to disk. With an expensive RAID / SAN you can go to a few thousand maybe.

             

            Non volatile write cache on the disk can also probably get you to around a few thousand.

             

            Some very expensive solid state storage also has much lower write latencies.

             

            By parallellising syncs with multiple consumers you can increase the rate. We've done around 9K with hornetq with 40 concurrent consumers on a disk that can do 250K syncs / sec. This is well in excess of what any of our competition can do.

             

            I think you need to be a bit more realistic.

             

            Of course if you batch messages into txs you can also improve perf.

            • 3. Re: MDB Alternative + Performance
              clebert.suconic
              By parallellising syncs with multiple consumers you can increase the rate. We've done around 9K with hornetq with 40 concurrent consumers on a disk that can do 250K syncs / sec. This is well in excess of what any of our competition can do.

              Just correcting a typo to avoid any possible confusion. I think you got the typo but just to be safe:

               

              " with 40 concurrent consumers on a disk that can do 250 syncs / sec"

               

               

              ^^^ replace 250K per 250.