[ 
http://issues.apache.org/jira/browse/LUCENE-690?page=comments#action_12443640 ] 
            
Yonik Seeley commented on LUCENE-690:
-------------------------------------

> Do you have a preference on aggressive cloning vs. synching?

Not too much... synching was presumably avoided for better concurrency.  If we 
wanted to sync in LazyField, it would currently need to be on the SegmentReader 
object, since that's the monitor protecting the fieldStream.

Could also perhaps lazily create the "cloneable stream"  the first time a lazy 
field is created, since we are currently in a synchronized context when that 
happens.

A different route would be to convert normal document() loading to also use 
thread-local fieldStreams for better concurrency.  It would mean a thread-local 
lookup per document though, and I'm not sure what the expense of that would be.

> LazyField use of IndexInput not thread safe
> -------------------------------------------
>
>                 Key: LUCENE-690
>                 URL: http://issues.apache.org/jira/browse/LUCENE-690
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 2.0.1
>            Reporter: Yonik Seeley
>         Attachments: FieldsReader.patch
>
>
> Hypothetical problem: IndexInput.clone() of an active IndexInput could result 
> in a corrupt copy.
> LazyField clones the FieldsReader.fieldsStream, which could be in use via 
> IndexReader.document()

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to