[infinispan-dev] Management of shared caches

Manik Surtani manik at jboss.org
Tue Dec 15 07:01:55 EST 2009


On 14 Dec 2009, at 19:12, Mircea Markus wrote:

> yep, that's a good point indeed.
> Is there any other thing than reference counting that this release method would do?
> TBH I think the 3) suggestion should be okay, and the users should be aware that they should only  all stop() from one thread only. That is because the cache is rather a collection of data rather than a connection to something, and destroying it shouldn't be done each time you access it but only at the beginning and the end of your app.

For now, absolutely.  I don't see us implementing any reference counting for 4.0.  Maybe in future, it might be useful though.

> 
> On Dec 14, 2009, at 12:33 PM, Manik Surtani wrote:
> 
>> This is a good point, Brian.
>> 
>> Perhaps Cache.stop() should delegate to CacheManager.stopCache(cacheName) and as you say, some form of reference counting may be in order.  
>> 
>> However, calling CacheManager.stopCache(cacheName) could be overloaded (a boolean "force" flag?) to stop the cache, regardless of known references?
>> 
>> Cheers
>> Manik
>> 
>> 
>> On 11 Dec 2009, at 20:37, Brian Stansberry wrote:
>> 
>>> Had a look at DefaultCacheManager today and I see it has no mechanism 
>>> for controlling the stopping of shared caches. Multiple independent 
>>> callers to getCache("foo") can get a ref to the foo cache, and then any 
>>> of them can call stop() on it.
>>> 
>>> A few possibilities come to mind:
>>> 
>>> 1) Add a releaseCache method, do some reference counting, and stop the 
>>> cache when all refs are released. Remove the cache from the "caches" map.
>>> 
>>> 2) And/or, wrap the cache in a wrapper whose stop() method doesn't call 
>>> through to the wrapped cache until stop() is called on all wrappers
>>> 
>>> 3) Advise in the javadoc that shared caches are supported, but if they 
>>> are used it's the users responsibility to ensure that at least one but 
>>> only one caller calls stop() on the cache. At least for the AS use 
>>> cases, this should be OK, since an Infinispan Cache will be analogous to 
>>> a JBC Region, and there's only one user for a given region.
>>> 
>>> -- 
>>> Brian Stansberry
>>> Lead, AS Clustering
>>> JBoss by Red Hat
>>> _______________________________________________
>>> infinispan-dev mailing list
>>> infinispan-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>> 
>> --
>> Manik Surtani
>> manik at jboss.org
>> Lead, Infinispan
>> Lead, JBoss Cache
>> http://www.infinispan.org
>> http://www.jbosscache.org
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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
Lead, Infinispan
Lead, JBoss Cache
http://www.infinispan.org
http://www.jbosscache.org








More information about the infinispan-dev mailing list