0

ENTMQ-1093

 3 years ago
source link: https://issues.redhat.com/browse/ENTMQ-1093?_sscc=t
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Improve Virtual Topic performance

Details

  • Type: Enhancement
  • Status: Closed
  • Priority: Major
  • Resolution: Done
  • Affects Version/s: None
  • Fix Version/s: JBoss A-MQ 6.2.1
  • Component/s: None
  • Labels:

Description

Description - Performance of VTs are very bad compared to Queues and TopicsThis was discussed with Gary Tully and looks like virtual topics are slower because of the design,
For Virtual Topics with 1 pub to 10 subs there would be 10 writes for each queue and in case of NFS these messages have to be written and synced each time.Suggested changes -
A. Write the message only once and the queues subscribed gain a copy from there. This is like levelDB.
B. If concurrent sends on composites are faster but composites are not ok for sutter, we can try to implement that logic for vt's.

Activity

added a comment - 2015/Jul/21 11:28 AM

Moved from ENTESB after Fuse bug triage.

added a comment - 2015/Aug/06 11:21 AM

29584a776dc0e3e2dbaa1983fc2a51f2aae3bdec
5.11.0.redhat-6-2-x-patch

added a comment - 2015/Aug/07 7:27 AM

http://origin-repository.jboss.org/nexus/content/groups/ea/org/jboss/fuse/jboss-fuse-full/6.2.1.redhat-019/
is what you want.

the tag with the fix is: activemq-5.11.0.redhat-621019

git log:

commit 29584a776dc0e3e2dbaa1983fc2a51f2aae3bdec

Author: gtully <[email protected]>

Date: Thu Aug 6 11:55:45 2015 +0100

AMQ-5920 - use implicit broker transaction for virtual topic fanout and
add concurrentSend=true option to use an executor to fanout.

(cherry picked from commit 340728f2d1eb4c1aa74f4002c5b16bf7a70c57b7)

I think that ie ER2 of 6.2.1

added a comment - 2015/Aug/10 7:16 PM - edited

Hi Gary,

What do we need to set on configuration side?

<virtualDestinations>
<virtualTopic name=">" ... concurrentSend="true"

Is " use implicit broker transaction for virtual topic fanout a" done automatically?

Sorry if I've mis-read anything,
Susan

added a comment - 2015/Aug/11 5:23 AM

yep. if there is no client transaction the broker will make one for the fanout under the covers. when conurrentsend is true each fanout send will be a separate task on the broker executor so can ocurr in parallel.

added a comment - 2015/Aug/11 8:48 AM

Hi Gary,

Thanks for the information. I ran a few quick tests just to make sure everything was in order on my side this time:

<virtualTopic name="vt.>" prefix="vt.perfTest.>." selectorAware="false" concurrentSend="true"/>

Is invalid in build 19 [1]. Looking at your unit test - it seems to be in the right place? [2]

Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'concurrentSend' of bean class [org.apache.activemq.broker.region.virtual.VirtualTopic]: Bean property 'concurrentSend' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

Apologies if I am missing something obvious ...

https://fisheye6.atlassian.com/changelog/activemq-git?cs=340728f2d1eb4c1aa74f4002c5b16bf7a70c57b7

People

Assignee:

garytully Gary Tully Reporter:

tpothine Chaitanya Pothineni

Votes: 0 Vote for this issue Watchers: 5 Start watching this issue

Dates

Created: 2015/Jul/17 3:13 PM Updated: 2021/Jan/04 11:17 AM Resolved: 2015/Aug/06 11:21 AM

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK