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 2022/07/19 07:34:10 UTC

[lucene] branch branch_9x updated: Fix error in TieredMergePolicy (#1028)

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

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


The following commit(s) were added to refs/heads/branch_9x by this push:
     new dc1ff99b6c6 Fix error in TieredMergePolicy (#1028)
dc1ff99b6c6 is described below

commit dc1ff99b6c6ef92ccdc185fdb8a998041649a460
Author: hcqs33 <lj...@gmail.com>
AuthorDate: Tue Jul 19 15:21:09 2022 +0800

    Fix error in TieredMergePolicy (#1028)
    
    Fix error in comparing between bytes of candidates and bytes of max merge.
    It's wrong to use candidateSize rather than currentCandidateBytes comparing with maxMergeBytes.
---
 lucene/CHANGES.txt                                                  | 2 ++
 lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index a85e38ca32b..508a4ae092d 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -94,6 +94,8 @@ Bug Fixes
 
 * LUCENE-10623: Error implementation of docValueCount for SortingSortedSetDocValues (Lu Xugang)
 
+* GITHUB#1028: Fix error in TieredMergePolicy (Lin Jian)
+
 Other
 ---------------------
 
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 de394365dbe..eff23656dad 100644
--- a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
+++ b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
@@ -878,7 +878,7 @@ public class TieredMergePolicy extends MergePolicy {
       // segments or that create a segment close to the
       // maximum allowed segment sized are permitted
       if (candidateSize > 1
-          && (forceMergeRunning == false || candidateSize > 0.7 * maxMergeBytes)) {
+          && (forceMergeRunning == false || currentCandidateBytes > 0.7 * maxMergeBytes)) {
         final OneMerge merge = new OneMerge(candidate);
         if (verbose(mergeContext)) {
           message("add merge=" + segString(mergeContext, merge.segments), mergeContext);