You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2021/08/24 08:27:07 UTC

[lucene-solr] branch branch_8x updated: LUCENE-7020: Deprecate TieredMergePolicy#setMaxMergeAtOnceExplicit.

This is an automated email from the ASF dual-hosted git repository.

jpountz pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8x by this push:
     new 598a9da  LUCENE-7020: Deprecate TieredMergePolicy#setMaxMergeAtOnceExplicit.
598a9da is described below

commit 598a9da4f081e9e9102117b9ef441ba137b209a8
Author: Adrien Grand <jp...@gmail.com>
AuthorDate: Tue Aug 24 10:19:07 2021 +0200

    LUCENE-7020: Deprecate TieredMergePolicy#setMaxMergeAtOnceExplicit.
---
 lucene/CHANGES.txt                                            |  6 +++++-
 .../src/java/org/apache/lucene/index/TieredMergePolicy.java   | 11 ++++++++---
 .../test/org/apache/lucene/index/TestTieredMergePolicy.java   |  2 ++
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 2f3730d..24bda76 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -19,7 +19,11 @@ API Changes
   ensures unnecessary wrapping doesn't occur. (Greg Miller)
 
 * LUCENE-10027: Add a new Directory reader open API from indexCommit and
-   a custom comparator for sorting leaf readers (Mayya Sharipova).
+  a custom comparator for sorting leaf readers (Mayya Sharipova).
+
+* LUCENE-7020: TieredMergePolicy#setMaxMergeAtOnceExplicit is deprecated
+  and the number of segments that get merged via explicit merges is unlimited
+  by default. (Adrien Grand, Shawn Heisey)
 
 New Features
 ---------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
index 73fb2ef..3a42e89 100644
--- a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
+++ b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
@@ -95,7 +95,7 @@ public class TieredMergePolicy extends MergePolicy {
   // value and segsPerTier to avoid suboptimal merging.
   private int maxMergeAtOnce = 10;
   private long maxMergedSegmentBytes = 5*1024*1024*1024L;
-  private int maxMergeAtOnceExplicit = 30;
+  private int maxMergeAtOnceExplicit = Integer.MAX_VALUE;
 
   private long floorSegmentBytes = 2*1024*1024L;
   private double segsPerTier = 10.0;
@@ -134,7 +134,10 @@ public class TieredMergePolicy extends MergePolicy {
   // if user calls IW.maybeMerge "explicitly"
 
   /** Maximum number of segments to be merged at a time,
-   *  during forceMerge or forceMergeDeletes. Default is 30. */
+   *  during forceMerge or forceMergeDeletes. Default is unlimited.
+   * @deprecated This method will be removed in Lucene 9 and explicit
+   *             merges won't limit the number of merged segments. */
+  @Deprecated
   public TieredMergePolicy setMaxMergeAtOnceExplicit(int v) {
     if (v < 2) {
       throw new IllegalArgumentException("maxMergeAtOnceExplicit must be > 1 (got " + v + ")");
@@ -146,7 +149,9 @@ public class TieredMergePolicy extends MergePolicy {
 
   /** Returns the current maxMergeAtOnceExplicit setting.
    *
-   * @see #setMaxMergeAtOnceExplicit */
+   * @see #setMaxMergeAtOnceExplicit
+   * @deprecated This method will be removed in Lucene 9. */
+  @Deprecated
   public int getMaxMergeAtOnceExplicit() {
     return maxMergeAtOnceExplicit;
   }
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java b/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
index b23aaa1..967b586 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestTieredMergePolicy.java
@@ -384,6 +384,7 @@ public class TestTieredMergePolicy extends BaseMergePolicyTestCase {
     final double oneSegmentSize = 1.0D;
     final double maxSegmentSize = 10 * oneSegmentSize;
     tmp.setMaxMergedSegmentMB(maxSegmentSize);
+    tmp.setMaxMergeAtOnceExplicit(30);
 
     SegmentInfos infos = new SegmentInfos(Version.LATEST.major);
     for (int j = 0; j < 30; ++j) {
@@ -418,6 +419,7 @@ public class TestTieredMergePolicy extends BaseMergePolicyTestCase {
     final TieredMergePolicy tmp = new TieredMergePolicy();
     final double maxSegmentSize = 10.0D;
     tmp.setMaxMergedSegmentMB(maxSegmentSize);
+    tmp.setMaxMergeAtOnceExplicit(30);
 
     SegmentInfos infos = new SegmentInfos(Version.LATEST.major);
     for (int j = 0; j < 30; ++j) {