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

Michael McCandless commented on LUCENE-2701:
--------------------------------------------

Patch looks good!

Maybe rename OneMerge.totalSize -> totalSizeInBytes?  Hmm does anyone
actually call this new method?

Maybe note somewhere that now optimize (when there's a maxMergeDocs/MB
constraint) is able to merge fewer than mergeFactor segments at a
time?

This code is a bit confusing:

{noformat}
       if (last - start - 1 > 1) {
         // there is more than 1 segment to the right of this one.
         spec.add(new OneMerge(infos.range(start + 1, last), useCompoundFile));
       } else if (start != last - 1 && !isOptimized(infos.info(start + 1))) {
          spec.add(new OneMerge(infos.range(start + 1, last), useCompoundFile));
       }
{noformat}

Both if clauses are doing the same thing right?  (Ie merging the chunk
of segs to the right). Maybe put a comment explaining the 2nd one?  (I
think it's for the case where there's 1 segment to our right but it's
not optimized, eg the CFS differs?).  Or maybe consolidate into a single
if?


> Factor maxMergeSize into findMergesForOptimize in LogMergePolicy
> ----------------------------------------------------------------
>
>                 Key: LUCENE-2701
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2701
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>            Reporter: Shai Erera
>            Assignee: Shai Erera
>             Fix For: 3.1, 4.0
>
>         Attachments: LUCENE-2701.patch, LUCENE-2701.patch
>
>
> LogMergePolicy allows you to specify a maxMergeSize in MB, which is taken 
> into consideration in regular merges, yet ignored by findMergesForOptimze. I 
> think it'd be good if we take that into consideration even when optimizing. 
> This will allow the caller to specify two constraints: maxNumSegments and 
> maxMergeMB. Obviously both may not be satisfied, and therefore we will 
> guarantee that if there is any segment above the threshold, the threshold 
> constraint takes precedence and therefore you may end up w/ <maxNumSegments 
> (if it's not 1) after optimize. Otherwise, maxNumSegments is taken into 
> consideration.
> As part of this change, I plan to change some methods to protected (from 
> private) and members as well. I realized that if one wishes to implement his 
> own LMP extension, he needs to either put it under o.a.l.index or copy some 
> code over to his impl.
> I'll attach a patch shortly.

-- 
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