Class IsolatedBookieEnsemblePlacementPolicy
- java.lang.Object
-
- org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl
-
- org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy
-
- org.apache.pulsar.bookie.rackawareness.IsolatedBookieEnsemblePlacementPolicy
-
- All Implemented Interfaces:
org.apache.bookkeeper.client.EnsemblePlacementPolicy,org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy<org.apache.bookkeeper.net.BookieNode>
- Direct Known Subclasses:
ZkIsolatedBookieEnsemblePlacementPolicy
public class IsolatedBookieEnsemblePlacementPolicy extends org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.bookkeeper.client.EnsemblePlacementPolicy
org.apache.bookkeeper.client.EnsemblePlacementPolicy.PlacementPolicyAdherence, org.apache.bookkeeper.client.EnsemblePlacementPolicy.PlacementResult<T extends java.lang.Object>
-
Nested classes/interfaces inherited from interface org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy
org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble<T extends org.apache.bookkeeper.net.Node>, org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate<T extends org.apache.bookkeeper.net.Node>
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.bookkeeper.proto.BookieAddressResolverbookieAddressResolverprotected java.util.Map<org.apache.bookkeeper.net.BookieNode,org.apache.bookkeeper.client.WeightedRandomSelection.WeightedObject>bookieInfoMapprotected org.apache.bookkeeper.stats.OpStatsLoggerbookiesJoinedCounterprotected org.apache.bookkeeper.stats.OpStatsLoggerbookiesLeftCounterprotected org.apache.bookkeeper.net.DNSToSwitchMappingdnsResolverprotected java.util.Map<org.apache.bookkeeper.net.BookieId,org.apache.bookkeeper.net.BookieNode>historyBookiesstatic java.lang.StringISOLATION_BOOKIE_GROUPSprotected java.util.Map<org.apache.bookkeeper.net.BookieId,org.apache.bookkeeper.net.BookieNode>knownBookiesprotected com.google.common.collect.ImmutableSet<org.apache.bookkeeper.net.BookieId>readOnlyBookiesprotected java.util.concurrent.locks.ReentrantReadWriteLockrwLockstatic java.lang.StringSECONDARY_ISOLATION_BOOKIE_GROUPSprotected org.apache.bookkeeper.net.NetworkTopologytopologyprotected org.apache.bookkeeper.client.WeightedRandomSelection<org.apache.bookkeeper.net.BookieNode>weightedSelection-
Fields inherited from class org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl
enforceDurability, enforceMinNumRacksPerWriteQuorum, failedToResolveNetworkLocationCounter, ignoreLocalNodeInPlacementPolicy, localNode, minNumRacksPerWriteQuorum, numWritableBookiesInDefaultRack, readReorderedCounter, reorderReadsRandom, reorderThresholdPendingRequests, REPP_DNS_RESOLVER_CLASS, REPP_RANDOM_READ_REORDERING, slowBookies, stabilizePeriodSeconds, statsLogger, timer
-
-
Constructor Summary
Constructors Constructor Description IsolatedBookieEnsemblePlacementPolicy()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Set<org.apache.bookkeeper.net.Node>convertBookiesToNodes(java.util.Collection<org.apache.bookkeeper.net.BookieId> arg0)protected org.apache.bookkeeper.net.BookieNodeconvertBookieToNode(org.apache.bookkeeper.net.BookieId arg0)protected org.apache.bookkeeper.net.BookieNodecreateBookieNode(org.apache.bookkeeper.net.BookieId arg0)protected org.apache.bookkeeper.net.BookieNodecreateDummyLocalBookieNode(java.lang.String arg0)static intdifferBetweenBookies(java.util.List<org.apache.bookkeeper.net.BookieId> arg0, java.util.List<org.apache.bookkeeper.net.BookieId> arg1)org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImplinitialize(org.apache.bookkeeper.conf.ClientConfiguration conf, java.util.Optional<org.apache.bookkeeper.net.DNSToSwitchMapping> optionalDnsResolver, io.netty.util.HashedWheelTimer timer, org.apache.bookkeeper.feature.FeatureProvider featureProvider, org.apache.bookkeeper.stats.StatsLogger statsLogger, org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver)org.apache.bookkeeper.client.EnsemblePlacementPolicy.PlacementResult<java.util.List<org.apache.bookkeeper.net.BookieId>>newEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, java.util.Map<java.lang.String,byte[]> customMetadata, java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies)voidonBookieRackChange(java.util.List<org.apache.bookkeeper.net.BookieId> arg0)org.apache.bookkeeper.client.EnsemblePlacementPolicy.PlacementResult<org.apache.bookkeeper.net.BookieId>replaceBookie(int ensembleSize, int writeQuorumSize, int ackQuorumSize, java.util.Map<java.lang.String,byte[]> customMetadata, java.util.List<org.apache.bookkeeper.net.BookieId> currentEnsemble, org.apache.bookkeeper.net.BookieId bookieToReplace, java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies)protected java.lang.StringresolveNetworkLocation(org.apache.bookkeeper.net.BookieId arg0)voidupdateBookieInfo(java.util.Map<org.apache.bookkeeper.net.BookieId,org.apache.bookkeeper.client.BookieInfoReader.BookieInfo> arg0)-
Methods inherited from class org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy
handleBookiesThatJoined, handleBookiesThatLeft, initialize, newEnsemble, onClusterChanged, reorderReadLACSequence, reorderReadSequence, replaceToAdherePlacementPolicy, selectFromNetworkLocation, selectFromNetworkLocation, selectFromNetworkLocation, uninitalize
-
Methods inherited from class org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl
addDefaultRackBookiesIfMinNumRacksIsEnforced, areAckedBookiesAdheringToPlacementPolicy, getDefaultRack, isEnsembleAdheringToPlacementPolicy, newEnsembleInternal, registerSlowBookie, selectRandom, selectRandomFromRack, selectRandomInternal, withDefaultRack
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Field Detail
-
ISOLATION_BOOKIE_GROUPS
public static final java.lang.String ISOLATION_BOOKIE_GROUPS
- See Also:
- Constant Field Values
-
SECONDARY_ISOLATION_BOOKIE_GROUPS
public static final java.lang.String SECONDARY_ISOLATION_BOOKIE_GROUPS
- See Also:
- Constant Field Values
-
knownBookies
protected final java.util.Map<org.apache.bookkeeper.net.BookieId,org.apache.bookkeeper.net.BookieNode> knownBookies
-
historyBookies
protected final java.util.Map<org.apache.bookkeeper.net.BookieId,org.apache.bookkeeper.net.BookieNode> historyBookies
-
rwLock
protected final java.util.concurrent.locks.ReentrantReadWriteLock rwLock
-
bookieInfoMap
protected java.util.Map<org.apache.bookkeeper.net.BookieNode,org.apache.bookkeeper.client.WeightedRandomSelection.WeightedObject> bookieInfoMap
-
readOnlyBookies
protected com.google.common.collect.ImmutableSet<org.apache.bookkeeper.net.BookieId> readOnlyBookies
-
weightedSelection
protected org.apache.bookkeeper.client.WeightedRandomSelection<org.apache.bookkeeper.net.BookieNode> weightedSelection
-
topology
protected org.apache.bookkeeper.net.NetworkTopology topology
-
dnsResolver
protected org.apache.bookkeeper.net.DNSToSwitchMapping dnsResolver
-
bookieAddressResolver
protected org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver
-
bookiesJoinedCounter
@StatsDoc(name="BOOKIES_JOINED", help="The distribution of number of bookies joined the cluster on each network topology change") protected org.apache.bookkeeper.stats.OpStatsLogger bookiesJoinedCounter
-
bookiesLeftCounter
@StatsDoc(name="BOOKIES_LEFT", help="The distribution of number of bookies left the cluster on each network topology change") protected org.apache.bookkeeper.stats.OpStatsLogger bookiesLeftCounter
-
-
Method Detail
-
initialize
public org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl initialize(org.apache.bookkeeper.conf.ClientConfiguration conf, java.util.Optional<org.apache.bookkeeper.net.DNSToSwitchMapping> optionalDnsResolver, io.netty.util.HashedWheelTimer timer, org.apache.bookkeeper.feature.FeatureProvider featureProvider, org.apache.bookkeeper.stats.StatsLogger statsLogger, org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver)- Specified by:
initializein interfaceorg.apache.bookkeeper.client.EnsemblePlacementPolicy- Overrides:
initializein classorg.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl
-
newEnsemble
public org.apache.bookkeeper.client.EnsemblePlacementPolicy.PlacementResult<java.util.List<org.apache.bookkeeper.net.BookieId>> newEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, java.util.Map<java.lang.String,byte[]> customMetadata, java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies) throws org.apache.bookkeeper.client.BKException.BKNotEnoughBookiesException- Specified by:
newEnsemblein interfaceorg.apache.bookkeeper.client.EnsemblePlacementPolicy- Overrides:
newEnsemblein classorg.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy- Throws:
org.apache.bookkeeper.client.BKException.BKNotEnoughBookiesException
-
replaceBookie
public org.apache.bookkeeper.client.EnsemblePlacementPolicy.PlacementResult<org.apache.bookkeeper.net.BookieId> replaceBookie(int ensembleSize, int writeQuorumSize, int ackQuorumSize, java.util.Map<java.lang.String,byte[]> customMetadata, java.util.List<org.apache.bookkeeper.net.BookieId> currentEnsemble, org.apache.bookkeeper.net.BookieId bookieToReplace, java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies) throws org.apache.bookkeeper.client.BKException.BKNotEnoughBookiesException- Specified by:
replaceBookiein interfaceorg.apache.bookkeeper.client.EnsemblePlacementPolicy- Overrides:
replaceBookiein classorg.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy- Throws:
org.apache.bookkeeper.client.BKException.BKNotEnoughBookiesException
-
onBookieRackChange
public void onBookieRackChange(java.util.List<org.apache.bookkeeper.net.BookieId> arg0)
- Specified by:
onBookieRackChangein interfaceorg.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy<org.apache.bookkeeper.net.BookieNode>
-
differBetweenBookies
public static int differBetweenBookies(java.util.List<org.apache.bookkeeper.net.BookieId> arg0, java.util.List<org.apache.bookkeeper.net.BookieId> arg1)
-
updateBookieInfo
public void updateBookieInfo(java.util.Map<org.apache.bookkeeper.net.BookieId,org.apache.bookkeeper.client.BookieInfoReader.BookieInfo> arg0)
- Specified by:
updateBookieInfoin interfaceorg.apache.bookkeeper.client.EnsemblePlacementPolicy
-
createBookieNode
protected org.apache.bookkeeper.net.BookieNode createBookieNode(org.apache.bookkeeper.net.BookieId arg0)
-
createDummyLocalBookieNode
protected org.apache.bookkeeper.net.BookieNode createDummyLocalBookieNode(java.lang.String arg0)
-
resolveNetworkLocation
protected java.lang.String resolveNetworkLocation(org.apache.bookkeeper.net.BookieId arg0)
-
convertBookiesToNodes
protected java.util.Set<org.apache.bookkeeper.net.Node> convertBookiesToNodes(java.util.Collection<org.apache.bookkeeper.net.BookieId> arg0)
-
convertBookieToNode
protected org.apache.bookkeeper.net.BookieNode convertBookieToNode(org.apache.bookkeeper.net.BookieId arg0)
-
-