mirror of https://github.com/apache/druid.git
Added a bit of docs
This commit is contained in:
parent
49472162b7
commit
1b46b58aec
|
@ -164,6 +164,9 @@ public class ScanQueryRunnerFactory implements QueryRunnerFactory<ScanResultValu
|
||||||
|
|
||||||
if (maxNumPartitionsInSegment <= scanQueryConfig.getMaxSegmentPartitionsOrderedInMemory()) {
|
if (maxNumPartitionsInSegment <= scanQueryConfig.getMaxSegmentPartitionsOrderedInMemory()) {
|
||||||
// Use n-way merge strategy
|
// Use n-way merge strategy
|
||||||
|
|
||||||
|
// Create a list of grouped runner lists (i.e. each sublist/"runner group" corresponds to an interval) ->
|
||||||
|
// there should be no interval overlap
|
||||||
List<List<QueryRunner<ScanResultValue>>> groupedRunners =
|
List<List<QueryRunner<ScanResultValue>>> groupedRunners =
|
||||||
partitionsGroupedByInterval.entrySet()
|
partitionsGroupedByInterval.entrySet()
|
||||||
.stream()
|
.stream()
|
||||||
|
@ -172,14 +175,16 @@ public class ScanQueryRunnerFactory implements QueryRunnerFactory<ScanResultValu
|
||||||
.map(segQueryRunnerPair -> segQueryRunnerPair.rhs)
|
.map(segQueryRunnerPair -> segQueryRunnerPair.rhs)
|
||||||
.collect(Collectors.toList()))
|
.collect(Collectors.toList()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return Sequences.concat(
|
|
||||||
Sequences.map(
|
|
||||||
Sequences.simple(groupedRunners), // Sequence of runnerGroups
|
return Sequences.concat( // 5) Join all the results into a single sequence
|
||||||
|
Sequences.map( // 4) Create a sequence of results from each runner group
|
||||||
|
Sequences.simple(groupedRunners),
|
||||||
runnerGroup ->
|
runnerGroup ->
|
||||||
Sequences.map(
|
Sequences.map( // 3) Create a sequence of results from each runner in the group and flatmerge based on timestamp
|
||||||
Sequences.simple(runnerGroup),
|
Sequences.simple(runnerGroup),
|
||||||
(input) -> Sequences.concat(
|
(input) -> Sequences.concat( // 2) Combine the deaggregated ScanResultValues into a single sequence
|
||||||
Sequences.map(
|
Sequences.map( // 1) Deaggregate each ScanResultValue returned by the query runners
|
||||||
input.run(queryPlus, responseContext),
|
input.run(queryPlus, responseContext),
|
||||||
srv -> Sequences.simple(srv.toSingleEventScanResultValues())
|
srv -> Sequences.simple(srv.toSingleEventScanResultValues())
|
||||||
)
|
)
|
||||||
|
@ -278,8 +283,6 @@ public class ScanQueryRunnerFactory implements QueryRunnerFactory<ScanResultValu
|
||||||
return Sequences.simple(sortedElements);
|
return Sequences.simple(sortedElements);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public QueryToolChest<ScanResultValue, ScanQuery> getToolchest()
|
public QueryToolChest<ScanResultValue, ScanQuery> getToolchest()
|
||||||
|
|
Loading…
Reference in New Issue