Skip to content

Commit c3fd83a

Browse files
committed
Associate node stat agg with request
Signed-off-by: John Mazanec <jmazane@amazon.com>
1 parent 42be741 commit c3fd83a

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/main/java/org/opensearch/knn/plugin/transport/KNNStatsRequest.java

+12
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55

66
package org.opensearch.knn.plugin.transport;
77

8+
import lombok.Getter;
9+
import lombok.Setter;
810
import org.opensearch.action.support.nodes.BaseNodesRequest;
911
import org.opensearch.core.common.io.stream.StreamInput;
1012
import org.opensearch.core.common.io.stream.StreamOutput;
13+
import org.opensearch.knn.plugin.stats.KNNNodeStatAggregation;
1114
import org.opensearch.knn.plugin.stats.StatNames;
1215

1316
import java.io.IOException;
@@ -26,6 +29,12 @@ public class KNNStatsRequest extends BaseNodesRequest<KNNStatsRequest> {
2629
public static final String ALL_STATS_KEY = "_all";
2730
private final Set<String> validStats;
2831
private final Set<String> statsToBeRetrieved;
32+
/**
33+
* Node stat aggregation associated with the request. Not serialized between nodes. Can be null.
34+
*/
35+
@Getter
36+
@Setter
37+
private KNNNodeStatAggregation aggregation;
2938

3039
/**
3140
* Empty constructor needed for KNNStatsTransportAction
@@ -34,6 +43,7 @@ public KNNStatsRequest() {
3443
super((String[]) null);
3544
validStats = StatNames.getNames();
3645
statsToBeRetrieved = new HashSet<>();
46+
aggregation = null;
3747
}
3848

3949
/**
@@ -46,6 +56,7 @@ public KNNStatsRequest(StreamInput in) throws IOException {
4656
super(in);
4757
validStats = in.readSet(StreamInput::readString);
4858
statsToBeRetrieved = in.readSet(StreamInput::readString);
59+
aggregation = null;
4960
}
5061

5162
/**
@@ -57,6 +68,7 @@ public KNNStatsRequest(String... nodeIds) {
5768
super(nodeIds);
5869
validStats = StatNames.getNames();
5970
statsToBeRetrieved = new HashSet<>();
71+
aggregation = null;
6072
}
6173

6274
/**

src/main/java/org/opensearch/knn/plugin/transport/KNNStatsTransportAction.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public class KNNStatsTransportAction extends TransportNodesAction<
3838

3939
private final KNNStats knnStats;
4040
private final Client client;
41-
private KNNNodeStatAggregation knnNodeStatAggregation;
4241

4342
/**
4443
* Constructor
@@ -71,7 +70,6 @@ public KNNStatsTransportAction(
7170
);
7271
this.knnStats = knnStats;
7372
this.client = client;
74-
this.knnNodeStatAggregation = null;
7573
}
7674

7775
@Override
@@ -98,7 +96,7 @@ protected void doExecute(Task task, KNNStatsRequest request, ActionListener<KNNS
9896
// Add the stats makes sure that we dont recurse infinitely.
9997
dependentStats.forEach(knnStatsRequest::addStat);
10098
client.execute(KNNStatsAction.INSTANCE, knnStatsRequest, ActionListener.wrap(knnStatsResponse -> {
101-
knnNodeStatAggregation = new KNNNodeStatAggregation(knnStatsResponse.getNodes());
99+
request.setAggregation(new KNNNodeStatAggregation(knnStatsResponse.getNodes()));
102100
contextListener.onResponse(null);
103101
}, contextListener::onFailure));
104102
} else {
@@ -118,7 +116,7 @@ protected KNNStatsResponse newResponse(
118116

119117
for (String statName : knnStats.getClusterStats().keySet()) {
120118
if (statsToBeRetrieved.contains(statName)) {
121-
clusterStats.put(statName, knnStats.getStats().get(statName).getValue(knnNodeStatAggregation));
119+
clusterStats.put(statName, knnStats.getStats().get(statName).getValue(request.getAggregation()));
122120
}
123121
}
124122

0 commit comments

Comments
 (0)