Interface SlotManager

    • Method Detail

      • getNumberRegisteredSlots

        int getNumberRegisteredSlots()
      • getNumberRegisteredSlotsOf

        int getNumberRegisteredSlotsOf​(InstanceID instanceId)
      • getNumberFreeSlots

        int getNumberFreeSlots()
      • getNumberFreeSlotsOf

        int getNumberFreeSlotsOf​(InstanceID instanceId)
      • start

        void start​(ResourceManagerId newResourceManagerId,
                   Executor newMainThreadExecutor,
                   ResourceAllocator newResourceAllocator,
                   ResourceEventListener resourceEventListener,
                   BlockedTaskManagerChecker newBlockedTaskManagerChecker)
        Starts the slot manager with the given leader id and resource manager actions.
        Parameters:
        newResourceManagerId - to use for communication with the task managers
        newMainThreadExecutor - to use to run code in the ResourceManager's main thread
        newResourceAllocator - to use for resource (de-)allocations
        resourceEventListener - to use for notify resource not enough
        newBlockedTaskManagerChecker - to query whether a task manager is blocked
      • suspend

        void suspend()
        Suspends the component. This clears the internal state of the slot manager.
      • clearResourceRequirements

        void clearResourceRequirements​(JobID jobId)
        Notifies the slot manager that the resource requirements for the given job should be cleared. The slot manager may assume that no further updates to the resource requirements will occur.
        Parameters:
        jobId - job for which to clear the requirements
      • processResourceRequirements

        void processResourceRequirements​(ResourceRequirements resourceRequirements)
        Notifies the slot manager about the resource requirements of a job.
        Parameters:
        resourceRequirements - resource requirements of a job
      • registerTaskManager

        SlotManager.RegistrationResult registerTaskManager​(TaskExecutorConnection taskExecutorConnection,
                                                           SlotReport initialSlotReport,
                                                           ResourceProfile totalResourceProfile,
                                                           ResourceProfile defaultSlotResourceProfile)
        Registers a new task manager at the slot manager. This will make the task managers slots known and, thus, available for allocation.
        Parameters:
        taskExecutorConnection - for the new task manager
        initialSlotReport - for the new task manager
        totalResourceProfile - for the new task manager
        defaultSlotResourceProfile - for the new task manager
        Returns:
        The result of task manager registration
      • unregisterTaskManager

        boolean unregisterTaskManager​(InstanceID instanceId,
                                      Exception cause)
        Unregisters the task manager identified by the given instance id and its associated slots from the slot manager.
        Parameters:
        instanceId - identifying the task manager to unregister
        cause - for unregistering the TaskManager
        Returns:
        True if there existed a registered task manager with the given instance id
      • reportSlotStatus

        boolean reportSlotStatus​(InstanceID instanceId,
                                 SlotReport slotReport)
        Reports the current slot allocations for a task manager identified by the given instance id.
        Parameters:
        instanceId - identifying the task manager for which to report the slot status
        slotReport - containing the status for all of its slots
        Returns:
        true if the slot status has been updated successfully, otherwise false
      • freeSlot

        void freeSlot​(SlotID slotId,
                      AllocationID allocationId)
        Free the given slot from the given allocation. If the slot is still allocated by the given allocation id, then the slot will be marked as free and will be subject to new slot requests.
        Parameters:
        slotId - identifying the slot to free
        allocationId - with which the slot is presumably allocated
      • setFailUnfulfillableRequest

        void setFailUnfulfillableRequest​(boolean failUnfulfillableRequest)
      • triggerResourceRequirementsCheck

        void triggerResourceRequirementsCheck()
        Trigger the resource requirement check. This method will be called when some slot statuses changed.