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

Marvin Humphrey commented on LUCENE-1476:
-----------------------------------------

Mike McCandless:

> Commit is for crash recovery, and for knowing when it's OK to delete
> prior commits. Simply writing the files (and not syncing them), and
> perhaps giving IndexReader.open the SegmentInfos to use directly (and
> not writing a segments_N via the filesystem) would allow us to search
> added docs without paying the cost of sync'ing all the files.

Mmm.  I think I might have given IndexWriter.commit() slightly different
semantics.  Specifically, I might have given it a boolean "sync" argument
which defaults to false.

> Also: brand new, tiny segments should be written into a RAMDirectory
> and then merged over time into the real Directory.

Two comments.  First, if you don't sync, but rather leave it up to the OS when
it wants to actually perform the actual disk i/o, how expensive is flushing? 
Can 
we make it cheap enough to meet Jason's absolute change rate requirements?

Second, the multi-index model is very tricky when dealing with "updates".  How
do you guarantee that you always see the "current" version of a given
document, and only that version?  When do you expose new deletes in the
RAMDirectory, when do you expose new deletes in the FSDirectory, how do you
manage slow merges from the RAMDirectory to the FSDirectory, how do you manage
new adds to the RAMDirectory that take place during slow merges...

Building a single-index, two-writer model that could handle fast updates while
performing background merging was one of the main drivers behind the tombstone
design.


> BitVector implement DocIdSet
> ----------------------------
>
>                 Key: LUCENE-1476
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1476
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>    Affects Versions: 2.4
>            Reporter: Jason Rutherglen
>            Priority: Trivial
>         Attachments: LUCENE-1476.patch
>
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> BitVector can implement DocIdSet.  This is for making 
> SegmentReader.deletedDocs pluggable.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to