You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by gi...@apache.org on 2019/01/13 02:43:41 UTC
[bookkeeper] branch asf-site updated: Updated site at revision
42fe150
This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/asf-site by this push:
new f0381f0 Updated site at revision 42fe150
f0381f0 is described below
commit f0381f032cbc9386d9691a9e89b918cfadacff29
Author: jenkins <bu...@apache.org>
AuthorDate: Sun Jan 13 02:43:39 2019 +0000
Updated site at revision 42fe150
---
content/docs/latest/api/javadoc/index-all.html | 30 ++-
.../client/DefaultEnsemblePlacementPolicy.html | 101 ++++++---
.../bookkeeper/client/EnsemblePlacementPolicy.html | 98 ++++++---
.../ITopologyAwareEnsemblePlacementPolicy.html | 18 +-
.../client/RackawareEnsemblePlacementPolicy.html | 70 +++---
...lePlacementPolicyImpl.DNSResolverDecorator.html | 27 ++-
.../RackawareEnsemblePlacementPolicyImpl.html | 242 ++++++++++++---------
.../client/RegionAwareEnsemblePlacementPolicy.html | 101 ++++++---
.../TopologyAwareEnsemblePlacementPolicy.html | 2 +-
.../BKException.BKNotEnoughBookiesException.html | 76 +++----
...ologyAwareEnsemblePlacementPolicy.Ensemble.html | 10 +-
...logyAwareEnsemblePlacementPolicy.Predicate.html | 10 +-
...ogyAwareEnsemblePlacementPolicy.BookieNode.html | 16 +-
.../stats/annotations/class-use/StatsDoc.html | 4 +
.../apache/bookkeeper/stats/class-use/Counter.html | 21 ++
15 files changed, 521 insertions(+), 305 deletions(-)
diff --git a/content/docs/latest/api/javadoc/index-all.html b/content/docs/latest/api/javadoc/index-all.html
index 70b6f6f..6303037 100644
--- a/content/docs/latest/api/javadoc/index-all.html
+++ b/content/docs/latest/api/javadoc/index-all.html
@@ -1429,7 +1429,7 @@
<dd>
<div class="block">Whether the set contains the given index.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Set-">convertBookiesToNodes(Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Collection-">convertBookiesToNodes(Collection<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html#copy--">copy()</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></dt>
<dd>
@@ -1770,7 +1770,7 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#dnsResolver">dnsResolver</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-">DNSResolverDecorator(DNSToSwitchMapping, Supplier<String>)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html" title="class in org.apache.book [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-org.apache.bookkeeper.stats.Counter-">DNSResolverDecorator(DNSToSwitchMapping, Supplier<String>, Counter)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDe [...]
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#doAsyncAddEntry-org.apache.bookkeeper.client.PendingAddOp-">doAsyncAddEntry(PendingAddOp)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a></dt>
<dd> </dd>
@@ -2042,6 +2042,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperClientStats.html#FAILED_TLS_HANDSHAKE_COUNTER">FAILED_TLS_HANDSHAKE_COUNTER</a></span> - Static variable in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperClientStats.html" title="interface in org.apache.bookkeeper.client">BookKeeperClientStats</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
+<dd> </dd>
<dt><a href="org/apache/bookkeeper/stats/codahale/FastCodahaleMetricsProvider.html" title="class in org.apache.bookkeeper.stats.codahale"><span class="typeNameLink">FastCodahaleMetricsProvider</span></a> - Class in <a href="org/apache/bookkeeper/stats/codahale/package-summary.html">org.apache.bookkeeper.stats.codahale</a></dt>
<dd>
<div class="block">A <a href="org/apache/bookkeeper/stats/StatsProvider.html" title="interface in org.apache.bookkeeper.stats"><code>StatsProvider</code></a> implemented based on <i>Codahale</i> metrics library.</div>
@@ -4333,6 +4337,18 @@
<dd>
<div class="block">Get whether to listen for local JVM clients.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy(List<BookieSocketAddress>, int, int)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">DefaultEnsemblePlacementPolicy</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy(List<BookieSocketAddress>, int, int)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></dt>
+<dd>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy(List<BookieSocketAddress>, int, int)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
+<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy(List<BookieSocketAddress>, int, int)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">RegionAwareEnsemblePlacementPolicy</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#isEntryLogFilePreAllocationEnabled--">isEntryLogFilePreAllocationEnabled()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
<dd>
<div class="block">Is entry log file preallocation enabled.</div>
@@ -12381,17 +12397,17 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookieWatcherImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-int-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, List<BookieSocketAddress>, int, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookieWatcherImpl.html" title="class in org.apache.bookkeeper.client">BookieWatcherImpl</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, Set<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.h [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, List<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy [...]
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, Set<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, List<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" tit [...]
<dd>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, Set<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPoli [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, List<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPo [...]
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, Set<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacement [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, List<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlaceme [...]
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, Set<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacement [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie(int, int, int, Map<String, byte[]>, List<BookieSocketAddress>, BookieSocketAddress, Set<BookieSocketAddress>)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlaceme [...]
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsembleUtils.html#replaceBookiesInEnsemble-org.apache.bookkeeper.client.BookieWatcher-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.List-java.util.Map-java.lang.String-">replaceBookiesInEnsemble(BookieWatcher, LedgerMetadata, List<BookieSocketAddress>, Map<Integer, BookieSocketAddress>, String)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/clie [...]
<dd> </dd>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html
index eb9d363..576afef 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -190,7 +190,17 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
</td>
</tr>
<tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</code>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int quorumSize,
int ackQuorumSize,
@@ -199,7 +209,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
<div class="block">Choose <i>numBookies</i> bookies for ensemble.</div>
</td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#onClusterChanged-java.util.Set-java.util.Set-">onClusterChanged</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> writableBookies,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> readOnlyBookies)</code>
@@ -207,14 +217,14 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
readonly) is updated when any changes happen in the cluster.</div>
</td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a></span>(org.apache.bookkeeper.net.BookieSocketAddress bookieSocketAddress,
long entryId)</code>
<div class="block">Register a bookie as slow so that it is tried after available and read-only bookies.</div>
</td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#reorderReadLACSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadLACSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.Book [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -222,7 +232,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
<div class="block">Reorder the read last add confirmed sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#reorderReadSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSock [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -230,25 +240,25 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
<div class="block">Reorder the read sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#uninitalize--">uninitalize</a></span>()</code>
<div class="block">Uninitialize the policy.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#updateBookieInfo-java.util.Map-">updateBookieInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><org.apache.bookkeeper.net.BookieSocketAddress,<a href="../../../../org/apache/bookkeeper/client/BookieInfoReader.BookieInfo.html" title="class in org.a [...]
<div class="block">Send the bookie info details.</div>
@@ -332,12 +342,12 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int quorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>public org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int quorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose <i>numBookies</i> bookies for ensemble. If the count is more than the number of available
nodes, <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.
@@ -364,26 +374,26 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
</dl>
</li>
</ul>
-<a name="replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
+<a name="replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceBookie</h4>
-<pre>public org.apache.bookkeeper.net.BookieSocketAddress replaceBookie(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
+<pre>public org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> replaceBookie(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>. If no bookie available in the cluster,
<a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ensembleSize</code> - the value of ensembleSize</dd>
<dd><code>writeQuorumSize</code> - the value of writeQuorumSize</dd>
@@ -414,8 +424,8 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
<p>The implementation should take actions when the cluster view is changed. So subsequent
<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-"><code>EnsemblePlacementPolicy.newEnsemble(int, int, int, Map, Set)</code></a> and
- <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-"><code>EnsemblePlacementPolicy.replaceBookie(int, int, int, java.util.Map, java.util.Set,
- org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set)</code></a>
+ <code>#replaceBookie(int, int, int, java.util.Map, java.util.Set,
+ org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set) </code>
can choose proper bookies.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -542,7 +552,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
<a name="uninitalize--">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>uninitalize</h4>
<pre>public void uninitalize()</pre>
@@ -554,6 +564,33 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
</dl>
</li>
</ul>
+<a name="isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEnsembleAdheringToPlacementPolicy</h4>
+<pre>public boolean isEnsembleAdheringToPlacementPolicy(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">EnsemblePlacementPolicy</a></code></span></div>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks. And in the
+ case of RegionawareEnsemblePlacementPolicy, check for
+ minimumRegionsForDurability, reppRegionsToWrite, rack distribution within
+ a region and other parameters of RegionAwareEnsemblePlacementPolicy.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ensembleList</code> - list of BookieSocketAddress of bookies in the ensemble</dd>
+<dd><code>writeQuorumSize</code> - writeQuorumSize of the ensemble</dd>
+<dd><code>ackQuorumSize</code> - ackQuorumSize of the ensemble</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsemblePlacementPolicy.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsemblePlacementPolicy.html
index fb92804..ce64e94 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsemblePlacementPolicy.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/EnsemblePlacementPolicy.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":18};
+var methods = {"i0":18,"i1":6,"i2":18,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -162,8 +162,8 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
bookie changes, the ensemble placement policy will be notified with new list of bookies via
<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#onClusterChanged-java.util.Set-java.util.Set-"><code>onClusterChanged(Set, Set)</code></a>. The implementation of the ensemble placement policy will react on those
changes to build new network topology. Subsequent operations like <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-"><code>newEnsemble(int, int, int, Map, Set)</code></a> or
- <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-"><code>replaceBookie(int, int, int, java.util.Map, java.util.Set,
- org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set)</code></a>
+ <code>#replaceBookie(int, int, int, java.util.Map, java.util.Set,
+ org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set)</code>
hence can operate on the new
network topology.
@@ -309,7 +309,17 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
</td>
</tr>
<tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>default boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</code>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -318,7 +328,7 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
<div class="block">Choose <i>numBookies</i> bookies for ensemble.</div>
</td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#onClusterChanged-java.util.Set-java.util.Set-">onClusterChanged</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> writableBookies,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> readOnlyBookies)</code>
@@ -326,14 +336,14 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
readonly) is updated when any changes happen in the cluster.</div>
</td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a></span>(org.apache.bookkeeper.net.BookieSocketAddress bookieSocketAddress,
long entryId)</code>
<div class="block">Register a bookie as slow so that it is tried after available and read-only bookies.</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#reorderReadLACSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadLACSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocke [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -341,7 +351,7 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
<div class="block">Reorder the read last add confirmed sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#reorderReadSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddre [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -349,25 +359,25 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
<div class="block">Reorder the read sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#uninitalize--">uninitalize</a></span>()</code>
<div class="block">Uninitialize the policy.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#updateBookieInfo-java.util.Map-">updateBookieInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><org.apache.bookkeeper.net.BookieSocketAddress,<a href="../../../../org/apache/bookkeeper/client/BookieInfoReader.BookieInfo.html" title="class in org.apache.b [...]
<div class="block">Send the bookie info details.</div>
@@ -435,8 +445,8 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
<p>The implementation should take actions when the cluster view is changed. So subsequent
<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-"><code>newEnsemble(int, int, int, Map, Set)</code></a> and
- <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-"><code>replaceBookie(int, int, int, java.util.Map, java.util.Set,
- org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set)</code></a>
+ <code>#replaceBookie(int, int, int, java.util.Map, java.util.Set,
+ org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set) </code>
can choose proper bookies.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -453,12 +463,12 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block">Choose <i>numBookies</i> bookies for ensemble. If the count is more than the number of available
nodes, <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.
@@ -482,20 +492,20 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
</dl>
</li>
</ul>
-<a name="replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
+<a name="replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceBookie</h4>
-<pre>org.apache.bookkeeper.net.BookieSocketAddress replaceBookie(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> replaceBookie(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>. If no bookie available in the cluster,
<a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.</div>
<dl>
@@ -598,7 +608,7 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
<a name="getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>getStickyReadBookieIndex</h4>
<pre>default int getStickyReadBookieIndex(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a> metadata,
@@ -623,6 +633,30 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
</dl>
</li>
</ul>
+<a name="isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEnsembleAdheringToPlacementPolicy</h4>
+<pre>default boolean isEnsembleAdheringToPlacementPolicy(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</pre>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks. And in the
+ case of RegionawareEnsemblePlacementPolicy, check for
+ minimumRegionsForDurability, reppRegionsToWrite, rack distribution within
+ a region and other parameters of RegionAwareEnsemblePlacementPolicy.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ensembleList</code> - list of BookieSocketAddress of bookies in the ensemble</dd>
+<dd><code>writeQuorumSize</code> - writeQuorumSize of the ensemble</dd>
+<dd><code>ackQuorumSize</code> - ackQuorumSize of the ensemble</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html
index aeecd3f..31970c5 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html
@@ -179,7 +179,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolic
</td>
</tr>
<tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -227,7 +227,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolic
<!-- -->
</a>
<h3>Methods inherited from interface org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initiali [...]
+<code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initiali [...]
</ul>
</li>
</ul>
@@ -249,13 +249,13 @@ extends <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolic
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html" title="type parameter in ITopologyAwareEnsemblePlacementPolicy">T</a>> parentEnsemble,
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html" title="type parameter in ITopologyAwareEnsemblePlacementPolicy">T</a>> parentPredicate)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html" title="type parameter in ITopologyAwareEnsemblePlacementPolicy">T</a>> par [...]
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html" title="type parameter in ITopologyAwareEnsemblePlacementPolicy">T</a>> p [...]
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block">Create an ensemble with parent ensemble.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html
index 6a78c45..dc7f624 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html
@@ -192,7 +192,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<!-- -->
</a>
<h3>Fields inherited from class org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesJoinedCounter">bookiesJoinedCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesLeftCounter">bookiesLeftCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#dnsResolver">dnsResolver</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.h [...]
+<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesJoinedCounter">bookiesJoinedCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesLeftCounter">bookiesLeftCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#dnsResolver">dnsResolver</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.h [...]
</ul>
</li>
</ul>
@@ -256,7 +256,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
</td>
</tr>
<tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -266,7 +266,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
</td>
</tr>
<tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -301,12 +301,12 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
</td>
</tr>
<tr id="i8" class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
@@ -356,7 +356,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<!-- -->
</a>
<h3>Methods inherited from class org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Set-">convertBookiesToNodes</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#createBookieNode-org.apache.bookkeeper.net.BookieSocketAddress-">createBookieNode</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#getDefaultRack--">getDefaultRack</a>, <a href="../../../.. [...]
+<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Collection-">convertBookiesToNodes</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#createBookieNode-org.apache.bookkeeper.net.BookieSocketAddress-">createBookieNode</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#getDefaultRack--">getDefaultRack</a>, <a href="../. [...]
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -370,7 +370,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<!-- -->
</a>
<h3>Methods inherited from interface org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initiali [...]
+<code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initiali [...]
</ul>
</li>
</ul>
@@ -488,8 +488,8 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<p>The implementation should take actions when the cluster view is changed. So subsequent
<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-"><code>EnsemblePlacementPolicy.newEnsemble(int, int, int, Map, Set)</code></a> and
- <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-"><code>EnsemblePlacementPolicy.replaceBookie(int, int, int, java.util.Map, java.util.Set,
- org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set)</code></a>
+ <code>#replaceBookie(int, int, int, java.util.Map, java.util.Set,
+ org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set) </code>
can choose proper bookies.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -510,12 +510,12 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>public org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose <i>numBookies</i> bookies for ensemble. If the count is more than the number of available
nodes, <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.
@@ -544,28 +544,28 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
</dl>
</li>
</ul>
-<a name="replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
+<a name="replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceBookie</h4>
-<pre>public org.apache.bookkeeper.net.BookieSocketAddress replaceBookie(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
+<pre>public org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> replaceBookie(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>. If no bookie available in the cluster,
<a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in class <code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></code></dd>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in class <code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ensembleSize</code> - the value of ensembleSize</dd>
<dd><code>writeQuorumSize</code> - the value of writeQuorumSize</dd>
@@ -642,13 +642,13 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> par [...]
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> p [...]
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>public org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemb [...]
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnse [...]
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">ITopologyAwareEnsemblePlacementPolicy</a></code></span></div>
<div class="block">Create an ensemble with parent ensemble.</div>
<dl>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html
index d6258bb..d63fdc3 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html
@@ -145,6 +145,10 @@ implements org.apache.bookkeeper.net.DNSToSwitchMapping</pre>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#defaultRackSupplier">defaultRackSupplier</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>(package private) org.apache.bookkeeper.net.DNSToSwitchMapping</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#resolver">resolver</a></span></code> </td>
</tr>
@@ -163,8 +167,9 @@ implements org.apache.bookkeeper.net.DNSToSwitchMapping</pre>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-">DNSResolverDecorator</a></span>(org.apache.bookkeeper.net.DNSToSwitchMapping resolver,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultRackSupplier)</code> </td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-org.apache.bookkeeper.stats.Counter-">DNSResolverDecorator</a></span>(org.apache.bookkeeper.net.DNSToSwitchMapping resolver,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultRackSupplier,
+ <a href="../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a> failedToResolveNetworkLocationCounter)</code> </td>
</tr>
</table>
</li>
@@ -237,12 +242,23 @@ implements org.apache.bookkeeper.net.DNSToSwitchMapping</pre>
<a name="resolver">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>resolver</h4>
<pre>final org.apache.bookkeeper.net.DNSToSwitchMapping resolver</pre>
</li>
</ul>
+<a name="failedToResolveNetworkLocationCounter">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>failedToResolveNetworkLocationCounter</h4>
+<pre><a href="../../../../org/apache/bookkeeper/stats/annotations/StatsDoc.html" title="annotation in org.apache.bookkeeper.stats.annotations">@StatsDoc</a>(<a href="../../../../org/apache/bookkeeper/stats/annotations/StatsDoc.html#name--">name</a>="FAILED_TO_RESOLVE_NETWORK_LOCATION_COUNTER",
+ <a href="../../../../org/apache/bookkeeper/stats/annotations/StatsDoc.html#help--">help</a>="total number of times Resolver failed to resolve rack information of a node")
+final <a href="../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a> failedToResolveNetworkLocationCounter</pre>
+</li>
+</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -251,14 +267,15 @@ implements org.apache.bookkeeper.net.DNSToSwitchMapping</pre>
<!-- -->
</a>
<h3>Constructor Detail</h3>
-<a name="DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-">
+<a name="DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-org.apache.bookkeeper.stats.Counter-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DNSResolverDecorator</h4>
<pre>DNSResolverDecorator(org.apache.bookkeeper.net.DNSToSwitchMapping resolver,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultRackSupplier)</pre>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultRackSupplier,
+ <a href="../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a> failedToResolveNetworkLocationCounter)</pre>
</li>
</ul>
</li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html
index b7f87f9..ad898b8 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":9,"i26":10,"i27":10,"i28":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -207,110 +207,114 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#enforceMinNumRacksPerWriteQuorum">enforceMinNumRacksPerWriteQuorum</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span></code> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#isWeighted">isWeighted</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><org.apache.bookkeeper.net.BookieSocketAddress,<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#knownBookies">knownBookies</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#LOCAL_FAIL_MASK">LOCAL_FAIL_MASK</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#LOCAL_MASK">LOCAL_MASK</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#localNode">localNode</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>(package private) static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#LOG">LOG</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#MASK_BITS">MASK_BITS</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#maxWeightMultiple">maxWeightMultiple</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#minNumRacksPerWriteQuorum">minNumRacksPerWriteQuorum</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#RACKNAME_DISTANCE_FROM_LEAVES">RACKNAME_DISTANCE_FROM_LEAVES</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#READ_ONLY_MASK">READ_ONLY_MASK</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected com.google.common.collect.ImmutableSet<org.apache.bookkeeper.net.BookieSocketAddress></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#readOnlyBookies">readOnlyBookies</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.html" title="interface in org.apache.bookkeeper.stats">OpStatsLogger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#readReorderedCounter">readReorderedCounter</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#REMOTE_FAIL_MASK">REMOTE_FAIL_MASK</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#REMOTE_MASK">REMOTE_MASK</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#reorderReadsRandom">reorderReadsRandom</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#reorderThresholdPendingRequests">reorderThresholdPendingRequests</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#REPP_DNS_RESOLVER_CLASS">REPP_DNS_RESOLVER_CLASS</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#REPP_RANDOM_READ_REORDERING">REPP_RANDOM_READ_REORDERING</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#rwLock">rwLock</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#SLOW_MASK">SLOW_MASK</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected com.google.common.cache.Cache<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#slowBookies">slowBookies</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#stabilizePeriodSeconds">stabilizePeriodSeconds</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/stats/StatsLogger.html" title="interface in org.apache.bookkeeper.stats">StatsLogger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#statsLogger">statsLogger</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>protected io.netty.util.HashedWheelTimer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#timer">timer</a></span></code> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><code>protected org.apache.bookkeeper.net.NetworkTopology</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#topology">topology</a></span></code> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#UNAVAIL_MASK">UNAVAIL_MASK</a></span></code> </td>
</tr>
@@ -351,7 +355,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Set-">convertBookiesToNodes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Collection-">convertBookiesToNodes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
@@ -399,7 +403,17 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
</td>
</tr>
<tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</code>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -408,8 +422,8 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Choose <i>numBookies</i> bookies for ensemble.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -419,8 +433,8 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Create an ensemble with parent ensemble.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -428,19 +442,19 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentEnsemble,
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
-<tr id="i10" class="altColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentEnsemble,
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#onBookieRackChange-java.util.List-">onBookieRackChange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> bookieAddressList)</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#onClusterChanged-java.util.Set-java.util.Set-">onClusterChanged</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> writableBookies,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> readOnlyBookies)</code>
@@ -448,14 +462,14 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
readonly) is updated when any changes happen in the cluster.</div>
</td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a></span>(org.apache.bookkeeper.net.BookieSocketAddress bookieSocketAddress,
long entryId)</code>
<div class="block">Register a bookie as slow so that it is tried after available and read-only bookies.</div>
</td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#reorderReadSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.Book [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -463,7 +477,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Reorder the read sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#reorderReadSequenceWithRegion-java.util.List-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-java.util.Map-org.apache.bookkeeper.client.BookiesHealthInfo-boolean-java.lang.String-int-">reorderReadSequenceWithRegion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or int [...]
<a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a> writeSet,
@@ -475,23 +489,23 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">This function orders the read sequence with a given region.</div>
</td>
</tr>
-<tr id="i16" class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
</td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#resolveNetworkLocation-org.apache.bookkeeper.net.BookieSocketAddress-">resolveNetworkLocation</a></span>(org.apache.bookkeeper.net.BookieSocketAddress addr)</code> </td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#selectFromNetworkLocation-java.util.Set-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-boolean-">selectFromNetworkLocation</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" tit [...]
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> excludeBookies,
@@ -502,7 +516,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<i>excludeBookies</i> set.</div>
</td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#selectFromNetworkLocation-java.lang.String-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-boolean-">selectFromNetworkLocation</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=tru [...]
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> excludeBookies,
@@ -512,7 +526,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Select a node from a given network location.</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#selectFromNetworkLocation-java.lang.String-java.util.Set-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-boolean-">selectFromNetworkLocation</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?i [...]
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> excludeRacks,
@@ -523,7 +537,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Select a node from networkLoc rack excluding excludeBookies.</div>
</td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#selectRandom-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-">selectRandom</a></span>(int numBookies,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> excludeBookies,
@@ -532,7 +546,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Choose a random node from whole cluster.</div>
</td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#selectRandomFromRack-java.lang.String-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-">selectRandomFromRack</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or [...]
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> excludeBookies,
@@ -541,7 +555,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Choose random node under a given network path.</div>
</td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#selectRandomInternal-java.util.List-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-">selectRandomInternal</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or [...]
int numBookies,
@@ -549,7 +563,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> predicate,
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> ensemble)</code> </td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>(package private) static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#shuffleWithMask-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-int-int-">shuffleWithMask</a></span>(<a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a> writeSet,
int mask,
@@ -557,19 +571,19 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
<div class="block">Shuffle all the entries of an array that matches a mask.</div>
</td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#uninitalize--">uninitalize</a></span>()</code>
<div class="block">Uninitialize the policy.</div>
</td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#updateBookieInfo-java.util.Map-">updateBookieInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><org.apache.bookkeeper.net.BookieSocketAddress,<a href="../../../../org/apache/bookkeeper/client/BookieInfoReader.BookieInfo.html" title="class in [...]
<div class="block">Send the bookie info details.</div>
</td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#withDefaultRack-java.lang.String-">withDefaultRack</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> rack)</code> </td>
</tr>
@@ -939,7 +953,7 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<a name="readReorderedCounter">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>readReorderedCounter</h4>
<pre><a href="../../../../org/apache/bookkeeper/stats/annotations/StatsDoc.html" title="annotation in org.apache.bookkeeper.stats.annotations">@StatsDoc</a>(<a href="../../../../org/apache/bookkeeper/stats/annotations/StatsDoc.html#name--">name</a>="READ_REQUESTS_REORDERED",
@@ -947,6 +961,15 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.html" title="interface in org.apache.bookkeeper.stats">OpStatsLogger</a> readReorderedCounter</pre>
</li>
</ul>
+<a name="failedToResolveNetworkLocationCounter">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>failedToResolveNetworkLocationCounter</h4>
+<pre>protected <a href="../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a> failedToResolveNetworkLocationCounter</pre>
+</li>
+</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -1099,8 +1122,8 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<p>The implementation should take actions when the cluster view is changed. So subsequent
<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-"><code>EnsemblePlacementPolicy.newEnsemble(int, int, int, Map, Set)</code></a> and
- <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-"><code>EnsemblePlacementPolicy.replaceBookie(int, int, int, java.util.Map, java.util.Set,
- org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set)</code></a>
+ <code>#replaceBookie(int, int, int, java.util.Map, java.util.Set,
+ org.apache.bookkeeper.net.BookieSocketAddress, java.util.Set) </code>
can choose proper bookies.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1141,13 +1164,13 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
</dl>
</li>
</ul>
-<a name="convertBookiesToNodes-java.util.Set-">
+<a name="convertBookiesToNodes-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertBookiesToNodes</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> convertBookiesToNodes(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</pre>
+<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> convertBookiesToNodes(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</pre>
</li>
</ul>
<a name="newEnsemble-int-int-int-java.util.Map-java.util.Set-">
@@ -1156,12 +1179,12 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>public org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose <i>numBookies</i> bookies for ensemble. If the count is more than the number of available
nodes, <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.
@@ -1192,12 +1215,12 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<ul class="blockList">
<li class="blockList">
<h4>newEnsembleInternal</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsembleInternal(int ensembleSize,
- int writeQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>&g [...]
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a> [...]
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsembleInternal(int ensembleSize,
+ int writeQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">Topology [...]
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">Topolo [...]
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></code></dd>
@@ -1210,13 +1233,13 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> par [...]
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> p [...]
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>public org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemb [...]
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnse [...]
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">ITopologyAwareEnsemblePlacementPolicy</a></code></span></div>
<div class="block">Create an ensemble with parent ensemble.</div>
<dl>
@@ -1239,34 +1262,34 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<ul class="blockList">
<li class="blockList">
<h4>newEnsembleInternal</h4>
-<pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsembleInternal(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>&g [...]
- <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a> [...]
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsembleInternal(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">Topology [...]
+ <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">Topolo [...]
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></code></dd>
</dl>
</li>
</ul>
-<a name="replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
+<a name="replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceBookie</h4>
-<pre>public org.apache.bookkeeper.net.BookieSocketAddress replaceBookie(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
+<pre>public org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> replaceBookie(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>. If no bookie available in the cluster,
<a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.</div>
<dl>
@@ -1529,7 +1552,7 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
<a name="shuffleWithMask-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-int-int-">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>shuffleWithMask</h4>
<pre>static void shuffleWithMask(<a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a> writeSet,
@@ -1539,6 +1562,31 @@ protected <a href="../../../../org/apache/bookkeeper/stats/OpStatsLogger.ht
It assumes all entries with the same mask are contiguous in the array.</div>
</li>
</ul>
+<a name="isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEnsembleAdheringToPlacementPolicy</h4>
+<pre>public boolean isEnsembleAdheringToPlacementPolicy(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">EnsemblePlacementPolicy</a></code></span></div>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks. And in the
+ case of RegionawareEnsemblePlacementPolicy, check for
+ minimumRegionsForDurability, reppRegionsToWrite, rack distribution within
+ a region and other parameters of RegionAwareEnsemblePlacementPolicy.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ensembleList</code> - list of BookieSocketAddress of bookies in the ensemble</dd>
+<dd><code>writeQuorumSize</code> - writeQuorumSize of the ensemble</dd>
+<dd><code>ackQuorumSize</code> - ackQuorumSize of the ensemble</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html
index 742bd25..c0a078f 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -283,7 +283,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<!-- -->
</a>
<h3>Fields inherited from class org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesJoinedCounter">bookiesJoinedCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesLeftCounter">bookiesLeftCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#dnsResolver">dnsResolver</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.h [...]
+<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesJoinedCounter">bookiesJoinedCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesLeftCounter">bookiesLeftCounter</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#dnsResolver">dnsResolver</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.h [...]
</ul>
</li>
</ul>
@@ -347,7 +347,17 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
</td>
</tr>
<tr id="i5" class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</code>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -356,7 +366,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<div class="block">Choose <i>numBookies</i> bookies for ensemble.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#reorderReadLACSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadLACSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net. [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -364,7 +374,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<div class="block">Reorder the read last add confirmed sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#reorderReadSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">reorderReadSequence</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.Bookie [...]
<a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a> bookiesHealthInfo,
@@ -372,19 +382,19 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<div class="block">Reorder the read sequence of a given write quorum <i>writeSet</i>.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceFromRack-org.apache.bookkeeper.client.TopologyAwareEnsemblePlacementPolicy.BookieNode-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-boolean-">replaceFromRack</a></span>(<a href="../../../../org/apache/bookkeeper/client/ [...]
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.Node> excludeBookies,
@@ -392,7 +402,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> ensemble,
boolean enforceDurability)</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#selectRandomFromRegions-java.util.Set-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-">selectRandomFromRegions</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class [...]
int numBookies,
@@ -413,7 +423,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<!-- -->
</a>
<h3>Methods inherited from class org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Set-">convertBookiesToNodes</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#createBookieNode-org.apache.bookkeeper.net.BookieSocketAddress-">createBookieNode</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#getDefaultRack--">getDefaultRack</a>, <a href="../../../.. [...]
+<code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#convertBookiesToNodes-java.util.Collection-">convertBookiesToNodes</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#createBookieNode-org.apache.bookkeeper.net.BookieSocketAddress-">createBookieNode</a>, <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#getDefaultRack--">getDefaultRack</a>, <a href="../. [...]
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -821,12 +831,12 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<ul class="blockList">
<li class="blockList">
<h4>newEnsemble</h4>
-<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> newEnsemble(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<pre>public org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> newEnsemble(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose <i>numBookies</i> bookies for ensemble. If the count is more than the number of available
nodes, <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.
@@ -855,28 +865,28 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
</dl>
</li>
</ul>
-<a name="replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
+<a name="replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceBookie</h4>
-<pre>public org.apache.bookkeeper.net.BookieSocketAddress replaceBookie(int ensembleSize,
- int writeQuorumSize,
- int ackQuorumSize,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
- throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
+<pre>public org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> replaceBookie(int ensembleSize,
+ int writeQuorumSize,
+ int ackQuorumSize,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)
+ throws <a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client">BKException.BKNotEnoughBookiesException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">EnsemblePlacementPolicy</a></code></span></div>
<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>. If no bookie available in the cluster,
<a href="../../../../org/apache/bookkeeper/client/BKException.BKNotEnoughBookiesException.html" title="class in org.apache.bookkeeper.client"><code>BKException.BKNotEnoughBookiesException</code></a> is thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in class <code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicy</a></code></dd>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></code> in class <code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ensembleSize</code> - the value of ensembleSize</dd>
<dd><code>writeQuorumSize</code> - the value of writeQuorumSize</dd>
@@ -941,7 +951,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
<a name="reorderReadLACSequence-java.util.List-org.apache.bookkeeper.client.BookiesHealthInfo-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>reorderReadLACSequence</h4>
<pre>public final <a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a> reorderReadLACSequence(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensemble,
@@ -965,6 +975,35 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
</dl>
</li>
</ul>
+<a name="isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEnsembleAdheringToPlacementPolicy</h4>
+<pre>public boolean isEnsembleAdheringToPlacementPolicy(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> ensembleList,
+ int writeQuorumSize,
+ int ackQuorumSize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">EnsemblePlacementPolicy</a></code></span></div>
+<div class="block">returns true if the Ensemble is strictly adhering to placement policy,
+ like in the case of RackawareEnsemblePlacementPolicy, bookies in the
+ writeset are from 'minNumRacksPerWriteQuorum' number of racks. And in the
+ case of RegionawareEnsemblePlacementPolicy, check for
+ minimumRegionsForDurability, reppRegionsToWrite, rack distribution within
+ a region and other parameters of RegionAwareEnsemblePlacementPolicy.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></code> in interface <code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#isEnsembleAdheringToPlacementPolicy-java.util.List-int-int-">isEnsembleAdheringToPlacementPolicy</a></code> in class <code><a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ensembleList</code> - list of BookieSocketAddress of bookies in the ensemble</dd>
+<dd><code>writeQuorumSize</code> - writeQuorumSize of the ensemble</dd>
+<dd><code>ackQuorumSize</code> - ackQuorumSize of the ensemble</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.html
index 3f0a360..f2d4116 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.html
@@ -251,7 +251,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
<!-- -->
</a>
<h3>Methods inherited from interface org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initiali [...]
+<code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initiali [...]
</ul>
</li>
</ul>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html
index f6c62c3..1640dce 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BKException.BKNotEnoughBookiesException.html
@@ -121,7 +121,7 @@
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">DefaultEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int quorumSize,
int ackQuorumSize,
@@ -129,7 +129,7 @@
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -137,7 +137,7 @@
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -145,7 +145,7 @@
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">EnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -155,7 +155,7 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RegionAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -163,7 +163,7 @@
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">ITopologyAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -174,7 +174,7 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -183,7 +183,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -192,7 +192,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -201,7 +201,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
@@ -209,77 +209,77 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">BookieWatcher.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookieWatcher.html#replaceBookie-int-int-int-java.util.Map-java.util.List-int-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> existingBookies,
- int bookieIdx,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
-<div class="block">Choose a bookie to replace bookie <i>bookieIdx</i> in <i>existingBookies</i>.</div>
-</td>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">BookieWatcherImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookieWatcherImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-int-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> existingBookies,
- int bookieIdx,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">EnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
+<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
+</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<org.apache.bookkeeper.net.BookieSocketAddress,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.List-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">EnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colLast"><span class="typeNameLabel">BookieWatcher.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookieWatcher.html#replaceBookie-int-int-int-java.util.Map-java.util.List-int-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> existingBookies,
+ int bookieIdx,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code>
-<div class="block">Choose a new bookie to replace <i>bookieToReplace</i>.</div>
+<div class="block">Choose a bookie to replace bookie <i>bookieIdx</i> in <i>existingBookies</i>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>org.apache.bookkeeper.net.BookieSocketAddress</code></td>
-<td class="colLast"><span class="typeNameLabel">RegionAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#replaceBookie-int-int-int-java.util.Map-java.util.Set-org.apache.bookkeeper.net.BookieSocketAddress-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
+<td class="colLast"><span class="typeNameLabel">BookieWatcherImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookieWatcherImpl.html#replaceBookie-int-int-int-java.util.Map-java.util.List-int-java.util.Set-">replaceBookie</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]> customMetadata,
- <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> currentEnsemble,
- org.apache.bookkeeper.net.BookieSocketAddress bookieToReplace,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress> existingBookies,
+ int bookieIdx,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies)</code> </td>
</tr>
<tr class="rowColor">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html
index 95d7b80..7513d43 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html
@@ -153,7 +153,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> ensemble)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">ITopologyAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -164,7 +164,7 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -173,7 +173,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -182,7 +182,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -191,7 +191,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Predicate.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Predicate.html
index 45a0e4d..118dacd 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Predicate.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ITopologyAwareEnsemblePlacementPolicy.Predicate.html
@@ -138,7 +138,7 @@
</tr>
<tbody>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">ITopologyAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -149,7 +149,7 @@
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -158,7 +158,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -167,7 +167,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -176,7 +176,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.BookieNode.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.BookieNode.html
index 557037c..1640856 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.BookieNode.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/TopologyAwareEnsemblePlacementPolicy.BookieNode.html
@@ -328,7 +328,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Ensemble.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Ensemble</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> ensemble)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -337,7 +337,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -346,7 +346,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -355,7 +355,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsemble</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -364,7 +364,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -373,7 +373,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
int ackQuorumSize,
@@ -382,7 +382,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
@@ -390,7 +390,7 @@
<a href="../../../../../org/apache/bookkeeper/client/ITopologyAwareEnsemblePlacementPolicy.Predicate.html" title="interface in org.apache.bookkeeper.client">ITopologyAwareEnsemblePlacementPolicy.Predicate</a><<a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.BookieNode.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.BookieNode</a>> parentPredicate)</code> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress></code></td>
+<td class="colFirst"><code>protected org.apache.commons.lang3.tuple.Pair<<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.bookkeeper.net.BookieSocketAddress>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#newEnsembleInternal-int-int-java.util.Set-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Ensemble-org.apache.bookkeeper.client.ITopologyAwareEnsemblePlacementPolicy.Predicate-">newEnsembleInternal</a></span>(int ensembleSize,
int writeQuorumSize,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><org.apache.bookkeeper.net.BookieSocketAddress> excludeBookies,
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/annotations/class-use/StatsDoc.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/annotations/class-use/StatsDoc.html
index 2da0e73..1b3255b 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/annotations/class-use/StatsDoc.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/annotations/class-use/StatsDoc.html
@@ -148,6 +148,10 @@
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#bookiesLeftCounter">bookiesLeftCounter</a></span></code> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span></code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/bookkeeper/stats/OpStatsLogger.html" title="interface in org.apache.bookkeeper.stats">OpStatsLogger</a></code></td>
<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#readReorderedCounter">readReorderedCounter</a></span></code> </td>
</tr>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/class-use/Counter.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/class-use/Counter.html
index bedd5d1..5157ee7 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/class-use/Counter.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/stats/class-use/Counter.html
@@ -151,6 +151,14 @@
<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#ensembleChangeCounter">ensembleChangeCounter</a></span></code> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span></code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#failedToResolveNetworkLocationCounter">failedToResolveNetworkLocationCounter</a></span></code> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></code></td>
<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#lacUpdateHitsCounter">lacUpdateHitsCounter</a></span></code> </td>
</tr>
@@ -197,6 +205,19 @@
</tr>
</tbody>
</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with parameters of type <a href="../../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DNSResolverDecorator.html#DNSResolverDecorator-org.apache.bookkeeper.net.DNSToSwitchMapping-java.util.function.Supplier-org.apache.bookkeeper.stats.Counter-">DNSResolverDecorator</a></span>(org.apache.bookkeeper.net.DNSToSwitchMapping resolver,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultRackSupplier,
+ <a href="../../../../../org/apache/bookkeeper/stats/Counter.html" title="interface in org.apache.bookkeeper.stats">Counter</a> failedToResolveNetworkLocationCounter)</code> </td>
+</tr>
+</tbody>
+</table>
</li>
<li class="blockList"><a name="org.apache.bookkeeper.client.impl">
<!-- -->