]
Brian Stansberry updated JBCACHE-921:
-------------------------------------
Fix Version/s: 2.0.0.BETA1
1.4.1.SP1
Affects Version/s: 2.0.0.ALPHA2
1.4.1.GA
Assignee: Brian Stansberry (was: Manik Surtani)
Bumping priority, as I'm concerned empty evicted nodes can cause locking problems with
putForExternalRead()/putFailFast().
Eviction should eventually clean up nodes that are cleared but not
removed
--------------------------------------------------------------------------
Key: JBCACHE-921
URL:
http://jira.jboss.com/jira/browse/JBCACHE-921
Project: JBoss Cache
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Affects Versions: 1.4.1.GA, 2.0.0.ALPHA2
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Fix For: 2.0.0.BETA1, 1.4.1.SP1
Eviction does not remove nodes that have children, it only clears their data map. If
such nodes are never accessed again, the eviction thread will never process them, and they
will never be removed, leaving around several hundred bytes of litter per node.
E.g.
1) create /a/1
2) create /a/1/xxx
An LRU policy will try to evict /a/1 first, but the node will not be removed because
/a/1/xxx still exists. Later /a/1/xxx will be evicted, but unless some event occurs that
puts an entry for /a/1 back into the queue, it will never be evicted.
One possible solution is to have CacheImpl._evict return a boolean that indicates if the
node was actually removed. EvictionInterceptor could track that return value, and if
false, add a new event to the region, perhaps with a new NodeEventType. Eviction policies
could then revisit those nodes on the next run of the thread.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: