You can provider your down UUIDGenerator implementation. I will provide a
more detailed answer when I'm at home.

Christian

Am 20.09.2010 19:05 schrieb "camel_el" <eric.ladouc...@cse-cst.gc.ca>:


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.

Reply via email to