Class BlacklistScheduler

    • 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
      • DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME

        public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME
        See Also:
        Constant Field Values
      • toleranceTime

        protected int toleranceTime
      • toleranceCount

        protected int toleranceCount
      • resumeTime

        protected int resumeTime
      • nimbusMonitorFreqSecs

        protected int nimbusMonitorFreqSecs
      • badSupervisorsToleranceSlidingWindow

        protected org.apache.storm.shade.com.google.common.collect.EvictingQueue<Map<String,​Set<Integer>>> badSupervisorsToleranceSlidingWindow
      • sendAssignmentFailureCount

        protected org.apache.storm.shade.com.google.common.collect.EvictingQueue<Map<String,​Integer>> sendAssignmentFailureCount
      • windowSize

        protected int windowSize
      • blacklistedSupervisorIds

        protected volatile Set<String> blacklistedSupervisorIds
    • Constructor Detail

      • BlacklistScheduler

        public BlacklistScheduler​(IScheduler underlyingScheduler)
    • Method Detail

      • cleanup

        public void cleanup()
        Description copied from interface: IScheduler
        called once when the system is shutting down, should be idempotent.
        Specified by:
        cleanup in interface IScheduler
      • schedule

        public void schedule​(Topologies topologies,
                             Cluster cluster)
        Description copied from interface: IScheduler
        Set assignments for the topologies which needs scheduling. The new assignments is available through `cluster.getAssignments()`
        Specified by:
        schedule in interface IScheduler
        Parameters:
        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.
        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()`
      • config

        public Map<String,​Map<String,​Double>> config()
        Description copied from interface: IScheduler
        This function returns the scheduler's configuration.
        Specified by:
        config in interface IScheduler
        Returns:
        The scheduler's configuration.
      • getBlacklistSupervisorIds

        public Set<String> getBlacklistSupervisorIds()