Package io.trino.server.remotetask
Class HttpRemoteTask
- java.lang.Object
-
- io.trino.server.remotetask.HttpRemoteTask
-
- All Implemented Interfaces:
RemoteTask
public final class HttpRemoteTask extends Object implements RemoteTask
-
-
Constructor Summary
Constructors Constructor Description HttpRemoteTask(Session session, TaskId taskId, String nodeId, URI location, PlanFragment planFragment, com.google.common.collect.Multimap<PlanNodeId,Split> initialSplits, OutputBuffers outputBuffers, io.airlift.http.client.HttpClient httpClient, Executor executor, ScheduledExecutorService updateScheduledExecutor, ScheduledExecutorService errorScheduledExecutor, io.airlift.units.Duration maxErrorDuration, io.airlift.units.Duration taskStatusRefreshMaxWait, io.airlift.units.Duration taskInfoUpdateInterval, boolean summarizeTaskInfo, io.airlift.json.JsonCodec<TaskStatus> taskStatusCodec, io.airlift.json.JsonCodec<DynamicFiltersCollector.VersionedDynamicFilterDomains> dynamicFilterDomainsCodec, io.airlift.json.JsonCodec<TaskInfo> taskInfoCodec, io.airlift.json.JsonCodec<TaskUpdateRequest> taskUpdateRequestCodec, NodeTaskMap.PartitionedSplitCountTracker partitionedSplitCountTracker, RemoteTaskStats stats, DynamicFilterService dynamicFilterService, Set<DynamicFilterId> outboundDynamicFilterIds)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort()voidaddFinalTaskInfoListener(StateMachine.StateChangeListener<TaskInfo> stateChangeListener)Add a listener for the final task info.voidaddSplits(com.google.common.collect.Multimap<PlanNodeId,Split> splitsBySource)voidaddStateChangeListener(StateMachine.StateChangeListener<TaskStatus> stateChangeListener)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.voidcancel()voidfail(Throwable cause)Move the task directly to the failed state if there was a failure in this taskStringgetNodeId()PartitionedSplitsInfogetPartitionedSplitsInfo()PartitionedSplitsInfogetQueuedPartitionedSplitsInfo()TaskIdgetTaskId()TaskInfogetTaskInfo()TaskStatusgetTaskStatus()intgetUnacknowledgedPartitionedSplitCount()PartitionedSplitsInfogetUnacknowledgedPartitionedSplitsInfo()voidnoMoreSplits(PlanNodeId sourceId)voidnoMoreSplits(PlanNodeId sourceId, Lifespan lifespan)voidsetOutputBuffers(OutputBuffers newOutputBuffers)voidstart()StringtoString()com.google.common.util.concurrent.ListenableFuture<Void>whenSplitQueueHasSpace(long weightThreshold)
-
-
-
Constructor Detail
-
HttpRemoteTask
public HttpRemoteTask(Session session, TaskId taskId, String nodeId, URI location, PlanFragment planFragment, com.google.common.collect.Multimap<PlanNodeId,Split> initialSplits, OutputBuffers outputBuffers, io.airlift.http.client.HttpClient httpClient, Executor executor, ScheduledExecutorService updateScheduledExecutor, ScheduledExecutorService errorScheduledExecutor, io.airlift.units.Duration maxErrorDuration, io.airlift.units.Duration taskStatusRefreshMaxWait, io.airlift.units.Duration taskInfoUpdateInterval, boolean summarizeTaskInfo, io.airlift.json.JsonCodec<TaskStatus> taskStatusCodec, io.airlift.json.JsonCodec<DynamicFiltersCollector.VersionedDynamicFilterDomains> dynamicFilterDomainsCodec, io.airlift.json.JsonCodec<TaskInfo> taskInfoCodec, io.airlift.json.JsonCodec<TaskUpdateRequest> taskUpdateRequestCodec, NodeTaskMap.PartitionedSplitCountTracker partitionedSplitCountTracker, RemoteTaskStats stats, DynamicFilterService dynamicFilterService, Set<DynamicFilterId> outboundDynamicFilterIds)
-
-
Method Detail
-
getTaskId
public TaskId getTaskId()
- Specified by:
getTaskIdin interfaceRemoteTask
-
getNodeId
public String getNodeId()
- Specified by:
getNodeIdin interfaceRemoteTask
-
getTaskInfo
public TaskInfo getTaskInfo()
- Specified by:
getTaskInfoin interfaceRemoteTask
-
getTaskStatus
public TaskStatus getTaskStatus()
- Specified by:
getTaskStatusin interfaceRemoteTask
-
start
public void start()
- Specified by:
startin interfaceRemoteTask
-
addSplits
public void addSplits(com.google.common.collect.Multimap<PlanNodeId,Split> splitsBySource)
- Specified by:
addSplitsin interfaceRemoteTask
-
noMoreSplits
public void noMoreSplits(PlanNodeId sourceId)
- Specified by:
noMoreSplitsin interfaceRemoteTask
-
noMoreSplits
public void noMoreSplits(PlanNodeId sourceId, Lifespan lifespan)
- Specified by:
noMoreSplitsin interfaceRemoteTask
-
setOutputBuffers
public void setOutputBuffers(OutputBuffers newOutputBuffers)
- Specified by:
setOutputBuffersin interfaceRemoteTask
-
getPartitionedSplitsInfo
public PartitionedSplitsInfo getPartitionedSplitsInfo()
- Specified by:
getPartitionedSplitsInfoin interfaceRemoteTask
-
getUnacknowledgedPartitionedSplitsInfo
public PartitionedSplitsInfo getUnacknowledgedPartitionedSplitsInfo()
-
getQueuedPartitionedSplitsInfo
public PartitionedSplitsInfo getQueuedPartitionedSplitsInfo()
- Specified by:
getQueuedPartitionedSplitsInfoin interfaceRemoteTask
-
getUnacknowledgedPartitionedSplitCount
public int getUnacknowledgedPartitionedSplitCount()
- Specified by:
getUnacknowledgedPartitionedSplitCountin interfaceRemoteTask
-
addStateChangeListener
public void addStateChangeListener(StateMachine.StateChangeListener<TaskStatus> stateChangeListener)
Description copied from interface:RemoteTaskListener 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.- Specified by:
addStateChangeListenerin interfaceRemoteTask
-
addFinalTaskInfoListener
public void addFinalTaskInfoListener(StateMachine.StateChangeListener<TaskInfo> stateChangeListener)
Description copied from interface:RemoteTaskAdd a listener for the final task info. This notification is guaranteed to be fired only once. 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.- Specified by:
addFinalTaskInfoListenerin interfaceRemoteTask
-
whenSplitQueueHasSpace
public com.google.common.util.concurrent.ListenableFuture<Void> whenSplitQueueHasSpace(long weightThreshold)
- Specified by:
whenSplitQueueHasSpacein interfaceRemoteTask
-
cancel
public void cancel()
- Specified by:
cancelin interfaceRemoteTask
-
abort
public void abort()
- Specified by:
abortin interfaceRemoteTask
-
fail
public void fail(Throwable cause)
Move the task directly to the failed state if there was a failure in this task- Specified by:
failin interfaceRemoteTask
-
-