yashmayya commented on code in PR #18316:
URL: https://github.com/apache/pinot/pull/18316#discussion_r3141484386


##########
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/SingleConnectionBrokerRequestHandler.java:
##########
@@ -174,11 +192,94 @@ protected BrokerResponseNative processBrokerRequest(long 
requestId, BrokerReques
     if (brokerResponse.getExceptionsSize() > 0) {
       _brokerMetrics.addMeteredTableValue(rawTableName, 
BrokerMeter.BROKER_RESPONSES_WITH_PROCESSING_EXCEPTIONS, 1);
     }
-    _brokerMetrics.addMeteredTableValue(rawTableName, 
BrokerMeter.TOTAL_SERVER_RESPONSE_SIZE, totalResponseSize);
+    _brokerMetrics.addMeteredTableValue(rawTableName, 
BrokerMeter.TOTAL_SERVER_RESPONSE_SIZE,
+        scatterResult.getTotalResponseSize());
 
     return brokerResponse;
   }
 
+  /**
+   * Snapshot of server-side scatter statistics. Passed to {@link 
ScatterResult} so that server
+   * counts are always derived from the live scatter, not from a data table 
map that may have been
+   * augmented by a subclass.
+   */
+  public static final class ScatterResultStats {
+    private final int _numServersQueried;
+    private final int _numServersResponded;
+    private final long _totalResponseSize;
+
+    public ScatterResultStats(int numServersQueried, int numServersResponded, 
long totalResponseSize) {
+      _numServersQueried = numServersQueried;
+      _numServersResponded = numServersResponded;
+      _totalResponseSize = totalResponseSize;
+    }
+
+    public int getNumServersQueried() {
+      return _numServersQueried;
+    }
+
+    public int getNumServersResponded() {
+      return _numServersResponded;
+    }
+
+    public long getTotalResponseSize() {
+      return _totalResponseSize;
+    }
+  }
+
+  /**
+   * Carries the scatter-gather result before the reduce step.
+   */
+  public static final class ScatterResult {
+    private final Map<ServerRoutingInstance, DataTable> _dataTableMap;
+    private final List<ServerRoutingInstance> _serversNotResponded;
+    private final long _totalResponseSize;
+    private final boolean _timedOut;
+    private final Exception _sendException;
+    private final int _numServersQueried;
+    private final int _numServersResponded;

Review Comment:
   Why not hold a `ScatterResultStats` object inside here instead?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to