public class SqlTaskManager extends Object implements TaskManager, Closeable
Constructor and Description |
---|
SqlTaskManager(LocalExecutionPlanner planner,
LocationFactory locationFactory,
TaskExecutor taskExecutor,
SplitMonitor splitMonitor,
com.facebook.airlift.node.NodeInfo nodeInfo,
LocalMemoryManager localMemoryManager,
com.facebook.airlift.json.JsonCodec<List<TaskMemoryReservationSummary>> memoryReservationSummaryJsonCodec,
TaskManagementExecutor taskManagementExecutor,
TaskManagerConfig config,
NodeMemoryConfig nodeMemoryConfig,
LocalSpillManager localSpillManager,
ExchangeClientSupplier exchangeClientSupplier,
NodeSpillConfig nodeSpillConfig,
com.facebook.airlift.stats.GcMonitor gcMonitor,
BlockEncodingSerde blockEncodingSerde,
OrderingCompiler orderingCompiler,
FragmentResultCacheManager fragmentResultCacheManager,
com.fasterxml.jackson.databind.ObjectMapper objectMapper,
SpoolingOutputBufferFactory spoolingOutputBufferFactory) |
Modifier and Type | Method and Description |
---|---|
TaskInfo |
abortTask(TaskId taskId)
Aborts a task.
|
TaskInfo |
abortTaskResults(TaskId taskId,
OutputBuffers.OutputBufferId bufferId)
Aborts a result buffer for a task.
|
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.
|
void |
close() |
void |
failAbandonedTasks() |
List<TaskInfo> |
getAllTaskInfo()
Gets all of the currently tracked tasks.
|
List<SqlTask> |
getAllTasks() |
com.facebook.airlift.stats.CounterStat |
getFailedTasks() |
SqlTaskIoStats |
getIoStats() |
QueryContext |
getQueryContext(QueryId queryId) |
SqlTask |
getTask(TaskId taskId) |
TaskInfo |
getTaskInfo(TaskId taskId)
Gets the info for the specified task.
|
com.google.common.util.concurrent.ListenableFuture<TaskInfo> |
getTaskInfo(TaskId taskId,
TaskState currentState)
Gets future info for the task after the state changes from
current state . |
String |
getTaskInstanceId(TaskId taskId)
Gets the unique instance id of a task.
|
com.facebook.airlift.concurrent.ThreadPoolExecutorMBean |
getTaskNotificationExecutor() |
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,
TaskState currentState)
Gets future status for the task after the state changes from
current state . |
void |
removeOldTasks() |
void |
removeRemoteSource(TaskId taskId,
TaskId remoteSourceTaskId)
Removes the remote source from exchange clients of
taskId receiving data
from remoteSourceTaskId . |
void |
start() |
void |
updateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments) |
void |
updateMetadataResults(TaskId taskId,
MetadataUpdates metadataUpdates)
Update the results of metadata requests sent
|
TaskInfo |
updateTask(Session session,
TaskId taskId,
Optional<PlanFragment> fragment,
List<TaskSource> sources,
OutputBuffers outputBuffers,
Optional<TableWriteInfo> tableWriteInfo)
Updates the task plan, sources and output buffers.
|
@Inject public SqlTaskManager(LocalExecutionPlanner planner, LocationFactory locationFactory, TaskExecutor taskExecutor, SplitMonitor splitMonitor, com.facebook.airlift.node.NodeInfo nodeInfo, LocalMemoryManager localMemoryManager, com.facebook.airlift.json.JsonCodec<List<TaskMemoryReservationSummary>> memoryReservationSummaryJsonCodec, TaskManagementExecutor taskManagementExecutor, TaskManagerConfig config, NodeMemoryConfig nodeMemoryConfig, LocalSpillManager localSpillManager, ExchangeClientSupplier exchangeClientSupplier, NodeSpillConfig nodeSpillConfig, com.facebook.airlift.stats.GcMonitor gcMonitor, BlockEncodingSerde blockEncodingSerde, OrderingCompiler orderingCompiler, FragmentResultCacheManager fragmentResultCacheManager, com.fasterxml.jackson.databind.ObjectMapper objectMapper, SpoolingOutputBufferFactory spoolingOutputBufferFactory)
public void updateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments)
updateMemoryPoolAssignments
in interface TaskManager
@PostConstruct public void start()
@PreDestroy public void close()
close
in interface Closeable
close
in interface AutoCloseable
public SqlTaskIoStats getIoStats()
public com.facebook.airlift.concurrent.ThreadPoolExecutorMBean getTaskNotificationExecutor()
public com.facebook.airlift.stats.CounterStat getFailedTasks()
public List<TaskInfo> getAllTaskInfo()
TaskManager
getAllTaskInfo
in interface TaskManager
public TaskInfo getTaskInfo(TaskId taskId)
TaskManager
NOTE: this design assumes that only tasks that will eventually exist are queried.
getTaskInfo
in interface TaskManager
public TaskStatus getTaskStatus(TaskId taskId)
TaskManager
getTaskStatus
in interface TaskManager
public com.google.common.util.concurrent.ListenableFuture<TaskInfo> getTaskInfo(TaskId taskId, TaskState currentState)
TaskManager
current 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.
getTaskInfo
in interface TaskManager
public String getTaskInstanceId(TaskId taskId)
TaskManager
getTaskInstanceId
in interface TaskManager
public com.google.common.util.concurrent.ListenableFuture<TaskStatus> getTaskStatus(TaskId taskId, TaskState currentState)
TaskManager
current 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.
getTaskStatus
in interface TaskManager
public TaskInfo updateTask(Session session, TaskId taskId, Optional<PlanFragment> fragment, List<TaskSource> sources, OutputBuffers outputBuffers, Optional<TableWriteInfo> tableWriteInfo)
TaskManager
updateTask
in interface TaskManager
public void updateMetadataResults(TaskId taskId, MetadataUpdates metadataUpdates)
TaskManager
updateMetadataResults
in interface TaskManager
public com.google.common.util.concurrent.ListenableFuture<BufferResult> getTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long startingSequenceId, io.airlift.units.DataSize maxSize)
TaskManager
NOTE: this design assumes that only tasks and buffers that will eventually exist are queried.
getTaskResults
in interface TaskManager
public void acknowledgeTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId, long sequenceId)
TaskManager
acknowledgeTaskResults
in interface TaskManager
public TaskInfo abortTaskResults(TaskId taskId, OutputBuffers.OutputBufferId bufferId)
TaskManager
NOTE: this design assumes that only tasks and buffers that will eventually exist are queried.
abortTaskResults
in interface TaskManager
public void removeRemoteSource(TaskId taskId, TaskId remoteSourceTaskId)
TaskManager
taskId
receiving data
from remoteSourceTaskId
. Any further output or transport timeout exception
from remoteSourceTaskId
will be ignored.removeRemoteSource
in interface TaskManager
public TaskInfo cancelTask(TaskId taskId)
TaskManager
cancelTask
in interface TaskManager
public TaskInfo abortTask(TaskId taskId)
TaskManager
abortTask
in interface TaskManager
public void removeOldTasks()
public void failAbandonedTasks()
public void addStateChangeListener(TaskId taskId, StateMachine.StateChangeListener<TaskState> stateChangeListener)
TaskManager
this
when adding a listener in a constructor. Additionally, it is
possible notifications are observed out of order due to the asynchronous execution.addStateChangeListener
in interface TaskManager
public QueryContext getQueryContext(QueryId queryId)
Copyright © 2012–2022. All rights reserved.