praveenc7 commented on code in PR #13952:
URL: https://github.com/apache/pinot/pull/13952#discussion_r1752980163
##########
pinot-broker/src/main/java/org/apache/pinot/broker/routing/instanceselector/ReplicaGroupInstanceSelector.java:
##########
@@ -152,21 +155,28 @@ private Pair<Map<String, String>, Map<String, String>>
selectServersUsingAdaptiv
SegmentInstanceCandidate selectedInstance = candidates.get(instanceIdx);
// Adaptive Server Selection
// TODO: Support numReplicaGroupsToQuery with Adaptive Server Selection.
- if (!serverRankList.isEmpty()) {
- int minIdx = Integer.MAX_VALUE;
+ if (!serverRankMap.isEmpty()) {
+ int bestRank = Integer.MAX_VALUE;
for (SegmentInstanceCandidate candidate : candidates) {
- int idx = serverRankList.indexOf(candidate.getInstance());
- if (idx == -1) {
+ Integer rank = serverRankMap.get(candidate.getInstance());
+ if (rank == null) {
// Let's use the round-robin approach until stats for all servers
are populated.
selectedInstance = candidates.get(instanceIdx);
break;
}
- if (idx < minIdx) {
- minIdx = idx;
+ // Update the candidate if the current one has a better rank
+ if (rank < bestRank) {
+ bestRank = rank;
selectedInstance = candidate;
}
}
}
+
+ if (selectedServers.contains(selectedInstance.getInstance())) {
Review Comment:
Since we have to loop through each server in a segment to see if it is
unranked. Having a set may not help here, removing it
--
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]