public TaskState getState() { return taskStateMachine.getState(); }
assertEquals(taskStateMachine.getState(), TaskState.RUNNING);
public boolean isDone() { return taskStateMachine.getState().isDone(); }
assertEquals(taskStateMachine.getState(), TaskState.RUNNING);
@Override public int getPartitionedSplitCount() { if (taskStateMachine.getState().isDone()) { return 0; } synchronized (this) { int count = 0; for (PlanNodeId partitionedSource : fragment.getPartitionedSources()) { Collection<Split> partitionedSplits = splits.get(partitionedSource); count += partitionedSplits.size(); } return count; } }
@Override public synchronized int getQueuedPartitionedSplitCount() { if (taskStateMachine.getState().isDone()) { return 0; } return getPartitionedSplitCount() - runningDrivers; } }
if (!taskStateMachine.getState().isDone()) { taskHandle = createTaskHandle(taskStateMachine, taskContext, outputBuffer, localExecutionPlan, taskExecutor);
private TaskStats getTaskStats(TaskHolder taskHolder) { TaskInfo finalTaskInfo = taskHolder.getFinalTaskInfo(); if (finalTaskInfo != null) { return finalTaskInfo.getStats(); } SqlTaskExecution taskExecution = taskHolder.getTaskExecution(); if (taskExecution != null) { return taskExecution.getTaskContext().getTaskStats(); } // if the task completed without creation, set end time DateTime endTime = taskStateMachine.getState().isDone() ? DateTime.now() : null; return new TaskStats(taskStateMachine.getCreatedTime(), endTime); }
private synchronized void checkTaskCompletion() { if (taskStateMachine.getState().isDone()) { return; } // are there more partition splits expected? for (DriverSplitRunnerFactory driverSplitRunnerFactory : driverRunnerFactoriesWithSplitLifeCycle.values()) { if (!driverSplitRunnerFactory.isNoMoreDriverRunner()) { return; } } // do we still have running tasks? if (status.getRemainingDriver() != 0) { return; } // no more output will be created outputBuffer.setNoMorePages(); // are there still pages in the output buffer if (!outputBuffer.isFinished()) { return; } // Cool! All done! taskStateMachine.finished(); }
@Override public void addFinalTaskInfoListener(StateChangeListener<TaskInfo> stateChangeListener) { AtomicBoolean done = new AtomicBoolean(); StateChangeListener<TaskState> fireOnceStateChangeListener = state -> { if (state.isDone() && done.compareAndSet(false, true)) { stateChangeListener.stateChanged(getTaskInfo()); } }; taskStateMachine.addStateChangeListener(fireOnceStateChangeListener); fireOnceStateChangeListener.stateChanged(taskStateMachine.getState()); }
@Override public TaskStatus getTaskStatus() { TaskStats stats = taskContext.getTaskStats(); return new TaskStatus(taskStateMachine.getTaskId(), TASK_INSTANCE_ID, nextTaskInfoVersion.get(), taskStateMachine.getState(), location, nodeId, ImmutableSet.of(), ImmutableList.of(), stats.getQueuedPartitionedDrivers(), stats.getRunningPartitionedDrivers(), false, stats.getPhysicalWrittenDataSize(), stats.getUserMemoryReservation(), stats.getSystemMemoryReservation(), 0, new Duration(0, MILLISECONDS)); }
@Override public TaskInfo getTaskInfo() TaskState state = taskStateMachine.getState(); List<ExecutionFailureInfo> failures = ImmutableList.of(); if (state == TaskState.FAILED) {
TaskState state = taskStateMachine.getState(); List<ExecutionFailureInfo> failures = ImmutableList.of(); if (state == FAILED) {
public TaskState getState() { return taskStateMachine.getState(); }
public boolean isDone() { return taskStateMachine.getState().isDone(); }
@Override public int getPartitionedSplitCount() { if (taskStateMachine.getState().isDone()) { return 0; } synchronized (this) { Collection<Split> partitionedSplits = splits.get(fragment.getPartitionedSource()); if (partitionedSplits == null) { return 0; } return partitionedSplits.size(); } }
private synchronized void checkTaskCompletion() { if (taskStateMachine.getState().isDone()) { return; } // are there more partition splits expected? if (partitionedDriverFactory != null && !partitionedDriverFactory.isNoMoreSplits()) { return; } // do we still have running tasks? if (remainingDrivers.get() != 0) { return; } // no more output will be created sharedBuffer.setNoMorePages(); // are there still pages in the output buffer if (!sharedBuffer.isFinished()) { return; } // Cool! All done! taskStateMachine.finished(); }
@Override public int getQueuedPartitionedSplitCount() { if (taskStateMachine.getState().isDone()) { return 0; } return getPartitionedSplitCount() - runningDrivers; } }
TaskState state = taskStateMachine.getState(); List<ExecutionFailureInfo> failures = ImmutableList.of(); if (state == TaskState.FAILED) {
@Override public TaskInfo getTaskInfo() { TaskState state = taskStateMachine.getState(); List<ExecutionFailureInfo> failures = ImmutableList.of(); if (state == TaskState.FAILED) { failures = toFailures(taskStateMachine.getFailureCauses()); } return new TaskInfo( taskStateMachine.getTaskId(), TASK_INSTANCE_ID, nextTaskInfoVersion.getAndIncrement(), state, location, DateTime.now(), sharedBuffer.getInfo(), ImmutableSet.<PlanNodeId>of(), taskContext.getTaskStats(), failures, true); }