61yao commented on code in PR #10302:
URL: https://github.com/apache/pinot/pull/10302#discussion_r1110463137
##########
pinot-broker/src/main/java/org/apache/pinot/broker/routing/instanceselector/BaseInstanceSelector.java:
##########
@@ -231,7 +231,7 @@ void updateSegmentMaps(IdealState idealState, ExternalView
externalView, Set<Str
*/
@Nullable
private List<String> calculateEnabledInstancesForSegment(String segment,
List<String> onlineInstancesForSegment,
- Set<String> unavailableSegments) {
+ Set<String> unavailableSegments, String debugString) {
Review Comment:
If I do log info, we will have too much logs since we log one entry even
when there is no error?
##########
pinot-broker/src/main/java/org/apache/pinot/broker/routing/instanceselector/StrictReplicaGroupInstanceSelector.java:
##########
@@ -160,25 +160,18 @@ void updateSegmentMaps(IdealState idealState,
ExternalView externalView, Set<Str
// NOTE: Instances will be sorted here because 'tempOnlineInstances' is
a TreeSet. We need the online instances to
// be sorted for replica-group routing to work. For multiple
segments with the same online instances, if the
// list is sorted, the same index in the list will always point to
the same instance.
- List<String> onlineInstances = new
ArrayList<>(tempOnlineInstances.size());
- segmentToOnlineInstancesMap.put(segment, onlineInstances);
-
Set<String> instancesInIdealState =
idealStateSegmentToInstancesMap.get(segment);
Set<String> unavailableInstances =
unavailableInstancesMap.get(instancesInIdealState);
- if (unavailableInstances == null) {
- // No unavailable instance, add all instances as online instance
- for (String instance : tempOnlineInstances) {
- onlineInstances.add(instance);
- instanceToSegmentsMap.computeIfAbsent(instance, k -> new
ArrayList<>()).add(segment);
- }
- } else {
- // Some instances are unavailable, add the remaining instances as
online instance
- for (String instance : tempOnlineInstances) {
- if (!unavailableInstances.contains(instance)) {
- onlineInstances.add(instance);
- instanceToSegmentsMap.computeIfAbsent(instance, k -> new
ArrayList<>()).add(segment);
- }
+ List<String> onlineInstances = new
ArrayList<>(tempOnlineInstances.size());
+ for (String instance : tempOnlineInstances) {
+ if (unavailableInstances != null &&
unavailableInstances.contains(instance)) {
+ continue;
}
+ onlineInstances.add(instance);
+ instanceToSegmentsMap.computeIfAbsent(instance, k -> new
ArrayList<>()).add(segment);
+ }
+ if (!onlineInstances.isEmpty()) {
Review Comment:
Done
--
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]