[
https://issues.apache.org/jira/browse/AMQ-4628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13705869#comment-13705869
]
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 -Dmax=80000{code}
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: https://issues.apache.org/jira/browse/AMQ-4628
> 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: http://www.atlassian.com/software/jira