camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Whiteside (Issue Comment Edited) (JIRA)" <j...@apache.org>
Subject [jira] [Issue Comment Edited] (CAMEL-4863) Using <threads>/threads() is ALOT slower than using the seda:endpoint
Date Thu, 05 Jan 2012 16:53:47 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-4863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13180449#comment-13180449
] 

Aaron Whiteside edited comment on CAMEL-4863 at 1/5/12 4:52 PM:
----------------------------------------------------------------

I'll come up with a demo to illustrate the problem, as the full route was using a custom component.

I talked this over with jamieg on IRC before opening a ticket. I can paste the full conversation
here if you wish.

Also correct me if I am wrong: The <threads>/threads() DSL is intended to allow processing
part of a route asynchronously, which also has the side effect of processing part of a route
in parallel.

This is essentially what the seda endpoint provides, so in my eyes for my needs they are equivalent.
I would note that using the threads DSL is also easier/cleaner syntactically, then having
to use another route and seda.

So since the threads DSL is just a wrapper around a ServiceExecutor just like the seda endpoint
is, they should be roughly the same in terms of performance - At least in my mind.
                
      was (Author: aaronjwhiteside):
    I'll come up with a demo to illustrate the problem, as the full route was using a custom
component.

I talked this over with jamieg on IRC before opening a ticket. I can paste the full conversation
here if you wish.
                  
> Using <threads>/threads() is ALOT slower than using the seda:endpoint
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-4863
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4863
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.9.0
>         Environment: JBoss 7.1 CR1b
>            Reporter: Aaron Whiteside
>            Priority: Critical
>              Labels: performance, seda, threading, threads
>
> Snippets from my routing file:
> {code:xml}
> <threads maxPoolSize="10" maxQueueSize="10">
>    <to uri="jms:queue:testQueue?deliveryPersistent=true"/>
> </threads>
> {code}
> compared to:
> {code:xml}
> <to uri="seda:test?concurrentConsumers=10&size=10"/>
> {code}
> {code:xml}
> <from uri="seda:test?concurrentConsumers=10&size=10"/>
> <to uri="jms:queue:testQueue?deliveryPersistent=true"/>
> {code}
> Using <threads> I get about 600 requests/per second.
> Using seda endpoint I get about 3000 requests/per second.
> Looking at the thread pools created by Camel in jconsole: I can see that the one created
by <threads> is mostly idle as compared to the one created by the seda endpoint which
is always busy.
> Also in the MBean Camel creates for it's managed thread pools, for the ThreadPool created
by <threads> the TaskQueueSize attribute is almost always 0 and never more than 1. This
is in contrast to the TaskQueueSize attribute on ThreadPool created by the seda endpoint which
is always 10 (the seda queue size, and obviously until all the tasks have completed).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message