Interface NamespaceIsolationPolicy

All Known Implementing Classes:
NamespaceIsolationPolicyImpl

public interface NamespaceIsolationPolicy
Namespace isolation policy.
  • Method Details

    • getPrimaryBrokers

      List<String> getPrimaryBrokers()
      Get the list of regex for the set of primary brokers.
      Returns:
    • getSecondaryBrokers

      List<String> getSecondaryBrokers()
      Get the list of regex for the set of secondary brokers.
      Returns:
    • findPrimaryBrokers

      List<URL> findPrimaryBrokers(List<URL> availableBrokers, NamespaceName namespace)
      Get the list of primary brokers for the namespace according to the policy.
      Parameters:
      availableBrokers - brokers identified by service URL.
      namespace - the namespace
      Returns:
      a list brokers by service URL.
    • findSecondaryBrokers

      List<URL> findSecondaryBrokers(List<URL> availableBrokers, NamespaceName namespace)
      Get the list of secondary brokers for the namespace according to the policy.
      Parameters:
      availableBrokers - brokers identified by service URL.
      namespace - the namespace
      Returns:
      a list brokers by service URL.
    • shouldFailover

      boolean shouldFailover(SortedSet<BrokerStatus> primaryCandidates)
      Check to see whether the primary brokers can still handle a new namespace or has to failover.
      Parameters:
      primaryCandidates -
      Returns:
    • shouldFailover

      boolean shouldFailover(int totalPrimaryCandidates)
      Check to see whether the primary brokers can still handle a new namespace or has to failover.
      Parameters:
      totalPrimaryCandidates -
      Returns:
    • shouldFallback

      boolean shouldFallback(SortedSet<BrokerStatus> primaryBrokers)
      Check to see whether the namespace ownership should fallback to the primary brokers.
      Parameters:
      primaryBrokers -
      Returns:
    • isPrimaryBroker

      boolean isPrimaryBroker(String brokerAddress)
      Check to see whether the specific host is a primary broker.
      Parameters:
      brokerAddress -
      Returns:
    • isSecondaryBroker

      boolean isSecondaryBroker(String brokerAddress)
      Check to see whether the specific host is a secondary broker.
      Parameters:
      brokerAddress -
      Returns:
    • getAvailablePrimaryBrokers

      SortedSet<BrokerStatus> getAvailablePrimaryBrokers(SortedSet<BrokerStatus> primaryCandidates)
      According to the namespace isolation policy, find the allowed available primary brokers.
      Parameters:
      primaryCandidates -
      Returns:
    • isPrimaryBrokerAvailable

      boolean isPrimaryBrokerAvailable(BrokerStatus brkStatus)