[jira] [Commented] (LUCENE-8269) Detach downstream classes from IndexWriter

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (LUCENE-8269) Detach downstream classes from IndexWriter

JIRA jira@apache.org

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

Michael McCandless commented on LUCENE-8269:
--------------------------------------------

+1, great cleanup.

> 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: [hidden email]
For additional commands, e-mail: [hidden email]