Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-2701

Factor maxMergeSize into findMergesForOptimize in LogMergePolicy


    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.1, 4.0-ALPHA
    • core/index
    • None
    • New, Patch Available


      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.


        1. LUCENE-2701.patch
          16 kB
          Shai Erera
        2. LUCENE-2701.patch
          24 kB
          Shai Erera
        3. LUCENE-2701.patch
          25 kB
          Shai Erera
        4. LUCENE-2701-2.patch
          7 kB
          Shai Erera



            shaie Shai Erera
            shaie Shai Erera
            0 Vote for this issue
            0 Start watching this issue