[ 
https://issues.apache.org/jira/browse/LUCENE-8269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Willnauer updated LUCENE-8269:
------------------------------------
    Attachment: LUCENE-8269.patch

> Detach downstream classes from IndexWriter
> ------------------------------------------
>
>                 Key: LUCENE-8269
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8269
>             Project: Lucene - Core
>          Issue Type: Improvement
>    Affects Versions: 7.4, master (8.0)
>            Reporter: Simon Willnauer
>            Priority: Major
>             Fix For: 7.4, master (8.0)
>
>         Attachments: LUCENE-8269.patch
>
>
> IndexWriter today is shared with many classes like BufferedUpdateStream,
> DocumentsWriter and DocumentsWriterPerThread. Some of them even acquire locks
> on the writer instance or assert that the current thread doesn't hold a lock.
>     This makes it very difficult to have a manageable threading model.
>     
>     This change separates out the IndexWriter from those classes and makes 
> them all
>     independent of IW. IW now implements a new interface for DocumentsWriter 
> to communicate
>     on failed or successful flushes and tragic events. This allows IW to make 
> it's critical
>     methods private and execute all lock critical actions on it's private 
> queue that ensures
>     that the IW lock is not held. Follow-up changes will try to detach more 
> code like
>     publishing flushed segments to ensure we never call back into IW in an 
> uncontrolled way.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to