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

Michael McCandless commented on LUCENE-1726:
--------------------------------------------

Can we make the MapValue strongly typed?  Eg name it SegmentReaderValue, and it 
has a single member "SegmentReader reader".

getIfExists has duplicate checks for null (mv != null is checked twice and 
mv.value != null too).

I think there is a thread hazard here, in particular a risk that one thread 
decrefs a reader just as another thread is trying to get it, and the reader in 
fact gets closed while the other thread has an mv.reader != null and illegally 
increfs that.  I think you'll have to do the sr.incRef inside the 
synchronized(this), but I don't think that entirely resolves it.

I'm going to move this out out 2.9; I don't think it should block it.

> IndexWriter.readerPool create new segmentReader outside of sync block
> ---------------------------------------------------------------------
>
>                 Key: LUCENE-1726
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1726
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>    Affects Versions: 2.4.1
>            Reporter: Jason Rutherglen
>            Assignee: Michael McCandless
>            Priority: Trivial
>             Fix For: 3.1
>
>         Attachments: LUCENE-1726.patch
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> I think we will want to do something like what field cache does
> with CreationPlaceholder for IndexWriter.readerPool. Otherwise
> we have the (I think somewhat problematic) issue of all other
> readerPool.get* methods waiting for an SR to warm.
> It would be good to implement this for 2.9.

-- 
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