Class TaskSlot<T extends TaskSlotPayload>
- Type Parameters:
T- type of theTaskSlotPayloadstored in this slot
- All Implemented Interfaces:
AutoCloseable,org.apache.flink.util.AutoCloseableAsync
tasks belonging to the same slot. A TaskSlot can be in one of the following states:
- Free - The slot is empty and not allocated to a job
- Releasing - The slot is about to be freed after it has become empty.
- Allocated - The slot has been allocated for a job.
- Active - The slot is in active use by a job manager which is the leader of the allocating job.
A task slot can only be allocated if it is in state free. An allocated task slot can transit to state active.
An active slot allows to add tasks from the respective job and with the correct allocation id. An active slot can be marked as inactive which sets the state back to allocated.
An allocated or active slot can only be freed if it is empty. If it is not empty, then it's state can be set to releasing indicating that it can be freed once it becomes empty.
-
Constructor Summary
ConstructorsConstructorDescriptionTaskSlot(int index, ResourceProfile resourceProfile, int memoryPageSize, org.apache.flink.api.common.JobID jobId, AllocationID allocationId, Executor asyncExecutor) -
Method Summary
Modifier and TypeMethodDescriptionbooleanAdd the given task to the task slot.voidclear()Removes all tasks from this task slot.Generate the slot offer from this TaskSlot.intgetIndex()org.apache.flink.api.common.JobIDgetJobId()getTasks()Get all tasks running in this task slot.booleanisActive(org.apache.flink.api.common.JobID activeJobId, AllocationID activeAllocationId) booleanisAllocated(org.apache.flink.api.common.JobID jobIdToCheck, AllocationID allocationIDToCheck) booleanisEmpty()booleanbooleanMark this slot as active.booleanMark the slot as inactive/allocated.remove(ExecutionAttemptID executionAttemptId) Remove the task identified by the given execution attempt id.toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.flink.util.AutoCloseableAsync
close
-
Constructor Details
-
TaskSlot
public TaskSlot(int index, ResourceProfile resourceProfile, int memoryPageSize, org.apache.flink.api.common.JobID jobId, AllocationID allocationId, Executor asyncExecutor)
-
-
Method Details
-
getIndex
public int getIndex() -
getResourceProfile
-
getJobId
public org.apache.flink.api.common.JobID getJobId() -
getAllocationId
-
isEmpty
public boolean isEmpty() -
isActive
public boolean isActive(org.apache.flink.api.common.JobID activeJobId, AllocationID activeAllocationId) -
isAllocated
public boolean isAllocated(org.apache.flink.api.common.JobID jobIdToCheck, AllocationID allocationIDToCheck) -
isReleasing
public boolean isReleasing() -
getTasks
Get all tasks running in this task slot.- Returns:
- Iterator to all currently contained tasks in this task slot.
-
getMemoryManager
-
add
Add the given task to the task slot. This is only possible if there is not already another task with the same execution attempt id added to the task slot. In this case, the method returns true. Otherwise the task slot is left unchanged and false is returned.In case that the task slot state is not active an
IllegalStateExceptionis thrown. In case that the task's job id and allocation id don't match with the job id and allocation id for which the task slot has been allocated, anIllegalArgumentExceptionis thrown.- Parameters:
task- to be added to the task slot- Returns:
- true if the task was added to the task slot; otherwise false
- Throws:
IllegalStateException- if the task slot is not in state active
-
remove
Remove the task identified by the given execution attempt id.- Parameters:
executionAttemptId- identifying the task to be removed- Returns:
- The removed task if there was any; otherwise null.
-
clear
public void clear()Removes all tasks from this task slot. -
markActive
public boolean markActive()Mark this slot as active. A slot can only be marked active if it's in state allocated.The method returns true if the slot was set to active. Otherwise it returns false.
- Returns:
- True if the new state of the slot is active; otherwise false
-
markInactive
public boolean markInactive()Mark the slot as inactive/allocated. A slot can only be marked as inactive/allocated if it's in state allocated or active.- Returns:
- True if the new state of the slot is allocated; otherwise false
-
generateSlotOffer
Generate the slot offer from this TaskSlot.- Returns:
- The sot offer which this task slot can provide
-
toString
-
closeAsync
- Specified by:
closeAsyncin interfaceorg.apache.flink.util.AutoCloseableAsync
-