klsince commented on code in PR #11978:
URL: https://github.com/apache/pinot/pull/11978#discussion_r1406646223
##########
pinot-broker/src/main/java/org/apache/pinot/broker/routing/BrokerRoutingManager.java:
##########
@@ -610,7 +611,16 @@ public RoutingTable getRoutingTable(BrokerRequest
brokerRequest, long requestId)
return null;
}
InstanceSelector.SelectionResult selectionResult =
routingEntry.calculateRouting(brokerRequest, requestId);
- Map<String, String> segmentToInstanceMap =
selectionResult.getSegmentToInstanceMap();
+ Map<ServerInstance, List<String>> serverInstanceToSegmentsMap =
+ getServerInstanceToSegmentsMap(tableNameWithType,
selectionResult.getSegmentToInstanceMap());
+ Map<ServerInstance, List<String>> serverInstanceToOptionalSegmentsMap =
+ getServerInstanceToSegmentsMap(tableNameWithType,
selectionResult.getOptionalSegmentToInstanceMap());
+ return new RoutingTable(merge(serverInstanceToSegmentsMap,
serverInstanceToOptionalSegmentsMap),
+ selectionResult.getUnavailableSegments(),
selectionResult.getNumPrunedSegments());
Review Comment:
Actually, to simplify this merging logic, I'll use empty list in Pair<List,
List> even if there is no optional segments, but when to creating the
InstanceRequest, I'll set optionalSegment to null if it's empty, as I found
there are places in multi-staged query that don't set this field when creating
InstanceRequest, so don't set this field (i.e. leave it as null) to be more
backward compatible
--
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]