qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Rudyy (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (QPID-8244) [Broker-J] Optimize fanout exchange routing functionality
Date Wed, 19 Sep 2018 12:30:00 GMT

     [ https://issues.apache.org/jira/browse/QPID-8244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Alex Rudyy updated QPID-8244:
    Status: Reviewable  (was: In Progress)

> [Broker-J] Optimize fanout exchange routing functionality
> ---------------------------------------------------------
>                 Key: QPID-8244
>                 URL: https://issues.apache.org/jira/browse/QPID-8244
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Broker-J
>    Affects Versions: qpid-java-broker-7.0.6
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>            Priority: Major
>             Fix For: qpid-java-broker-7.1.0, qpid-java-broker-7.0.7
> Whilst investigating a performance issue reported as part of QPID-8238 I ran a java profiler
which had detected some performance loss on creation of intermediate map objects and copying
data between intermediate maps in {{org.apache.qpid.server.exchange.TopicExchangeImpl#getMatchedDestinations}}
and {{org.apache.qpid.server.exchange.topic.TopicExchangeResult#processMessage(org.apache.qpid.server.filter.Filterable)}}.

> Effectively, the routing functionality converts the collection of TopicMatcherResult
got based on message routing key into a map where keys are route destinations and values are
routing/replacement keys. The conversions is done in {{TopicExchangeImpl#getMatchedDestinations}}
using intermediate map returned from  {{TopicExchangeResult#processMessage}} and containing
the destination as a key and routing replacement key as a value. Than, multiple maps (representing
each TopicMatcherResult ) are merged into a single map.
> I committed the changes [ https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=0510ed3
]  eliminating the need for intermediate map creation in {{TopicExchangeResult#processMessage}}.
It also simplifies the code. 
> The commit left the old implementation untouched but marked it as Deprecated in order
to keep public methods unchanged as the next version is minor release rather major one. 
> Following [review comments from Keith Wall|https://issues.apache.org/jira/browse/QPID-8238?focusedCommentId=16610224&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16610224]
I created this JIRA to track exchange changes and reapply the commit [0510ed3|https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=0510ed3]

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org

View raw message