gianm commented on a change in pull request #10125:
URL: https://github.com/apache/druid/pull/10125#discussion_r449226894
##########
File path:
server/src/main/java/org/apache/druid/client/CachingClusteredClient.java
##########
@@ -401,11 +407,16 @@ private ClusterQueryResult(Sequence<T> sequence, int
numQueryServers)
}
}
- private Set<SegmentServerSelector>
computeSegmentsToQuery(TimelineLookup<String, ServerSelector> timeline)
+ private Set<SegmentServerSelector> computeSegmentsToQuery(
+ TimelineLookup<String, ServerSelector> timeline,
+ boolean specificSegments
+ )
{
+ final java.util.function.Function<Interval,
List<TimelineObjectHolder<String, ServerSelector>>> lookupFn
+ = specificSegments ? timeline::lookupWithIncompletePartitions :
timeline::lookup;
final List<TimelineObjectHolder<String, ServerSelector>> serversLookup =
toolChest.filterSegments(
query,
- intervals.stream().flatMap(i ->
timeline.lookup(i).stream()).collect(Collectors.toList())
+ intervals.stream().flatMap(i ->
lookupFn.apply(i).stream()).collect(Collectors.toList())
Review comment:
Hmm, although, `getQueryRunnerForSegments` does create a modified
timeline that only has the relevant segments, so this might be okay as long as
we can assume none of them overshadow the others. Which should be a fair
assumption for a query that originally started out as being by intervals. It
seems a bit sketchy, though, and would be nice if we could avoid the
unnecessary creation of this timeline.
But if we stick with this approach — will this properly retain information
about the relevant SegmentDescriptors' intervals, though? These could be
narrower than the segments' full intervals.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]