Manik Surtani wrote:
Hello all.
I have finished my work with the eviction code in Infinispan, here is a
summary of what has happened.
From a user perspective (including API and configuration) as well as a
design overview, please have a look at
http://www.jboss.org/community/docs/DOC-13449
From an implementation perspective, have a look at the srcs of
FIFODataContainer and LRUDataContainer. These two classes are where
everything happens. The javadocs should explain the details, but in a
nutshell you can expect constant time operations for all puts, gets,
removes, iterations. :-)
Feedback on the impls would be handy. :-)
I like to concept - it's nice and
clear for users to grasp. Also took a
look at implementation, nice and complex, so I'd rather have you and a
white board to understand it completely :) .
Some notes though: EvictionException is never used, same for SpinLock.rl
field.
And a question:
with this impl, we're doing locking twice for cache operations: on
LockInterceptor and on DataContainer itself. Why is this necessary? I
think this is needed so that eviction thread and user threads not to
conflict( am I right?).
Isn't it possible to use the same locking (i.e. LockManager) for both
these threads?
(also, why are we using ConcurrentHashMaps in default container - isn't
access to data guarded by the lock interceptor?
Cheers
--
Manik Surtani
Lead, JBoss Cache
http://www.jbosscache.org
manik(a)jboss.org <mailto:manik@jboss.org>
------------------------------------------------------------------------
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev