[ 
https://issues.apache.org/jira/browse/LUCENE-2135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12787696#action_12787696
 ] 

Earwin Burrfoot commented on LUCENE-2135:
-----------------------------------------

bq. To provide arbitrary cacheable objects we could now extend IndexCache by a 
simple HashMap (it does not need to be a WeakHashMap, since the IndexCache is 
closed and purged as soon as the original IndexReader is closed).

If I'm reading your patch right, to add something as a user to 
DirectoryReader+SegmentReader, I have to extend SegmentReaderIndexCache, 
IndexCache, then extend SegmentReader and DirectoryReader, and override all 
methods in DirectoryReader that create SegmentReader.

My aim is to be able to bind stuff to readers without overriding them, 
delegating, or touching in any manner except providing certain factories on 
creation.

> IndexReader.close should forcefully evict entries from FieldCache
> -----------------------------------------------------------------
>
>                 Key: LUCENE-2135
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2135
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 3.1
>
>         Attachments: LUCENE-2135.patch, LUCENE-2135.patch, LUCENE-2135.patch
>
>
> Spinoff of java-user thread "heap memory issues when sorting by a string 
> field".
> We rely on WeakHashMap to hold our FieldCache, keyed by reader.  But this 
> lacks immediacy on releasing the reference, after a reader is closed.
> WeakHashMap can't free the key until the reader is no longer referenced by 
> the app. And, apparently, WeakHashMap has a further impl detail that requires 
> invoking one of its methods for it to notice that a key has just become only 
> weakly reachable.
> To fix this, I think on IR.close we should evict entries from the FieldCache, 
> as long as the sub-readers are truly closed (refCount dropped to 0).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to