On 07/07/14 10:58, Sanne Grinovero wrote: > On 7 July 2014 09:14, Bela Ban <[email protected]> wrote: >> >> 1: Observation: >> ------------- >> In my Infinispan perf test (IspnPerfTest), I used >> cache.getAdvancedCache().withFlags(...).put(key,value) in a tight loop. >> >> I've always thought that withFlags() was a fast operation, *but this is >> not the case* !! >> >> Once I changed this and predefined the 2 caches (sync and async) at the >> start, outside the loop, things got 10x faster ! So please change this >> if you made the same mistake ! > > Right that's the better way to use the flags; I'm pretty sure we > documented this at some point but I couldn't find it in the docs nor > javadocs now...?!! bad bad.
Looking at the code, I see that withFlags() creates a new DecoratedCache, so this can obviously be mitigated by instantiating the caches beforehand. Haven't had time to investigate the cost of this. > Where we do use flags internally (Lucene Directory), we hold on to > multiple instances of the Cache, even if the same cache content but to > use different flags. The code is quite horrible to read as it seems > like you interact with different Caches, but as you noticed it's worth > it. Yes > 10x faster? That's surprising for a benchmark which is supposed to be > network bound isn't it? I ran 2 IspnPerfTest processes on my local box with numOwners=2 (no L1 cache). I guess that roughly half of the calls go to the local node, and there the cost of withFlags() is not amortized by the network round trip. > If you can measure a 10X improvement, it seems > like your tests where bound by memory allocation (as that's the > resource you starve by using _withFlags_ extensively) ? > Might be worth checking with flight recorder if that's still the case, > as _withFlags_ isn't sufficient on its own to saturate your memory > bandwith, so I'd guess there are other hot consumers which might be > easy to take down. > >> >> 2. Question: >> ----------- >> In Infinispan 6, I defined my custom transport as follows: >> <transport ... transportClass="org.perf.CustomTransport"/> >> >> This is gone in 7. Do I now have to use programmatic configuration ? If >> so, how would I do this ? > > I don't know this one, hopefully others will.. ? > > Cheers, > Sanne -- Bela Ban, JGroups lead (http://www.jgroups.org) _______________________________________________ infinispan-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/infinispan-dev
