private void waitForMinimumWorkers() { ListenableFuture<?> minimumWorkerFuture = clusterSizeMonitor.waitForMinimumWorkers(); addSuccessCallback(minimumWorkerFuture, this::startExecution); addExceptionCallback(minimumWorkerFuture, stateMachine::transitionToFailed); }
addSuccessCallback(scheduleGroup.nextSplitBatchFuture, () -> stage.recordGetSplitTime(start));
public static Query create( SessionContext sessionContext, String query, QueryManager queryManager, SessionPropertyManager sessionPropertyManager, ExchangeClient exchangeClient, Executor dataProcessorExecutor, ScheduledExecutorService timeoutExecutor, BlockEncodingSerde blockEncodingSerde) { Query result = new Query(sessionContext, query, queryManager, sessionPropertyManager, exchangeClient, dataProcessorExecutor, timeoutExecutor, blockEncodingSerde); // register listeners after submission finishes addSuccessCallback(result.submissionFuture, () -> { result.queryManager.addOutputInfoListener(result.getQueryId(), result::setQueryOutputInfo); result.queryManager.addStateChangeListener(result.getQueryId(), state -> { if (state.isDone()) { QueryInfo queryInfo = queryManager.getFullQueryInfo(result.getQueryId()); result.closeExchangeClientIfNecessary(queryInfo); } }); }); return result; }
addSuccessCallback(lookupSourceProviderFuture, LookupSourceProvider::close); lookupSourceProvider = new StaticLookupSourceProvider(new EmptyLookupSource());
public static <T> void addSuccessCallback(ListenableFuture<T> future, Runnable successCallback) { requireNonNull(successCallback, "successCallback is null"); addSuccessCallback(future, t -> successCallback.run()); }
public static <T> void addSuccessCallback(ListenableFuture<T> future, Runnable successCallback) { requireNonNull(successCallback, "successCallback is null"); addSuccessCallback(future, t -> successCallback.run()); }
private void waitForMinimumWorkers() { ListenableFuture<?> minimumWorkerFuture = clusterSizeMonitor.waitForMinimumWorkers(); addSuccessCallback(minimumWorkerFuture, () -> queryExecutor.submit(this::startExecution)); addExceptionCallback(minimumWorkerFuture, throwable -> queryExecutor.submit(() -> stateMachine.transitionToFailed(throwable))); }
private void waitForMinimumWorkers() { ListenableFuture<?> minimumWorkerFuture = clusterSizeMonitor.waitForMinimumWorkers(); addSuccessCallback(minimumWorkerFuture, this::startExecution); addExceptionCallback(minimumWorkerFuture, stateMachine::transitionToFailed); }
addSuccessCallback(scheduleGroup.nextSplitBatchFuture, () -> stage.recordGetSplitTime(start));
addSuccessCallback(scheduleGroup.nextSplitBatchFuture, () -> stage.recordGetSplitTime(start));
public static Query create( SessionContext sessionContext, String query, QueryManager queryManager, SessionPropertyManager sessionPropertyManager, ExchangeClient exchangeClient, Executor dataProcessorExecutor, ScheduledExecutorService timeoutExecutor, BlockEncodingSerde blockEncodingSerde) { Query result = new Query(sessionContext, query, queryManager, sessionPropertyManager, exchangeClient, dataProcessorExecutor, timeoutExecutor, blockEncodingSerde); // register listeners after submission finishes addSuccessCallback(result.submissionFuture, () -> { result.queryManager.addOutputInfoListener(result.getQueryId(), result::setQueryOutputInfo); result.queryManager.addStateChangeListener(result.getQueryId(), state -> { if (state.isDone()) { QueryInfo queryInfo = queryManager.getFullQueryInfo(result.getQueryId()); result.closeExchangeClientIfNecessary(queryInfo); } }); }); return result; }
public static Query create( SessionContext sessionContext, String query, QueryManager queryManager, SessionPropertyManager sessionPropertyManager, ExchangeClient exchangeClient, Executor dataProcessorExecutor, ScheduledExecutorService timeoutExecutor, BlockEncodingSerde blockEncodingSerde) { Query result = new Query(sessionContext, query, queryManager, sessionPropertyManager, exchangeClient, dataProcessorExecutor, timeoutExecutor, blockEncodingSerde); // register listeners after submission finishes addSuccessCallback(result.submissionFuture, () -> { result.queryManager.addOutputInfoListener(result.getQueryId(), result::setQueryOutputInfo); result.queryManager.addStateChangeListener(result.getQueryId(), state -> { if (state.isDone()) { QueryInfo queryInfo = queryManager.getFullQueryInfo(result.getQueryId()); result.closeExchangeClientIfNecessary(queryInfo); } }); }); return result; }
addSuccessCallback(lookupSourceProviderFuture, LookupSourceProvider::close); lookupSourceProvider = new StaticLookupSourceProvider(new EmptyLookupSource());
addSuccessCallback(lookupSourceProviderFuture, LookupSourceProvider::close); lookupSourceProvider = new StaticLookupSourceProvider(new EmptyLookupSource());