Hi

Can you try as suggested by Christian to use the ActiveMQ based UUID generator.
And if possible can you post some details about the performance gain you see?

We should consider switching the default uuid generator in Camel back
to the AMQ based if its much faster.
The JDK UUID based is used when you run Camel in the cloud which may
not have access to some APIs which the AMQ based need on startup.
So its a matter of just letting them use the Java UUID based if they
run in the cloud, and we can use the fastes by default instead.



On Mon, Sep 20, 2010 at 7:05 PM, camel_el <eric.ladouc...@cse-cst.gc.ca> wrote:
>
> Hi,
>
>  my system is generating a lot of exchanges (many concurrent threads), so
> many that creating an exchange becomes a bottleneck.  An exchangeId is
> created by the UuidGenerator class, which is using
> java.security.SecureRandom.  SecureRandom then calls its secureRandomSpi:
>
> UuidGenerator.generateUuid() -> UUID.randomUUID() ->
> secureRandom.nextBytes(n) -> secureRandomSpi.engineNextBytes(n)
>
> where secureRandomSpi.engineNextBytes(n) is synchronized.  Obviously, this
> call becomes a bottleneck.  I have modified UuidGenerator so that it creates
> a 1-up number (probably not the best, but it worked for the time being) and
> I saw a major performance gain.
>
> Would it be possible to:
>
> 1- Change the way Camel creates the exchangeId?
>  - or -
> 2- Provide a hook where we could supply our own ExchangeIdFactory?
> If we use our own factory, what are the constraints?
>
> Thanks.
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/UuidGenerator-performance-issue-tp2846866p2846866.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to