[ 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