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 Object
implements ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>
A predicate checking the rack coverage for write quorum in
RoundRobinDistributionSchedule,
which ensures that a write quorum should be covered by at least two racks.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static interfaceprotected classprotected class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final int(package private) final List<BookieNode>(package private) final int(package private) final int(package private) final int(package private) final int(package private) final ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode>(package private) final ITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>(package private) final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedRRTopologyAwareCoverageEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, int distanceFromLeaves, Set<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, Set<String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum) protectedRRTopologyAwareCoverageEnsemble(TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble that) -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddNode(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) toList()toString()booleanvalidate()Validates if an ensemble is valid.
-
Field Details
-
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
-
racksOrRegions
-
parentPredicate
-
parentEnsemble
-
-
Constructor Details
-
RRTopologyAwareCoverageEnsemble
protected RRTopologyAwareCoverageEnsemble(TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble that) -
RRTopologyAwareCoverageEnsemble
-
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, Set<String> racksOrRegions, int minRacksOrRegionsForDurability, int minNumRacksPerWriteQuorum)
-
-
Method Details
-
apply
public boolean apply(BookieNode candidate, ITopologyAwareEnsemblePlacementPolicy.Ensemble<BookieNode> ensemble) - Specified by:
applyin interfaceITopologyAwareEnsemblePlacementPolicy.Predicate<BookieNode>
-
addNode
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
- 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
-