@StatsDoc(name="bookkeeper_client",
help="BookKeeper client stats")
public class RackawareEnsemblePlacementPolicyImpl
extends TopologyAwareEnsemblePlacementPolicy
Make most of the class and methods as protected, so it could be extended to implement other algorithms.
TopologyAwareEnsemblePlacementPolicy.DefaultResolver, TopologyAwareEnsemblePlacementPolicy.DNSResolverDecorator, TopologyAwareEnsemblePlacementPolicy.EnsembleForReplacementWithNoConstraints, TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble, TopologyAwareEnsemblePlacementPolicy.TruePredicateITopologyAwareEnsemblePlacementPolicy.Ensemble<T extends org.apache.bookkeeper.net.Node>, ITopologyAwareEnsemblePlacementPolicy.Predicate<T extends org.apache.bookkeeper.net.Node>EnsemblePlacementPolicy.PlacementPolicyAdherence, EnsemblePlacementPolicy.PlacementResult<T>| Modifier and Type | Field and Description |
|---|---|
protected boolean |
enforceDurability |
protected boolean |
enforceMinNumRacksPerWriteQuorum |
protected org.apache.bookkeeper.stats.Counter |
failedToResolveNetworkLocationCounter |
protected boolean |
ignoreLocalNodeInPlacementPolicy |
(package private) static int |
LOCAL_FAIL_MASK |
(package private) static int |
LOCAL_MASK |
protected org.apache.bookkeeper.net.BookieNode |
localNode |
(package private) static org.slf4j.Logger |
LOG |
(package private) static int |
MASK_BITS |
(package private) int |
maxWeightMultiple |
protected int |
minNumRacksPerWriteQuorum |
protected org.apache.bookkeeper.stats.Gauge<java.lang.Integer> |
numWritableBookiesInDefaultRack |
(package private) static int |
RACKNAME_DISTANCE_FROM_LEAVES |
(package private) static int |
READ_ONLY_MASK |
protected org.apache.bookkeeper.stats.OpStatsLogger |
readReorderedCounter |
(package private) static int |
REMOTE_FAIL_MASK |
(package private) static int |
REMOTE_MASK |
protected boolean |
reorderReadsRandom |
protected int |
reorderThresholdPendingRequests |
static java.lang.String |
REPP_RANDOM_READ_REORDERING |
(package private) static int |
SLOW_MASK |
protected com.google.common.cache.Cache<org.apache.bookkeeper.net.BookieId,java.lang.Long> |
slowBookies |
protected int |
stabilizePeriodSeconds |
protected org.apache.bookkeeper.stats.StatsLogger |
statsLogger |
protected io.netty.util.HashedWheelTimer |
timer |
(package private) static int |
UNAVAIL_MASK |
bookieAddressResolver, bookieInfoMap, bookiesJoinedCounter, bookiesLeftCounter, dnsResolver, historyBookies, isWeighted, knownBookies, readOnlyBookies, REPP_DNS_RESOLVER_CLASS, rwLock, topology, weightedSelection| Constructor and Description |
|---|
RackawareEnsemblePlacementPolicyImpl() |
RackawareEnsemblePlacementPolicyImpl(boolean enforceDurability) |
| Modifier and Type | Method and Description |
|---|---|
protected java.util.Set<org.apache.bookkeeper.net.BookieId> |
addDefaultRackBookiesIfMinNumRacksIsEnforced(java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies) |
boolean |
areAckedBookiesAdheringToPlacementPolicy(java.util.Set<org.apache.bookkeeper.net.BookieId> ackedBookies,
int writeQuorumSize,
int ackQuorumSize)
Returns true if the bookies that have acknowledged a write adhere to the minimum fault domains as defined in the
placement policy in use.
|
java.lang.String |
getDefaultRack() |
RackawareEnsemblePlacementPolicyImpl |
initialize(ClientConfiguration conf,
java.util.Optional<org.apache.bookkeeper.net.DNSToSwitchMapping> optionalDnsResolver,
io.netty.util.HashedWheelTimer timer,
FeatureProvider featureProvider,
org.apache.bookkeeper.stats.StatsLogger statsLogger,
org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver)
Initialize the policy.
|
protected RackawareEnsemblePlacementPolicyImpl |
initialize(org.apache.bookkeeper.net.DNSToSwitchMapping dnsResolver,
io.netty.util.HashedWheelTimer timer,
boolean reorderReadsRandom,
int stabilizePeriodSeconds,
int reorderThresholdPendingRequests,
boolean isWeighted,
int maxWeightMultiple,
int minNumRacksPerWriteQuorum,
boolean enforceMinNumRacksPerWriteQuorum,
boolean ignoreLocalNodeInPlacementPolicy,
org.apache.bookkeeper.stats.StatsLogger statsLogger,
org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver)
Initialize the policy.
|
EnsemblePlacementPolicy.PlacementPolicyAdherence |
isEnsembleAdheringToPlacementPolicy(java.util.List<org.apache.bookkeeper.net.BookieId> ensembleList,
int writeQuorumSize,
int ackQuorumSize)
returns AdherenceLevel if the Ensemble is strictly/softly/fails adhering
to placement policy, like in the case of
RackawareEnsemblePlacementPolicy, bookies in the writeset are from
'minNumRacksPerWriteQuorum' number of racks.
|
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)
Choose numBookies bookies for ensemble.
|
EnsemblePlacementPolicy.PlacementResult<java.util.List<org.apache.bookkeeper.net.BookieId>> |
newEnsemble(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies,
ITopologyAwareEnsemblePlacementPolicy.Ensemble<org.apache.bookkeeper.net.BookieNode> parentEnsemble,
ITopologyAwareEnsemblePlacementPolicy.Predicate<org.apache.bookkeeper.net.BookieNode> parentPredicate)
Create an ensemble with parent ensemble.
|
protected EnsemblePlacementPolicy.PlacementResult<java.util.List<org.apache.bookkeeper.net.BookieId>> |
newEnsembleInternal(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies,
ITopologyAwareEnsemblePlacementPolicy.Ensemble<org.apache.bookkeeper.net.BookieNode> parentEnsemble,
ITopologyAwareEnsemblePlacementPolicy.Predicate<org.apache.bookkeeper.net.BookieNode> parentPredicate) |
void |
registerSlowBookie(org.apache.bookkeeper.net.BookieId bookieSocketAddress,
long entryId)
Register a bookie as slow so that it is tried after available and read-only bookies.
|
DistributionSchedule.WriteSet |
reorderReadSequence(java.util.List<org.apache.bookkeeper.net.BookieId> ensemble,
BookiesHealthInfo bookiesHealthInfo,
DistributionSchedule.WriteSet writeSet)
Reorder the read sequence of a given write quorum writeSet.
|
(package private) DistributionSchedule.WriteSet |
reorderReadSequenceWithRegion(java.util.List<org.apache.bookkeeper.net.BookieId> ensemble,
DistributionSchedule.WriteSet writeSet,
java.util.Map<java.lang.Integer,java.lang.String> writeSetWithRegion,
BookiesHealthInfo bookiesHealthInfo,
boolean regionAware,
java.lang.String myRegion,
int remoteNodeInReorderSequence)
This function orders the read sequence with a given region.
|
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)
Choose a new bookie to replace bookieToReplace.
|
org.apache.bookkeeper.net.BookieNode |
selectFromNetworkLocation(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)
It randomly selects a
BookieNode that is not on the excludeRacks set, excluding the nodes in
excludeBookies set. |
org.apache.bookkeeper.net.BookieNode |
selectFromNetworkLocation(java.lang.String networkLoc,
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)
Select a node from a given network location.
|
org.apache.bookkeeper.net.BookieNode |
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)
Select a node from networkLoc rack excluding excludeBookies.
|
protected java.util.List<org.apache.bookkeeper.net.BookieNode> |
selectRandom(int numBookies,
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)
Choose a random node from whole cluster.
|
protected org.apache.bookkeeper.net.BookieNode |
selectRandomFromRack(java.lang.String netPath,
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)
Choose random node under a given network path.
|
protected java.util.List<org.apache.bookkeeper.net.BookieNode> |
selectRandomInternal(java.util.List<org.apache.bookkeeper.net.BookieNode> bookiesToSelectFrom,
int numBookies,
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) |
void |
uninitalize()
Uninitialize the policy.
|
RackawareEnsemblePlacementPolicyImpl |
withDefaultRack(java.lang.String rack) |
convertBookiesToNodes, createBookieNode, createDummyLocalBookieNode, getNetworkLocations, handleBookiesThatJoined, handleBookiesThatLeft, onBookieRackChange, onClusterChanged, reorderReadLACSequence, resolveNetworkLocation, shuffleWithMask, updateBookieInfoclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetStickyReadBookieIndexstatic final org.slf4j.Logger LOG
int maxWeightMultiple
protected int minNumRacksPerWriteQuorum
protected boolean enforceMinNumRacksPerWriteQuorum
protected boolean ignoreLocalNodeInPlacementPolicy
public static final java.lang.String REPP_RANDOM_READ_REORDERING
static final int RACKNAME_DISTANCE_FROM_LEAVES
static final int LOCAL_MASK
static final int LOCAL_FAIL_MASK
static final int REMOTE_MASK
static final int REMOTE_FAIL_MASK
static final int READ_ONLY_MASK
static final int SLOW_MASK
static final int UNAVAIL_MASK
static final int MASK_BITS
protected io.netty.util.HashedWheelTimer timer
protected com.google.common.cache.Cache<org.apache.bookkeeper.net.BookieId,java.lang.Long> slowBookies
protected org.apache.bookkeeper.net.BookieNode localNode
protected boolean reorderReadsRandom
protected boolean enforceDurability
protected int stabilizePeriodSeconds
protected int reorderThresholdPendingRequests
protected org.apache.bookkeeper.stats.StatsLogger statsLogger
@StatsDoc(name="READ_REQUESTS_REORDERED",
help="The distribution of number of bookies reordered on each read request")
protected org.apache.bookkeeper.stats.OpStatsLogger readReorderedCounter
@StatsDoc(name="FAILED_TO_RESOLVE_NETWORK_LOCATION_COUNTER",
help="Counter for number of times DNSResolverDecorator failed to resolve Network Location")
protected org.apache.bookkeeper.stats.Counter failedToResolveNetworkLocationCounter
@StatsDoc(name="NUM_WRITABLE_BOOKIES_IN_DEFAULT_RACK",
help="Gauge for the number of writable Bookies in default rack")
protected org.apache.bookkeeper.stats.Gauge<java.lang.Integer> numWritableBookiesInDefaultRack
RackawareEnsemblePlacementPolicyImpl()
RackawareEnsemblePlacementPolicyImpl(boolean enforceDurability)
protected RackawareEnsemblePlacementPolicyImpl initialize(org.apache.bookkeeper.net.DNSToSwitchMapping dnsResolver, io.netty.util.HashedWheelTimer timer, boolean reorderReadsRandom, int stabilizePeriodSeconds, int reorderThresholdPendingRequests, boolean isWeighted, int maxWeightMultiple, int minNumRacksPerWriteQuorum, boolean enforceMinNumRacksPerWriteQuorum, boolean ignoreLocalNodeInPlacementPolicy, org.apache.bookkeeper.stats.StatsLogger statsLogger, org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver)
dnsResolver - the object used to resolve addresses to their network addresspublic RackawareEnsemblePlacementPolicyImpl withDefaultRack(java.lang.String rack)
public java.lang.String getDefaultRack()
public RackawareEnsemblePlacementPolicyImpl initialize(ClientConfiguration conf, java.util.Optional<org.apache.bookkeeper.net.DNSToSwitchMapping> optionalDnsResolver, io.netty.util.HashedWheelTimer timer, FeatureProvider featureProvider, org.apache.bookkeeper.stats.StatsLogger statsLogger, org.apache.bookkeeper.proto.BookieAddressResolver bookieAddressResolver)
EnsemblePlacementPolicyconf - client configurationoptionalDnsResolver - dns resolvertimer - timerfeatureProvider - feature providerstatsLogger - stats loggerpublic void uninitalize()
EnsemblePlacementPolicyprotected java.util.Set<org.apache.bookkeeper.net.BookieId> addDefaultRackBookiesIfMinNumRacksIsEnforced(java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies)
public 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 BKException.BKNotEnoughBookiesException
EnsemblePlacementPolicyBKException.BKNotEnoughBookiesException is thrown.
The implementation should respect to the replace settings. The size of the returned bookie list
should be equal to the provide ensembleSize.
customMetadata is the same user defined data that user provides
when BookKeeper.createLedger(int, int, int, BookKeeper.DigestType, byte[], Map).
If 'enforceMinNumRacksPerWriteQuorum' config is enabled then the bookies belonging to default faultzone (rack) will be excluded while selecting bookies.
ensembleSize - Ensemble SizewriteQuorumSize - Write Quorum SizeackQuorumSize - the value of ackQuorumSize (added since 4.5)customMetadata - the value of customMetadata. it is the same user defined metadata that user
provides in BookKeeper.createLedger(int, int, int, BookKeeper.DigestType, byte[])excludeBookies - Bookies that should not be considered as targets.BKException.BKNotEnoughBookiesException - if not enough bookies available.public EnsemblePlacementPolicy.PlacementResult<java.util.List<org.apache.bookkeeper.net.BookieId>> newEnsemble(int ensembleSize, int writeQuorumSize, int ackQuorumSize, java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies, ITopologyAwareEnsemblePlacementPolicy.Ensemble<org.apache.bookkeeper.net.BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<org.apache.bookkeeper.net.BookieNode> parentPredicate) throws BKException.BKNotEnoughBookiesException
ITopologyAwareEnsemblePlacementPolicyensembleSize - ensemble sizewriteQuorumSize - write quorum sizeackQuorumSize - ack quorum sizeexcludeBookies - exclude bookiesparentEnsemble - parent ensembleBKException.BKNotEnoughBookiesExceptionprotected EnsemblePlacementPolicy.PlacementResult<java.util.List<org.apache.bookkeeper.net.BookieId>> newEnsembleInternal(int ensembleSize, int writeQuorumSize, int ackQuorumSize, java.util.Set<org.apache.bookkeeper.net.BookieId> excludeBookies, ITopologyAwareEnsemblePlacementPolicy.Ensemble<org.apache.bookkeeper.net.BookieNode> parentEnsemble, ITopologyAwareEnsemblePlacementPolicy.Predicate<org.apache.bookkeeper.net.BookieNode> parentPredicate) throws BKException.BKNotEnoughBookiesException
public 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 BKException.BKNotEnoughBookiesException
EnsemblePlacementPolicyBKException.BKNotEnoughBookiesException is thrown.
If 'enforceMinNumRacksPerWriteQuorum' config is enabled then the bookies belonging to default faultzone (rack) will be excluded while selecting bookies.
ensembleSize - the value of ensembleSizewriteQuorumSize - the value of writeQuorumSizeackQuorumSize - the value of ackQuorumSize (added since 4.5)customMetadata - the value of customMetadata. it is the same user defined metadata that user
provides in BookKeeper.createLedger(int, int, int, BookKeeper.DigestType, byte[])currentEnsemble - the value of currentEnsemblebookieToReplace - bookie to replaceexcludeBookies - bookies that should not be considered as candidate.BKException.BKNotEnoughBookiesExceptionpublic org.apache.bookkeeper.net.BookieNode selectFromNetworkLocation(java.lang.String networkLoc,
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
ITopologyAwareEnsemblePlacementPolicynetworkLoc - network locationexcludeBookies - exclude bookies setpredicate - predicate to applyensemble - ensemblefallbackToRandom - fallbackToRandomBKException.BKNotEnoughBookiesExceptionpublic org.apache.bookkeeper.net.BookieNode 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
ITopologyAwareEnsemblePlacementPolicyBKException.BKNotEnoughBookiesExceptionpublic org.apache.bookkeeper.net.BookieNode selectFromNetworkLocation(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
BookieNode that is not on the excludeRacks set, excluding the nodes in
excludeBookies set. If it fails to find one, it selects a random BookieNode from the whole
cluster.BKException.BKNotEnoughBookiesExceptionprotected org.apache.bookkeeper.net.BookieNode selectRandomFromRack(java.lang.String netPath,
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)
throws BKException.BKNotEnoughBookiesException
netPath - network pathexcludeBookies - exclude bookiespredicate - predicate to check whether the target is a good target.ensemble - ensemble structureBKException.BKNotEnoughBookiesExceptionprotected java.util.List<org.apache.bookkeeper.net.BookieNode> selectRandom(int numBookies,
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)
throws BKException.BKNotEnoughBookiesException
numBookies - number bookies to chooseexcludeBookies - bookies set to exclude.ensemble - ensemble to hold the bookie chosen.BKException.BKNotEnoughBookiesExceptionprotected java.util.List<org.apache.bookkeeper.net.BookieNode> selectRandomInternal(java.util.List<org.apache.bookkeeper.net.BookieNode> bookiesToSelectFrom,
int numBookies,
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)
throws BKException.BKNotEnoughBookiesException
public void registerSlowBookie(org.apache.bookkeeper.net.BookieId bookieSocketAddress,
long entryId)
EnsemblePlacementPolicybookieSocketAddress - Address of bookie hostentryId - Entry ID that caused a speculative timeout on the bookie.public DistributionSchedule.WriteSet reorderReadSequence(java.util.List<org.apache.bookkeeper.net.BookieId> ensemble, BookiesHealthInfo bookiesHealthInfo, DistributionSchedule.WriteSet writeSet)
EnsemblePlacementPolicyreorderReadSequence in interface EnsemblePlacementPolicyreorderReadSequence in class TopologyAwareEnsemblePlacementPolicyensemble - Ensemble to read entries.bookiesHealthInfo - Health info for bookieswriteSet - Write quorum to read entries. This will be modified, rather than
allocating a new WriteSet.DistributionSchedule.WriteSet reorderReadSequenceWithRegion(java.util.List<org.apache.bookkeeper.net.BookieId> ensemble, DistributionSchedule.WriteSet writeSet, java.util.Map<java.lang.Integer,java.lang.String> writeSetWithRegion, BookiesHealthInfo bookiesHealthInfo, boolean regionAware, java.lang.String myRegion, int remoteNodeInReorderSequence)
ensemble - ensemble of bookieswriteSet - write setwriteSetWithRegion - write set with region informationbookiesHealthInfo - heuristics about health of boookiesregionAware - whether or not a region-aware policy is usedmyRegion - current region of policyremoteNodeInReorderSequence - number of local bookies to try before trying a remote bookiepublic EnsemblePlacementPolicy.PlacementPolicyAdherence isEnsembleAdheringToPlacementPolicy(java.util.List<org.apache.bookkeeper.net.BookieId> ensembleList, int writeQuorumSize, int ackQuorumSize)
EnsemblePlacementPolicyensembleList - list of BookieId of bookies in the ensemblewriteQuorumSize - writeQuorumSize of the ensembleackQuorumSize - ackQuorumSize of the ensemblepublic boolean areAckedBookiesAdheringToPlacementPolicy(java.util.Set<org.apache.bookkeeper.net.BookieId> ackedBookies,
int writeQuorumSize,
int ackQuorumSize)
EnsemblePlacementPolicyackedBookies - list of BookieId of bookies that have acknowledged a write.writeQuorumSize - writeQuorumSize of the ensembleackQuorumSize - ackQuorumSize of the ensembleCopyright © 2011–2024 The Apache Software Foundation. All rights reserved.