[infinispan-dev] [Discussion] TimeService implementation

Pedro Ruivo pedro at infinispan.org
Thu May 9 10:42:11 EDT 2013


Hi all,

I've made a pull request with the TimeService implementation [1]. Anyone 
interested can take a look and give me some feedback about it and if it 
fills your requirements.

Currently, it only has one implementation that wraps the 
System.nanoTime() and System.currentTimeMillis() invocation without any 
optimization or cached values.

Cheers,
Pedro

On 04/29/2013 05:34 PM, Pedro Ruivo wrote:
> Hi,
>
> The TimeService interface is going to replace all the System.nanoTime()
> and System.currentTimeMillis() in the code and it will allow to replace
> in the test suite in order to provide a better control over the time
> dependent code (if needed).
>
> The objective of this email is to discuss possible implementation and
> interface that will cover the needs of everybody (or at least try it).
> Later I'll create a JIRA and start the implementation (except if someone
> really wants to implement it :P)
>
> * Interface:
>
> //return the current time in nanoseconds and milliseconds respectively
> long nowNanos()
> long nowMillis()
>
> //return the duration between now() and the startNanos/Millis
> long durationNanos(long startNanos)
> long durationMillis(long startMillis)
>
> //return the duration between start+ and end+
> long durationNanos(long startNanos, long endNanos)
> long durationMillis(long startMillis, long endMillis)
>
> Any other method? Maybe adding a TimeUnit parameter instead of duplicate
> methods (e.g. now(TimeUnit))? Maybe some convert() with double
> precision, since the TimeUnit.convert(...) usually loses precision?
>
> (I need double precision for the Extended Statistics, but I can put this
> converters in my classes)
>
> * Scope:
>
> Should the TimeService be in a cache or global scope? My vote is per
> cache...
>
> * Configuration
>
> Should we provide a configuration to pass an implementation of the
> TimeService interface? if yes, we may need to change the methods above
> to return some interface (e.g. TimeStamp) in order to support almost
> anything.
>
> Any other subject? Thoughts?
>
> If I was not clear let me know...
>
> Cheers,
> Pedro Ruivo


More information about the infinispan-dev mailing list