Skip to content

Commit b1f2087

Browse files
authored
Reuse metric names in TopMetricsAggregator (#116296)
This commit shares a unique instance between all InternalTopMetrics instances.
1 parent 25aebdf commit b1f2087

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/topmetrics/TopMetricsAggregator.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,9 @@
4040

4141
import java.io.IOException;
4242
import java.util.ArrayList;
43-
import java.util.Arrays;
4443
import java.util.List;
4544
import java.util.Map;
4645

47-
import static java.util.stream.Collectors.toList;
4846
import static org.elasticsearch.xpack.analytics.topmetrics.TopMetricsAggregationBuilder.REGISTRY_KEY;
4947

5048
/**
@@ -148,9 +146,14 @@ public void doClose() {
148146

149147
static class Metrics implements BucketedSort.ExtraData, Releasable {
150148
private final MetricValues[] values;
149+
private final List<String> names;
151150

152151
Metrics(MetricValues[] values) {
153152
this.values = values;
153+
names = new ArrayList<>(values.length);
154+
for (MetricValues value : values) {
155+
names.add(value.name);
156+
}
154157
}
155158

156159
boolean needsScores() {
@@ -182,7 +185,7 @@ BucketedSort.ResultBuilder<InternalTopMetrics.TopMetric> resultBuilder(DocValueF
182185
}
183186

184187
List<String> names() {
185-
return Arrays.stream(values).map(v -> v.name).collect(toList());
188+
return names;
186189
}
187190

188191
@Override

0 commit comments

Comments
 (0)