[ 
https://issues.apache.org/jira/browse/LUCENE-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael McCandless updated LUCENE-847:
--------------------------------------

    Attachment: LUCENE-847.take5.patch


Attached new patch (take5) incorporating Ning's feedback.

This patch includes LUCENE-845 (a new merge default merge policy plus
a "merge by size in bytes of segment" merge policy), LUCENE-847
(factor merge policy/scheduling out of IndexWriter) and LUCENE-870
(ConcurrentMergeScheduler).

The one thing remaining after these are done, that I'll open a
separate issue for and commit separately, is to switch IndexWriter to
flush by RAM usage by default (instead of by docCount == 10) as well
as merge by size-in-bytes by default.

I broke out a separate MergeScheduler interface.  SerialMergeScheduler
is the default (matches how merges are executed today: sequentially,
using the calling thread).  ConcurrentMergeScheduler runs the merges
as separate threads (up to a max number at which point the extras are
done sequentially).

Other changes:

  - Allow multiple threads to call optimize().  I added a unit test
    for this.

  - Tightnened calls to deleter.refresh(), which remove partially
    created files on an exception, to remove only those files that the
    given piece of code would create.  This is very important because
    otherwise refresh() could remove the files being created by a
    background merge.

  - Added some unit tests


> Factor merge policy out of IndexWriter
> --------------------------------------
>
>                 Key: LUCENE-847
>                 URL: https://issues.apache.org/jira/browse/LUCENE-847
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>            Reporter: Steven Parkes
>            Assignee: Steven Parkes
>             Fix For: 2.3
>
>         Attachments: concurrentMerge.patch, LUCENE-847.patch.txt, 
> LUCENE-847.patch.txt, LUCENE-847.take3.patch, LUCENE-847.take4.patch, 
> LUCENE-847.take5.patch, LUCENE-847.txt
>
>
> If we factor the merge policy out of IndexWriter, we can make it pluggable, 
> making it possible for apps to choose a custom merge policy and for easier 
> experimenting with merge policy variants.

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

Reply via email to