[jbosscache-dev] Re: Use of org.jboss.cache.Region
Manik Surtani
manik at jboss.org
Tue Nov 7 03:53:16 EST 2006
On 6 Nov 2006, at 15:28, Brian Stansberry wrote:
> Manik Surtani wrote:
>> On 1 Nov 2006, at 20:07, Brian Stansberry wrote:
>>
>>> Another thing we need is equiv of the
>>> o.j.c.eviction.RegionManager.markNodeCurrentlyInUse()/
>>> unmarkNodeCurrentl yInUse() calls exposed in o.j.c.Region.
>>
>> What are these markers used for? And what semantics would we need
>> around this?
>>
>
> They are used by the LRUPolicy (and potentially others that implement
> the feature) so the policy will ignore a node the app has marked "in
> use".
>
> Illustration of use by EJB3 SFSB:
>
> 1) User accesses bean.
> 2) StatefulTreeCache fetches bean from cache using get(). If no
> transactional context at this point, RL from the get is released as
> soon
> as method returns.
> 3) StatefulTreeCache call markNodeCurrentlyInUse
> 4) User invokes method on bean that takes a long time.
> 5) Eviction thread kicks in. Would ordinarily evict the bean since
> the
> get() in #2 happened a while ago. But the node-in-use event tells it
> not to.
> 6) User invocation finishes, bean is released.
> 7) StatefulTreeCache calls unmarkNodeCurrentlyInUse.
> 8) Bean can now be evicted on later eviction thread run.
>
> I'd thought the changes were discussing of moving the lock interceptor
> up in the order might help, but they don't -- as mentioned in step 2,
> the bean can be "in use" long after any lock is held on its cache
> node.
>
> Semantics we'd need are pretty much what we have now in 1.4 -- when
> method is invoked, if the region is configured for eviction, create an
> EvictedEventNode object and put it in the event queue. Only
> difference
> is RegionManager doesn't get involved to find the region -- the app
> should do that itself via the Cache API.
Ok - not the prettiest, exposing control over how evictions work in
client API. But yeah, necessary...
http://jira.jboss.com/jira/browse/JBCACHE-834
More information about the jbosscache-dev
mailing list