lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Muir (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-6524) Create an IndexWriter from an already opened NRT or non-NRT reader
Date Wed, 10 Jun 2015 10:48:00 GMT

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

Robert Muir commented on LUCENE-6524:
-------------------------------------

Today, there is only one IW ctor. This has some advantages, at the disadvantage of a totally
overengineered IWConfig instead.

Please choose one, I do not want both.

Having two ctors is *incredibly* expensive on this code. This feature is flat out not worth
that cost.

> 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message