[ https://issues.apache.org/jira/browse/LUCENE-6524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14580362#comment-14580362 ]
Robert Muir commented on LUCENE-6524: ------------------------------------- {quote} Another (more expert) use case is allowing rollback to an NRT-point. Today, you can only rollback to a commit point (segments_N). But an NRT reader also reflects a valid "point in time" view of the index (it just doesn't have a segments_N file, and its ref'd files are not fsync'd), so with this change you can close your old writer, open a new one from this NRT point, and revert all changes that had been done after the NRT reader was opened from the old writer. {quote} I'm still completely hung up on this. I don't think we should offer features that require additional components like transaction logs to be safe, which seems what this is geared at? Its also confusing if you later do a real commit, will we fsync the right stuff? Is that really guaranteed or just a happenchance of how we removed the stale files map? Net/Net I'm +/- 0 on this patch. I won't block it but I think its the wrong direction. > Create an IndexWriter from an already opened NRT or non-NRT reader > ------------------------------------------------------------------ > > Key: LUCENE-6524 > URL: https://issues.apache.org/jira/browse/LUCENE-6524 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Michael McCandless > Assignee: Michael McCandless > Fix For: 5.3, Trunk > > Attachments: LUCENE-6524.patch, LUCENE-6524.patch > > > I'd like to add a new ctor to IndexWriter, letting you start from an already > opened NRT or non-NRT DirectoryReader. I think this is a long missing > API in Lucene today, and we've talked in the past about different ways > to fix it e.g. factoring out a shared reader pool between writer and reader. > One use-case, which I hit in LUCENE-5376: if you have a read-only > index, so you've opened a non-NRT DirectoryReader to search it, and > then you want to "upgrade" to a read/write index, we don't handle that > very gracefully now because you are forced to open 2X the > SegmentReaders. > But with this API, IW populates its reader pool with the incoming > SegmentReaders so they are shared on any subsequent NRT reopens / > segment merging / deletes applying, etc. > Another (more expert) use case is allowing rollback to an NRT-point. > Today, you can only rollback to a commit point (segments_N). But an > NRT reader also reflects a valid "point in time" view of the index (it > just doesn't have a segments_N file, and its ref'd files are not > fsync'd), so with this change you can close your old writer, open a > new one from this NRT point, and revert all changes that had been done > after the NRT reader was opened from the old writer. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org