Skip to content

Commit 1c8dbfa

Browse files
committed
No need to iterate over leaves again
1 parent a3b4a5f commit 1c8dbfa

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

server/src/main/java/org/elasticsearch/index/engine/SegmentMergeMemoryEstimator.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
import org.apache.lucene.codecs.KnnVectorsReader;
1313
import org.apache.lucene.codecs.lucene99.Lucene99HnswVectorsReader;
1414
import org.apache.lucene.codecs.perfield.PerFieldKnnVectorsFormat;
15-
import org.apache.lucene.index.CodecReader;
1615
import org.apache.lucene.index.FieldInfo;
17-
import org.apache.lucene.index.FilterLeafReader;
1816
import org.apache.lucene.index.IndexReader;
1917
import org.apache.lucene.index.LeafReaderContext;
2018
import org.apache.lucene.index.MergePolicy;
@@ -68,18 +66,12 @@ private static long estimateFieldMemory(FieldInfo fieldInfo, SegmentReader segme
6866
}
6967

7068
private static long estimateVectorFieldMemory(FieldInfo fieldInfo, SegmentReader segmentReader) {
71-
long maxMem = 0;
72-
for (LeafReaderContext ctx : segmentReader.leaves()) {
73-
CodecReader codecReader = (CodecReader) FilterLeafReader.unwrap(ctx.reader());
74-
KnnVectorsReader vectorsReader = codecReader.getVectorReader();
75-
if (vectorsReader instanceof PerFieldKnnVectorsFormat.FieldsReader perFieldKnnVectorsFormat) {
76-
vectorsReader = perFieldKnnVectorsFormat.getFieldReader(fieldInfo.getName());
77-
}
78-
79-
final long estimation = getVectorFieldEstimation(fieldInfo, segmentReader, vectorsReader);
80-
maxMem = Math.max(maxMem, estimation);
69+
KnnVectorsReader vectorsReader = segmentReader.getVectorReader();
70+
if (vectorsReader instanceof PerFieldKnnVectorsFormat.FieldsReader perFieldKnnVectorsFormat) {
71+
vectorsReader = perFieldKnnVectorsFormat.getFieldReader(fieldInfo.getName());
8172
}
82-
return maxMem;
73+
74+
return getVectorFieldEstimation(fieldInfo, segmentReader, vectorsReader);
8375
}
8476

8577
private static long getVectorFieldEstimation(FieldInfo fieldInfo, SegmentReader segmentReader, KnnVectorsReader vectorsReader) {

0 commit comments

Comments
 (0)