Skip to content

Commit f28a8ae

Browse files
authored
Bump floor segment size to 16MB. (#14189)
This bumps the floor segment size from 2MB (`TieredMergePolicy`) / 1.6MB (`LogByteSizeMergePolicy`) to 16MB. My motivation is that such small segment sizes don't make index structures actually helpful vs. linear scans, so we should avoid them. Furthermore, there has been progress on merging rules for segments below the floor size, in particular merge policies no longer perform quadratic merging (#900) so this change will not make indexing/merging absurdly slow if an application flushes tiny segments.
1 parent e03532a commit f28a8ae

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

lucene/CHANGES.txt

+5
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,11 @@ Bug Fixes
178178

179179
* GITHUB#14215: Fix degenerate case in HNSW where all vectors have the same score. (Ben Trent)
180180

181+
Changes in Runtime Behavior
182+
---------------------
183+
* GITHUB#14189: Bump floor segment size to 16MB in TieredMergePolicy and
184+
LogByteSizeMergePolicy. (Adrien Grand)
185+
181186
Other
182187
---------------------
183188

lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
public class LogByteSizeMergePolicy extends LogMergePolicy {
2626

2727
/** Default minimum segment size. @see setMinMergeMB */
28-
public static final double DEFAULT_MIN_MERGE_MB = 1.6;
28+
public static final double DEFAULT_MIN_MERGE_MB = 16;
2929

3030
/**
3131
* Default maximum segment size. A segment of this size or larger will never be merged. @see

lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public class TieredMergePolicy extends MergePolicy {
8484

8585
private long maxMergedSegmentBytes = 5 * 1024 * 1024 * 1024L;
8686

87-
private long floorSegmentBytes = 2 * 1024 * 1024L;
87+
private long floorSegmentBytes = 16 * 1024 * 1024L;
8888
private double segsPerTier = 10.0;
8989
private double forceMergeDeletesPctAllowed = 10.0;
9090
private double deletesPctAllowed = 20.0;
@@ -166,7 +166,7 @@ public double getDeletesPctAllowed() {
166166
* </ul>
167167
*
168168
* In both cases, this helps prevent frequent flushing of tiny segments to create a long tail of
169-
* small segments in the index. Default is 2MB.
169+
* small segments in the index. Default is 16MB.
170170
*/
171171
public TieredMergePolicy setFloorSegmentMB(double v) {
172172
if (v <= 0.0) {

0 commit comments

Comments
 (0)