Interface ITopologyAwareEnsemblePlacementPolicy<T extends org.apache.bookkeeper.net.Node>

    • Method Detail

      • selectFromNetworkLocation

        T selectFromNetworkLocation​(java.lang.String networkLoc,
                                    java.util.Set<java.lang.String> excludeRacks,
                                    java.util.Set<org.apache.bookkeeper.net.Node> excludeBookies,
                                    ITopologyAwareEnsemblePlacementPolicy.Predicate<org.apache.bookkeeper.net.BookieNode> predicate,
                                    ITopologyAwareEnsemblePlacementPolicy.Ensemble<org.apache.bookkeeper.net.BookieNode> ensemble,
                                    boolean fallbackToRandom)
                             throws BKException.BKNotEnoughBookiesException
        Select a node from networkLoc rack excluding excludeBookies. If there isn't any node in 'networkLoc', then it will try to get a node from cluster excluding excludeRacks and excludeBookies. If fallbackToRandom is set to true then it will get a random bookie from cluster excluding excludeBookies if it couldn't find a bookie
        Parameters:
        networkLoc -
        excludeRacks -
        excludeBookies -
        predicate -
        ensemble -
        fallbackToRandom -
        Returns:
        Throws:
        BKException.BKNotEnoughBookiesException
      • handleBookiesThatLeft

        void handleBookiesThatLeft​(java.util.Set<org.apache.bookkeeper.net.BookieId> leftBookies)
        Handle bookies that left.
        Parameters:
        leftBookies - bookies that left
      • handleBookiesThatJoined

        void handleBookiesThatJoined​(java.util.Set<org.apache.bookkeeper.net.BookieId> joinedBookies)
        Handle bookies that joined.
        Parameters:
        joinedBookies - bookies that joined.
      • onBookieRackChange

        void onBookieRackChange​(java.util.List<org.apache.bookkeeper.net.BookieId> bookieAddressList)
        Handle rack change for the bookies.
        Parameters:
        bookieAddressList -