Package org.apache.bookkeeper.client
Class TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble
- java.lang.Object
-
- org.apache.bookkeeper.client.TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble
-
- All Implemented Interfaces:
ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
,ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>
- Enclosing class:
- TopologyAwareEnsemblePlacementPolicy
protected static class TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble extends java.lang.Object implements ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
A predicate checking the rack coverage for write quorum inRoundRobinDistributionSchedule
, which ensures that a write quorum should be covered by at least two racks.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interface
TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.CoverageSet
protected class
TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackOrRegionDurabilityCoverageSet
protected class
TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackQuorumCoverageSet
-
Field Summary
Fields Modifier and Type Field Description (package private) int
ackQuorumSize
(package private) java.util.List<BookieNode>
chosenNodes
(package private) int
distanceFromLeaves
(package private) int
ensembleSize
(package private) int
minNumRacksPerWriteQuorum
(package private) int
minRacksOrRegionsForDurability
(package private) ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
parentEnsemble
(package private) ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>
parentPredicate
(package private) java.util.Set<java.lang.String>
racksOrRegions
(package private) int
writeQuorumSize
-
Constructor Summary
Constructors Modifier Constructor Description protected
RRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, java.util.Set<java.lang.String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum)
protected
RRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode> parentPredicate, int minNumRacksPerWriteQuorum)
protected
RRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode> parentPredicate, java.util.Set<java.lang.String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum)
protected
RRTopologyAwareCoverageEnsemble(TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble that)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addNode(BookieNode node)
Append the new bookie node to the ensemble only if the ensemble doesnt already contain the same bookie.boolean
apply(BookieNode candidate, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> ensemble)
java.util.List<BookieId>
toList()
java.lang.String
toString()
boolean
validate()
Validates if an ensemble is valid.
-
-
-
Field Detail
-
distanceFromLeaves
final int distanceFromLeaves
-
ensembleSize
final int ensembleSize
-
writeQuorumSize
final int writeQuorumSize
-
ackQuorumSize
final int ackQuorumSize
-
minRacksOrRegionsForDurability
final int minRacksOrRegionsForDurability
-
minNumRacksPerWriteQuorum
final int minNumRacksPerWriteQuorum
-
chosenNodes
final java.util.List<BookieNode> chosenNodes
-
racksOrRegions
final java.util.Set<java.lang.String> racksOrRegions
-
parentPredicate
final ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode> parentPredicate
-
parentEnsemble
final ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> parentEnsemble
-
-
Constructor Detail
-
RRTopologyAwareCoverageEnsemble
protected RRTopologyAwareCoverageEnsemble(TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble that)
-
RRTopologyAwareCoverageEnsemble
protected RRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, java.util.Set<java.lang.String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum)
-
RRTopologyAwareCoverageEnsemble
protected RRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode> parentPredicate, int minNumRacksPerWriteQuorum)
-
RRTopologyAwareCoverageEnsemble
protected RRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode> parentPredicate, java.util.Set<java.lang.String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum)
-
-
Method Detail
-
apply
public boolean apply(BookieNode candidate, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> ensemble)
- Specified by:
apply
in interfaceITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>
-
addNode
public boolean addNode(BookieNode node)
Description copied from interface:ITopologyAwareEnsemblePlacementPolicy.Ensemble
Append the new bookie node to the ensemble only if the ensemble doesnt already contain the same bookie.- Specified by:
addNode
in interfaceITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
- Parameters:
node
- new candidate bookie node.- Returns:
- true if the node was added
-
toList
public java.util.List<BookieId> toList()
- Specified by:
toList
in interfaceITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
- Returns:
- list of addresses representing the ensemble
-
validate
public boolean validate()
Validates if an ensemble is valid.- Specified by:
validate
in interfaceITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
- Returns:
- true if the ensemble is valid; false otherwise
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-