[infinispan-dev] ClockService

Galder Zamarreño galder at redhat.com
Thu Jan 31 03:55:26 EST 2013


On Jan 29, 2013, at 6:07 PM, Manik Surtani <msurtani at redhat.com> wrote:

> Interesting; looking at the code a bit more, I don't think this offers any improvements except in the case where expiry is set.  Granted, this is a useful thing to have at that point, but I'm not entirely sure whether it will affect the majority of users.

^ Just remember what I mentioned in a previous email WRT local cache performance. Avoiding size based eviction and giving your entries expiration times is a great way to enhance the improve performance of a local cache while relatively controlling its memory consumption.

> 
> Anyway, to measure any benefit, I'm also going to have to enhance RadarGun to (optionally) set expiry information on data stored.
> 
> - M
> 
> 
> On 29 Jan 2013, at 16:25, Sanne Grinovero <sanne at infinispan.org> wrote:
> 
>> Glad you started work on that :)
>> 
>> Any currentTimeMillis() even today will blow away your cache line and
>> probably trigger a context switch.
>> 
>> Having it as a service we will be able to experiment: the first thing
>> I'll do is replace it with a NOOPService and see how much it improves.
>> 
>> Ideally I'd like it to have multiple methods so that different needs
>> can hint about a different level of precision, or maybe expect an enum
>> as parameter which represents the hint.
>> 
>> Cheers,
>> Sanne
>> 
>> On 29 January 2013 16:02, Manik Surtani <msurtani at redhat.com> wrote:
>>> Thinking about Sanne's idea re: a clock service and not continuously relying on System.cTM, I stumbled upon this:
>>> 
>>> https://blogs.oracle.com/ksrini/entry/we_take_java_performance_very
>>> 
>>> The last section re: caching is interesting.
>>> 
>>> Having all code use a Clock.currentTimeMillis() and having an implementation that kicks off a scheduled task to update a cached value every $frequency millis (by using the System call) is probably the correct way to implement something like this, but this adds complexities/concerns:
>>> 
>>> * CPU cache line blowing away (see article)
>>> * Context switching
>>> * Managing an extra service thread
>>> * Probably an additional configuration option to configure that thread, its priority and frequency.  If frequency is dropped (e.g., every second) I suppose the perf gains would be huge.
>>> 
>>> JGroups - does JGroups make many and frequent calls to System.cTM as well?
>>> 
>>> Cheers
>>> Manik
>>> --
>>> Manik Surtani
>>> manik at jboss.org
>>> twitter.com/maniksurtani
>>> 
>>> Platform Architect, JBoss Data Grid
>>> http://red.ht/data-grid
>>> 
>>> 
>>> _______________________________________________
>>> infinispan-dev mailing list
>>> infinispan-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> --
> Manik Surtani
> manik at jboss.org
> twitter.com/maniksurtani
> 
> Platform Architect, JBoss Data Grid
> http://red.ht/data-grid
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev


--
Galder Zamarreño
galder at redhat.com
twitter.com/galderz

Project Lead, Escalante
http://escalante.io

Engineer, Infinispan
http://infinispan.org




More information about the infinispan-dev mailing list