private void addSequencesFromServer( final List<Sequence<T>> listOfSequences, final SortedMap<DruidServer, List<SegmentDescriptor>> segmentsByServer ) { segmentsByServer.forEach((server, segmentsOfServer) -> { final QueryRunner serverRunner = serverView.getQueryRunner(server); if (serverRunner == null) { log.error("Server[%s] doesn't have a query runner", server); return; } final MultipleSpecificSegmentSpec segmentsOfServerSpec = new MultipleSpecificSegmentSpec(segmentsOfServer); // Divide user-provided maxQueuedBytes by the number of servers, and limit each server to that much. final long maxQueuedBytes = QueryContexts.getMaxQueuedBytes(query, httpClientConfig.getMaxQueuedBytes()); final long maxQueuedBytesPerServer = maxQueuedBytes / segmentsByServer.size(); final Sequence<T> serverResults; if (isBySegment) { serverResults = getBySegmentServerResults(serverRunner, segmentsOfServerSpec, maxQueuedBytesPerServer); } else if (!server.segmentReplicatable() || !populateCache) { serverResults = getSimpleServerResults(serverRunner, segmentsOfServerSpec, maxQueuedBytesPerServer); } else { serverResults = getAndCacheServerResults(serverRunner, segmentsOfServerSpec, maxQueuedBytesPerServer); } listOfSequences.add(serverResults); }); }
final long maxScatterGatherBytes = QueryContexts.getMaxScatterGatherBytes(query); final AtomicLong totalBytesGathered = (AtomicLong) context.get(QUERY_TOTAL_BYTES_GATHERED); final long maxQueuedBytes = QueryContexts.getMaxQueuedBytes(query, 0); final boolean usingBackpressure = maxQueuedBytes > 0;
private void addSequencesFromServer( final List<Sequence<T>> listOfSequences, final SortedMap<DruidServer, List<SegmentDescriptor>> segmentsByServer ) { segmentsByServer.forEach((server, segmentsOfServer) -> { final QueryRunner serverRunner = serverView.getQueryRunner(server); if (serverRunner == null) { log.error("Server[%s] doesn't have a query runner", server); return; } final MultipleSpecificSegmentSpec segmentsOfServerSpec = new MultipleSpecificSegmentSpec(segmentsOfServer); // Divide user-provided maxQueuedBytes by the number of servers, and limit each server to that much. final long maxQueuedBytes = QueryContexts.getMaxQueuedBytes(query, httpClientConfig.getMaxQueuedBytes()); final long maxQueuedBytesPerServer = maxQueuedBytes / segmentsByServer.size(); final Sequence<T> serverResults; if (isBySegment) { serverResults = getBySegmentServerResults(serverRunner, segmentsOfServerSpec, maxQueuedBytesPerServer); } else if (!server.segmentReplicatable() || !populateCache) { serverResults = getSimpleServerResults(serverRunner, segmentsOfServerSpec, maxQueuedBytesPerServer); } else { serverResults = getAndCacheServerResults(serverRunner, segmentsOfServerSpec, maxQueuedBytesPerServer); } listOfSequences.add(serverResults); }); }
final long maxScatterGatherBytes = QueryContexts.getMaxScatterGatherBytes(query); final AtomicLong totalBytesGathered = (AtomicLong) context.get(QUERY_TOTAL_BYTES_GATHERED); final long maxQueuedBytes = QueryContexts.getMaxQueuedBytes(query, 0); final boolean usingBackpressure = maxQueuedBytes > 0;