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 interfaceTopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.CoverageSetprotected classTopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackOrRegionDurabilityCoverageSetprotected classTopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.RackQuorumCoverageSet
-
Field Summary
Fields Modifier and Type Field Description (package private) intackQuorumSize(package private) java.util.List<BookieNode>chosenNodes(package private) intdistanceFromLeaves(package private) intensembleSize(package private) intminNumRacksPerWriteQuorum(package private) intminRacksOrRegionsForDurability(package private) ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>parentEnsemble(package private) ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>parentPredicate(package private) java.util.Set<java.lang.String>racksOrRegions(package private) intwriteQuorumSize
-
Constructor Summary
Constructors Modifier Constructor Description protectedRRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, java.util.Set<java.lang.String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum)protectedRRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode> parentPredicate, int minNumRacksPerWriteQuorum)protectedRRTopologyAwareCoverageEnsemble(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)protectedRRTopologyAwareCoverageEnsemble(TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble that)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddNode(BookieNode node)Append the new bookie node to the ensemble only if the ensemble doesnt already contain the same bookie.booleanapply(BookieNode candidate, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> ensemble)java.util.List<BookieId>toList()java.lang.StringtoString()booleanvalidate()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:
applyin interfaceITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>
-
addNode
public boolean addNode(BookieNode node)
Description copied from interface:ITopologyAwareEnsemblePlacementPolicy.EnsembleAppend the new bookie node to the ensemble only if the ensemble doesnt already contain the same bookie.- Specified by:
addNodein 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:
toListin interfaceITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>- Returns:
- list of addresses representing the ensemble
-
validate
public boolean validate()
Validates if an ensemble is valid.- Specified by:
validatein interfaceITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>- Returns:
- true if the ensemble is valid; false otherwise
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-