Re: DefaultTimeoutMap vs Caffeine

2019-03-25 Thread Marc Carter
Thanks for passing that on! Is Netty also being removed as a core dependency? I have been looking into this and Caffeine is _not_ currently a great fit as it *doesn't* yet support synchronous eviction listeners (*). Instead, I now have a pared-down but fully working implementation using CHM m

Re: DefaultTimeoutMap vs Caffeine

2019-03-25 Thread Guillaume Nodet
I'm currently in the process of making caffeine optional by externalizing it from camel-core into its own module, similar to camel-headersmap. It will be aumtically wired if in the class path using a custom META-INF/services file. So please make sure it actually says optional. Le sam. 9 févr. 20

Re: DefaultTimeoutMap vs Caffeine

2019-02-26 Thread Marc Carter
General preparations for this started with tidying TimeoutMap interface which exposes too much of its first implementation (PR2794 / CAMEL-13262) When replacing extend-DefaultTimeoutMap with listen-to-TimeoutMap, there are two problematic areas uncovered ITEM1 (in the PR) Implicit in a _post

R: DefaultTimeoutMap vs Caffeine

2019-02-10 Thread Andrea Cosentino
We have also a Caffeine component btw Inviato da Yahoo Mail su Android Il sab, 9 feb, 2019 alle 12:01, Marc Carter ha scritto: TimeoutMap (primarily used by AggregateProcessor with completionTimeout ) is not well suited to large aggregation maps as it does an O(n) scan across all registe

Re: DefaultTimeoutMap vs Caffeine

2019-02-10 Thread Claus Ibsen
Hi Marc Just curious how large aggregation maps do you have? You are surely welcome to work on an experiment, and log a JIRA ticket. Mind that we are working on Camel 3 development, and such a change would need to be applicable there, and this change is potentially only being a candidate for 3.x,

DefaultTimeoutMap vs Caffeine

2019-02-09 Thread Marc Carter
TimeoutMap (primarily used by AggregateProcessor with completionTimeout ) is not well suited to large aggregation maps as it does an O(n) scan across all registered timeouts every 1000ms. I intended to take a look at improving this but it's also not great example of open-close either, all users