Package io.trino.execution
Interface TaskManager
-
- All Known Implementing Classes:
SqlTaskManager
public interface TaskManager
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TaskInfoabortTask(TaskId taskId)Aborts a task.TaskInfoabortTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId)Aborts a result buffer for a task.DynamicFiltersCollector.VersionedDynamicFilterDomainsacknowledgeAndGetNewDynamicFilterDomains(TaskId taskId, long currentDynamicFiltersVersion)voidacknowledgeTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long sequenceId)Acknowledges previously received results.voidaddStateChangeListener(TaskId taskId, StateMachine.StateChangeListener<TaskState> stateChangeListener)Adds a state change listener to the specified task.TaskInfocancelTask(TaskId taskId)Cancels a task.List<TaskInfo>getAllTaskInfo()Gets all of the currently tracked tasks.TaskInfogetTaskInfo(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.StringgetTaskInstanceId(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.TaskStatusgetTaskStatus(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.voidupdateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments)TaskInfoupdateTask(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, it is created and then updated.
-
cancelTask
TaskInfo cancelTask(TaskId taskId)
Cancels a task. If the task does not already exist, it is created and then canceled.
-
abortTask
TaskInfo abortTask(TaskId taskId)
Aborts a task. If the task does not already exist, it 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 leakingthiswhen adding a listener in a constructor. Additionally, it is possible notifications are observed out of order due to the asynchronous execution.
-
-