Class DefaultBlacklistStrategy

java.lang.Object
org.apache.storm.scheduler.blacklist.strategies.DefaultBlacklistStrategy
All Implemented Interfaces:
IBlacklistStrategy
Direct Known Subclasses:
RasBlacklistStrategy

public class DefaultBlacklistStrategy extends Object implements IBlacklistStrategy
The default strategy used for blacklisting hosts.
  • Field Details

    • DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME

      public static final int DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME
      See Also:
    • DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT

      public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
      See Also:
  • Constructor Details

    • DefaultBlacklistStrategy

      public DefaultBlacklistStrategy()
  • Method Details

    • prepare

      public void prepare(Map<String,Object> conf)
      Specified by:
      prepare in interface IBlacklistStrategy
    • 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.
    • createHostToSupervisorMap

      protected Map<String,Set<String>> createHostToSupervisorMap(List<String> blacklistedNodeIds, Cluster cluster)