@Override public <T> QueryRunner<T> getQueryRunnerForIntervals(final Query<T> query, Iterable<Interval> intervals) { final QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query); final Map<Integer, FireChief> partitionChiefs = chiefs.get(Iterables.getOnlyElement(query.getDataSource() .getNames())); return partitionChiefs == null ? new NoopQueryRunner<T>() : factory.getToolchest().mergeResults( factory.mergeRunners( MoreExecutors.sameThreadExecutor(), // Chaining query runners which wait on submitted chain query runners can make executor pools deadlock Iterables.transform( partitionChiefs.values(), new Function<FireChief, QueryRunner<T>>() { @Override public QueryRunner<T> apply(FireChief fireChief) { return fireChief.getQueryRunner(query); } } ) ) ); }
private static <T> Sequence<T> executeQuery(final Injector injector, final QueryableIndex index, final Query<T> query) { final QueryRunnerFactoryConglomerate conglomerate = injector.getInstance(QueryRunnerFactoryConglomerate.class); final QueryRunnerFactory factory = conglomerate.findFactory(query); final QueryRunner<T> runner = factory.createRunner(new QueryableIndexSegment("segment", index)); final Sequence results = factory.getToolchest().mergeResults( factory.mergeRunners(MoreExecutors.sameThreadExecutor(), ImmutableList.<QueryRunner>of(runner)) ).run(QueryPlus.wrap(query), Maps.<String, Object>newHashMap()); return (Sequence<T>) results; }
public <T> QueryRunner<T> getQueryRunner(Query<T> query) { QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query); QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); return new FinalizeResultsQueryRunner<T>(plumber.getQueryRunner(query), toolChest); }
@Override public Sequence<T> run(final Query<T> query) { final Closeable closeable = adapter.increment(); try { final Sequence<T> baseSequence = factory.createRunner(adapter).run(query); return new ResourceClosingSequence<T>(baseSequence, closeable); } catch (RuntimeException e) { Closeables.closeQuietly(closeable); throw e; } } }
emitter, builderFn, factory.mergeRunners( MoreExecutors.sameThreadExecutor(), Iterables.transform(
public <T> QueryRunner<T> getQueryRunner(Query<T> query) { QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query); QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); return new FinalizeResultsQueryRunner<T>(plumber.getQueryRunner(query), toolChest); } }
@SuppressWarnings("unchecked") public static Sequence run(Query query, QueryableIndex index) { return findFactory(query).createRunner(new QueryableIndexSegment("", index)).run(query, null); }
sinkSegmentIdentifier, descriptor.getInterval().getStart(), factory.mergeRunners( MoreExecutors.sameThreadExecutor(), Iterables.transform(
@Override public <T> QueryRunner<T> getQueryRunnerForSegments(final Query<T> query, final Iterable<SegmentDescriptor> specs) { final QueryRunnerFactory<T, Query<T>> factory = conglomerate.findFactory(query); final Map<Integer, FireChief> partitionChiefs = chiefs.get(Iterables.getOnlyElement(query.getDataSource() .getNames())); return partitionChiefs == null ? new NoopQueryRunner<T>() : factory.getToolchest().mergeResults( factory.mergeRunners( MoreExecutors.sameThreadExecutor(), Iterables.transform( specs, new Function<SegmentDescriptor, QueryRunner<T>>() { @Override public QueryRunner<T> apply(SegmentDescriptor spec) { final FireChief retVal = partitionChiefs.get(spec.getPartitionNumber()); return retVal == null ? new NoopQueryRunner<T>() : retVal.getQueryRunner(query.withQuerySegmentSpec(new SpecificSegmentSpec(spec))); } } ) ) ); }
@Override public <T> QueryRunner<T> getQueryRunner(Query<T> query) { if (plumber != null) { QueryRunnerFactory<T, Query<T>> factory = queryRunnerFactoryConglomerate.findFactory(query); QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); return new FinalizeResultsQueryRunner<T>(plumber.getQueryRunner(query), toolChest); } else { return null; } }
@Override public Sequence<T> run(final QueryPlus<T> queryPlus, Map<String, Object> responseContext) { if (adapter.increment()) { try { final Sequence<T> baseSequence = factory.createRunner(adapter).run(queryPlus, responseContext); return Sequences.withBaggage(baseSequence, adapter.decrementOnceCloseable()); } catch (Throwable t) { try { adapter.decrement(); } catch (Exception e) { t.addSuppressed(e); } throw t; } } else { // Segment was closed before we had a chance to increment the reference count return new ReportTimelineMissingSegmentQueryRunner<T>(descriptor).run(queryPlus, responseContext); } } }
final QueryToolChest<T, Query<T>> toolchest = factory.getToolchest(); factory.mergeRunners( queryExecutorService, FunctionalIterable
@Override public <T> QueryRunner<T> getQueryRunner(Query<T> query) { if (plumber != null) { QueryRunnerFactory<T, Query<T>> factory = queryRunnerFactoryConglomerate.findFactory(query); QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); return new FinalizeResultsQueryRunner<T>(plumber.getQueryRunner(query), toolChest); } else { return null; } }
final QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); return new FinalizeResultsQueryRunner<T>(toolChest.mergeResults(factory.mergeRunners(exec, adapters)), toolChest);
final QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); final AtomicLong cpuTimeAccumulator = new AtomicLong(0L); toolChest.mergeResults(factory.mergeRunners(exec, queryRunners)), toolChest ),
final QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); ); return new FinalizeResultsQueryRunner<T>(toolChest.mergeResults(factory.mergeRunners(exec, adapters)), toolChest);
final QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); toolChest.mergeResults(factory.mergeRunners(exec, queryRunners)), toolChest ),
final QueryToolChest<T, Query<T>> toolChest = factory.getToolchest(); final boolean skipIncrementalSegment = query.getContextValue(CONTEXT_SKIP_INCREMENTAL_SEGMENT, false); final AtomicLong cpuTimeAccumulator = new AtomicLong(0L); factory.mergeRunners( queryExecutorService, FunctionalIterable