Thanks for the explanation @jihoonson 
I had performed some tests wrapping the `AsyncQueryRunner` for each of the 
runners within the `MergeSequence` but it didn't look like it helped. Anyways 
I'll take a look again. 
 I agree that using the `AsyncQueryRunner` may not be the best idea and it may 
require increasing the processing numthreads as the broker uses its query 
processing executor service for parallelizing it.
The solution what I was suggesting is to modify the getDataSource() API in the 
Query interface to something like:
`List<DataSource> getDataSource()`
 With this change, we can modify the following `getTimeline` method and 
construct a combined  VersionedIntervalTimeline<String, ServerSelector> object 
which includes entries for all the listed datasources:
https://github.com/apache/incubator-druid/blob/master/server/src/main/java/org/apache/druid/client/CachingClusteredClient.java#L256
This timeline can then be used for identifying segments to be queried and from 
here on`CachingClusteredClient` would treat this as a single query. Does this 
make sense?

[ Full content available at: 
https://github.com/apache/incubator-druid/issues/6057 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to