activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dejan Bosanac (JIRA)" <>
Subject [jira] [Commented] (AMQ-4628) Improve Performance of JDBC store with large number of messages
Date Thu, 11 Jul 2013 14:21:48 GMT


Dejan Bosanac commented on AMQ-4628:

svn commit 1502206 contains the improvement related to XID column. The column was blob and
not indexed, and most of the queries for non-xa case uses "AND XID IS NULL" in the queries,
which kills the performance on large tables.

The change was introduced to treat XID as String, and put it into indexed varchar column.

In my tests it made the broker work properly with close to 2 million messages.

The testing scenario:

* Download the latest snapshot with the fix (or build locally) 

* I introduced a bit optimized configuration that turns off every non-essential feature, like
expiry processing, database cleanup and priority messages. So start a broker with

{code}bin/activemq console xbean:conf/activemq-jdbc-performance.xml{code}

* Send large number of messages with

{code}ant producer -Durl=tcp://localhost:61616 -DparallelThreads=10 -Dtransacted=true -Dsubject=BenchmarkQueue
-Dmax=200000 -Ddurable=true -Dbatch=1000{code}

Note that I added batch to work with producer tool, so we can send faster

* Restart the broker to check broker startup time

* Consumer messages with something like

{code}ant consumer -Durl=tcp://localhost:61616 -DparallelThreads=10 -Dtransacted=true -Dsubject=BenchmarkQueue

I tested with local MySQL and it seems to work fine. It'd be good if people could test it
with other RDBMS they use (Oracle, Postgres, etc.), to check if there's any other bottlenecks.
> Improve Performance of JDBC store with large number of messages
> ---------------------------------------------------------------
>                 Key: AMQ-4628
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.8.0
>            Reporter: Dejan Bosanac
>            Assignee: Dejan Bosanac
>             Fix For: 5.9.0
> Currently JDBC store doesn't behave well when there's a huge backlog of messages (like
1 million or more). With some SQL improvements, we can make it work properly for this use
case as well.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message