Package io.prestosql.execution
Interface TaskManager
-
- All Known Implementing Classes:
SqlTaskManager
public interface TaskManager
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TaskInfo
abortTask(TaskId taskId)
Aborts a task.TaskInfo
abortTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId)
Aborts a result buffer for a task.DynamicFiltersCollector.VersionedDynamicFilterDomains
acknowledgeAndGetNewDynamicFilterDomains(TaskId taskId, long currentDynamicFiltersVersion)
void
acknowledgeTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long sequenceId)
Acknowledges previously received results.void
addStateChangeListener(TaskId taskId, StateMachine.StateChangeListener<TaskState> stateChangeListener)
Adds a state change listener to the specified task.TaskInfo
cancelTask(TaskId taskId)
Cancels a task.List<TaskInfo>
getAllTaskInfo()
Gets all of the currently tracked tasks.TaskInfo
getTaskInfo(TaskId taskId)
Gets the info for the specified task.com.google.common.util.concurrent.ListenableFuture<TaskInfo>
getTaskInfo(TaskId taskId, long currentVersion)
Gets future info for the task after the state changes fromcurrent state
.String
getTaskInstanceId(TaskId taskId)
Gets the unique instance id of a task.com.google.common.util.concurrent.ListenableFuture<BufferResult>
getTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long startingSequenceId, io.airlift.units.DataSize maxSize)
Gets results from a task either immediately or in the future.TaskStatus
getTaskStatus(TaskId taskId)
Gets the status for the specified task.com.google.common.util.concurrent.ListenableFuture<TaskStatus>
getTaskStatus(TaskId taskId, long currentVersion)
Gets future status for the task after the state changes fromcurrent state
.void
updateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments)
TaskInfo
updateTask(Session session, TaskId taskId, Optional<PlanFragment> fragment, List<TaskSource> sources, OutputBuffers outputBuffers, OptionalInt totalPartitions)
Updates the task plan, sources and output buffers.
-
-
-
Method Detail
-
getAllTaskInfo
List<TaskInfo> getAllTaskInfo()
Gets all of the currently tracked tasks. This will included uninitialized, running, and completed tasks.
-
getTaskInfo
TaskInfo getTaskInfo(TaskId taskId)
Gets the info for the specified task. If the task has not been created yet, an uninitialized task is created and the info is returned.NOTE: this design assumes that only tasks that will eventually exist are queried.
-
getTaskStatus
TaskStatus getTaskStatus(TaskId taskId)
Gets the status for the specified task.
-
getTaskInfo
com.google.common.util.concurrent.ListenableFuture<TaskInfo> getTaskInfo(TaskId taskId, long currentVersion)
Gets future info for the task after the state changes fromcurrent state
. If the task has not been created yet, an uninitialized task is created and the future is returned. If the task is already in a final state, the info is returned immediately.NOTE: this design assumes that only tasks that will eventually exist are queried.
-
getTaskInstanceId
String getTaskInstanceId(TaskId taskId)
Gets the unique instance id of a task. This can be used to detect a task that was destroyed and recreated.
-
getTaskStatus
com.google.common.util.concurrent.ListenableFuture<TaskStatus> getTaskStatus(TaskId taskId, long currentVersion)
Gets future status for the task after the state changes fromcurrent state
. If the task has not been created yet, an uninitialized task is created and the future is returned. If the task is already in a final state, the status is returned immediately.NOTE: this design assumes that only tasks that will eventually exist are queried.
-
acknowledgeAndGetNewDynamicFilterDomains
DynamicFiltersCollector.VersionedDynamicFilterDomains acknowledgeAndGetNewDynamicFilterDomains(TaskId taskId, long currentDynamicFiltersVersion)
-
updateMemoryPoolAssignments
void updateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments)
-
updateTask
TaskInfo updateTask(Session session, TaskId taskId, Optional<PlanFragment> fragment, List<TaskSource> sources, OutputBuffers outputBuffers, OptionalInt totalPartitions)
Updates the task plan, sources and output buffers. If the task does not already exist, is is created and then updated.
-
cancelTask
TaskInfo cancelTask(TaskId taskId)
Cancels a task. If the task does not already exist, is is created and then canceled.
-
abortTask
TaskInfo abortTask(TaskId taskId)
Aborts a task. If the task does not already exist, is is created and then aborted.
-
getTaskResults
com.google.common.util.concurrent.ListenableFuture<BufferResult> getTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long startingSequenceId, io.airlift.units.DataSize maxSize)
Gets results from a task either immediately or in the future. If the task or buffer has not been created yet, an uninitialized task is created and a future is returned.NOTE: this design assumes that only tasks and buffers that will eventually exist are queried.
-
acknowledgeTaskResults
void acknowledgeTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long sequenceId)
Acknowledges previously received results.
-
abortTaskResults
TaskInfo abortTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId)
Aborts a result buffer for a task. If the task or buffer has not been created yet, an uninitialized task is created and a the buffer is aborted.NOTE: this design assumes that only tasks and buffers that will eventually exist are queried.
-
addStateChangeListener
void addStateChangeListener(TaskId taskId, StateMachine.StateChangeListener<TaskState> stateChangeListener)
Adds a state change listener to the specified task. Listener is always notified asynchronously using a dedicated notification thread pool so, care should be taken to avoid leakingthis
when adding a listener in a constructor. Additionally, it is possible notifications are observed out of order due to the asynchronous execution.
-
-