@Override public boolean isFinished() { return state.get() == FINISHED; }
public ListenableFuture<TaskState> getStateChange(TaskState currentState) { requireNonNull(currentState, "currentState is null"); checkArgument(!currentState.isDone(), "Current state is already done"); ListenableFuture<TaskState> future = taskState.getStateChange(currentState); TaskState state = taskState.get(); if (state.isDone()) { return immediateFuture(state); } return future; }
@Override public boolean isFinished() { return state.get() == FINISHED; }
@Override public boolean isFinished() { return state.get() == FINISHED; }
@Override public boolean isFinished() { return state.get() == FINISHED; }
TaskStatus getTaskStatus() { return taskStatus.get(); }
public Optional<QueryInfo> getFinalQueryInfo() { return finalQueryInfo.get(); }
public TaskState getState() { return taskState.get(); }
public QueryState getQueryState() { return queryState.get(); }
public StageState getState() { return stageState.get(); }
public TaskInfo getTaskInfo() { return taskInfo.get(); }
@Override public String toString() { return get().toString(); }
public Optional<ExecutionFailureInfo> getFailureInfo() { if (queryState.get() != FAILED) { return Optional.empty(); } return Optional.ofNullable(this.failureCause.get()); }
public boolean isDone() { return queryState.get().isDone(); }
@GuardedBy("this") private void checkFlushComplete() { // This buffer type assigns each page to a single, arbitrary reader, // so we don't need to wait for no-more-buffers to finish the buffer. // Any readers added after finish will simply receive no data. BufferState state = this.state.get(); if ((state == FLUSHING) || ((state == NO_MORE_PAGES) && masterBuffer.isEmpty())) { if (safeGetBuffersSnapshot().stream().allMatch(ClientBuffer::isDestroyed)) { destroy(); } } }
@Override public boolean isOverutilized() { return (memoryManager.getUtilization() >= 0.5) || !state.get().canAddPages(); }
public void setAllTasksFinal(Iterable<TaskInfo> finalTaskInfos) { requireNonNull(finalTaskInfos, "finalTaskInfos is null"); checkState(stageState.get().isDone()); StageInfo stageInfo = getStageInfo(() -> finalTaskInfos); checkArgument(stageInfo.isCompleteInfo(), "finalTaskInfos are not all done"); finalStageInfo.compareAndSet(Optional.empty(), Optional.of(stageInfo)); }
@Override public void setOutputBuffers(OutputBuffers newOutputBuffers) { requireNonNull(newOutputBuffers, "newOutputBuffers is null"); // ignore buffers added after query finishes, which can happen when a query is canceled // also ignore old versions, which is normal if (state.get().isTerminal() || outputBuffers.getVersion() >= newOutputBuffers.getVersion()) { return; } // no more buffers can be added but verify this is valid state change outputBuffers.checkValidTransition(newOutputBuffers); }