Class DefaultBlacklistStrategy

    • Field Detail

      • DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME

        public static final int DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME
        See Also:
        Constant Field Values
      • DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT

        public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
        See Also:
        Constant Field Values
    • Constructor Detail

      • DefaultBlacklistStrategy

        public DefaultBlacklistStrategy()
    • Method Detail

      • getBlacklist

        public Set<String> getBlacklist​(List<Map<String,​Set<Integer>>> supervisorsWithFailures,
                                        List<Map<String,​Integer>> sendAssignmentFailureCount,
                                        Cluster cluster,
                                        Topologies topologies)
        Description copied from interface: IBlacklistStrategy
        Get blacklist by blacklist strategy.
        Specified by:
        getBlacklist in interface IBlacklistStrategy
        Parameters:
        supervisorsWithFailures - bad supervisors buffered in sliding window
        sendAssignmentFailureCount - supervisors with failed assignment calls in sliding window
        cluster - the cluster these topologies are running in. `cluster` contains everything user need to develop a new scheduling logic. e.g. supervisors information, available slots, current assignments for all the topologies etc. User can set the new assignment for topologies using cluster.setAssignmentById()`
        topologies - all the topologies in the cluster, some of them need schedule. Topologies object here only contain static information about topologies. Information like assignments, slots are all in the `cluster` object.
        Returns:
        blacklisted supervisors' id set
      • resumeFromBlacklist

        public void resumeFromBlacklist()
        Description copied from interface: IBlacklistStrategy
        resume supervisors form blacklist. Blacklist is just a temporary list for supervisors, or there will be less and less available resources. This will be called every time before getBlacklist() and schedule.
        Specified by:
        resumeFromBlacklist in interface IBlacklistStrategy
      • releaseBlacklistWhenNeeded

        protected Set<String> releaseBlacklistWhenNeeded​(Cluster cluster,
                                                         List<String> blacklistedNodeIds)
        Decide when/if to release blacklisted hosts.
        Parameters:
        cluster - the current state of the cluster.
        blacklistedNodeIds - the current set of blacklisted node ids sorted by earliest
        Returns:
        the set of nodes to be released.