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/09 00:49:35 UTC

[bookkeeper] branch asf-site updated: Updated site at revision 4c85877

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 bf517a4  Updated site at revision 4c85877
bf517a4 is described below

commit bf517a4fb873c3c5c15eccf93db8cd3468314e83
Author: jenkins <bu...@apache.org>
AuthorDate: Wed Jan 9 00:49:32 2019 +0000

    Updated site at revision 4c85877
---
 .../docs/latest/api/javadoc/constant-values.html   |  21 +-
 content/docs/latest/api/javadoc/index-all.html     |  26 +++
 .../bookkeeper/client/ClientInternalConf.html      |  29 ++-
 .../client/DefaultEnsemblePlacementPolicy.html     |   7 +
 .../bookkeeper/client/EnsemblePlacementPolicy.html |  56 +++++-
 .../ITopologyAwareEnsemblePlacementPolicy.html     |   2 +-
 .../org/apache/bookkeeper/client/LedgerHandle.html |  89 ++++++---
 .../apache/bookkeeper/client/LedgerHandleAdv.html  |   2 +-
 .../client/RackawareEnsemblePlacementPolicy.html   |   2 +-
 .../RackawareEnsemblePlacementPolicyImpl.html      |   7 +
 .../bookkeeper/client/ReadOnlyLedgerHandle.html    |   2 +-
 .../client/RegionAwareEnsemblePlacementPolicy.html |   2 +-
 .../TopologyAwareEnsemblePlacementPolicy.html      |   2 +-
 .../client/api/class-use/LedgerMetadata.html       |  14 +-
 .../class-use/DistributionSchedule.WriteSet.html   |  30 +--
 .../bookkeeper/conf/ClientConfiguration.html       | 220 ++++++++++++++-------
 .../conf/class-use/ClientConfiguration.html        |  37 ++--
 17 files changed, 383 insertions(+), 165 deletions(-)

diff --git a/content/docs/latest/api/javadoc/constant-values.html b/content/docs/latest/api/javadoc/constant-values.html
index e41f87c..673433b 100644
--- a/content/docs/latest/api/javadoc/constant-values.html
+++ b/content/docs/latest/api/javadoc/constant-values.html
@@ -1729,55 +1729,62 @@
 <td class="colLast"><code>"startTLSTimeoutSecs"</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.STICKY_READS_ENABLED">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#STICKY_READS_ENABLED">STICKY_READS_ENABLED</a></code></td>
+<td class="colLast"><code>"stickyReadSEnabled"</code></td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TASK_EXECUTION_WARN_TIME_MICROS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TASK_EXECUTION_WARN_TIME_MICROS">TASK_EXECUTION_WARN_TIME_MICROS</a></code></td>
 <td class="colLast"><code>"taskExecutionWarnTimeMicros"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.THROTTLE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#THROTTLE">THROTTLE</a></code></td>
 <td class="colLast"><code>"throttle"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_MONITOR_INTERVAL_SEC">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_MONITOR_INTERVAL_SEC">TIMEOUT_MONITOR_INTERVAL_SEC</a></code></td>
 <td class="colLast"><code>"timeoutMonitorIntervalSec"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_TASK_INTERVAL_MILLIS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TASK_INTERVAL_MILLIS">TIMEOUT_TASK_INTERVAL_MILLIS</a></code></td>
 <td class="colLast"><code>"timeoutTaskIntervalMillis"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_TIMER_NUM_TICKS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_NUM_TICKS">TIMEOUT_TIMER_NUM_TICKS</a></code></td>
 <td class="colLast"><code>"timeoutTimerNumTicks"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.TIMEOUT_TIMER_TICK_DURATION_MS">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_TICK_DURATION_MS">TIMEOUT_TIMER_TICK_DURATION_MS</a></code></td>
 <td class="colLast"><code>"timeoutTimerTickDurationMs"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.USE_V2_WIRE_PROTOCOL">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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><code><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#USE_V2_WIRE_PROTOCOL">USE_V2_WIRE_PROTOCOL</a></code></td>
 <td class="colLast"><code>"useV2WireProtocol"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.bookkeeper.conf.ClientConfiguration.WAIT_TIMEOUT_ON_BACKPRESSURE">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;<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>
diff --git a/content/docs/latest/api/javadoc/index-all.html b/content/docs/latest/api/javadoc/index-all.html
index 05ad9cc..70b6f6f 100644
--- a/content/docs/latest/api/javadoc/index-all.html
+++ b/content/docs/latest/api/javadoc/index-all.html
@@ -1864,6 +1864,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ClientInternalConf.html#enableReorderReadSequence">enableReorderReadSequence</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ClientInternalConf.html" title="class in org.apache.bookkeeper.client">ClientInternalConf</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ClientInternalConf.html#enableStickyReads">enableStickyReads</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ClientInternalConf.html" title="class in org.apache.bookkeeper.client">ClientInternalConf</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RegionAwareEnsemblePlacementPolicy.html#enableValidation">enableValidation</a></span> - Variable 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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/PendingReadOp.html#endEntryId">endEntryId</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/PendingReadOp.html" title="class in org.apache.bookkeeper.client">PendingReadOp</a></dt>
@@ -3727,6 +3729,11 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/codahale/FastSnapshot.html#getStdDev--">getStdDev()</a></span> - Method in class org.apache.bookkeeper.stats.codahale.<a href="org/apache/bookkeeper/stats/codahale/FastSnapshot.html" title="class in org.apache.bookkeeper.stats.codahale">FastSnapshot</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex(LedgerMetadata, Optional&lt;Integer&gt;)</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">Select one bookie to the "sticky" bookie where all reads for a particular
+ ledger will be directed to.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#getStoreSystemtimeAsLedgerCreationTime--">getStoreSystemtimeAsLedgerCreationTime()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
 <dd>
 <div class="block">Return the flag that indicates whether client is using system time as the ledger creation time when
@@ -3933,6 +3940,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RoundRobinDistributionSchedule.html#getWriteSet-long-">getWriteSet(long)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RoundRobinDistributionSchedule.html" title="class in org.apache.bookkeeper.client">RoundRobinDistributionSchedule</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#getWriteSetForReadOperation-long-">getWriteSetForReadOperation(long)</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>
+<div class="block">Return a <a href="org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client"><code>DistributionSchedule.WriteSet</code></a> suitable for reading a particular entry.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#getZkAvailableBookiesPath--">getZkAvailableBookiesPath()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/AbstractConfiguration.html" title="class in org.apache.bookkeeper.conf">AbstractConfiguration</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
@@ -4380,6 +4391,10 @@
 <dd>
 <div class="block">Is statistics enabled.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#isStickyReadsEnabled--">isStickyReadsEnabled()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
+<dd>
+<div class="block">If read operation should be sticky to a single bookie or not.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerFragment.html#isStoredEntryId-long-int-">isStoredEntryId(long, int)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerFragment.html" title="class in org.apache.bookkeeper.client">LedgerFragment</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/PendingReadOp.LedgerEntryRequest.html#issueSpeculativeRequest--">issueSpeculativeRequest()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/PendingReadOp.LedgerEntryRequest.html" title="class in org.apache.bookkeeper.client">PendingReadOp.LedgerEntryRequest</a></dt>
@@ -12107,6 +12122,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/generated/StatsLoggerBenchmark_recordLatency_jmhTest.html#recordLatency_thrpt_jmhStub-org.openjdk.jmh.runner.InfraControl-org.openjdk.jmh.results.RawResults-org.openjdk.jmh.infra.BenchmarkParams-org.openjdk.jmh.infra.IterationParams-org.openjdk.jmh.infra.ThreadParams-org.openjdk.jmh.infra.Blackhole-org.openjdk.jmh.infra.Control-int-org.apache.bookkeeper.stats.generated.StatsLoggerBenchmark_LoggerState_jmhType-org.apach [...]
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#recordReadErrorOnBookie-int-">recordReadErrorOnBookie(int)</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>
+<div class="block">Notify the LedgerHandle that a read operation was failed on a particular bookie.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#recover-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">recover(BookkeeperInternalCallbacks.GenericCallback&lt;Void&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html" title="class in org.apache.bookkeeper.client">ReadOnlyLedgerHandle</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#recover-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.ReadEntryListener-boolean-">recover(BookkeeperInternalCallbacks.GenericCallback&lt;Void&gt;, BookkeeperInternalCallbacks.ReadEntryListener, boolean)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedger [...]
@@ -13476,6 +13495,11 @@
 <dd>
 <div class="block">Set the stats provider used by bookie.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#setStickyReadsEnabled-boolean-">setStickyReadsEnabled(boolean)</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
+<dd>
+<div class="block">Enable/disable having read operations for a ledger to be sticky to
+ a single bookie.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#setStoreSystemtimeAsLedgerCreationTime-boolean-">setStoreSystemtimeAsLedgerCreationTime(boolean)</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
 <dd>
 <div class="block">Enable the client to use system time as the ledger creation time.</div>
@@ -13944,6 +13968,8 @@
 <dd>
 <div class="block">Provider to provide stats logger for different scopes.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#STICKY_READS_ENABLED">STICKY_READS_ENABLED</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/CachingStatsProvider.html#stop--">stop()</a></span> - Method in class org.apache.bookkeeper.stats.<a href="org/apache/bookkeeper/stats/CachingStatsProvider.html" title="class in org.apache.bookkeeper.stats">CachingStatsProvider</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.html#stop--">stop()</a></span> - Method in class org.apache.bookkeeper.stats.codahale.<a href="org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.html" title="class in org.apache.bookkeeper.stats.codahale">CodahaleMetricsProvider</a></dt>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ClientInternalConf.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ClientInternalConf.html
index 440d2b8..5ae63a6 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ClientInternalConf.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ClientInternalConf.html
@@ -158,38 +158,42 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#enableReorderReadSequence">enableReorderReadSequence</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#enableStickyReads">enableStickyReads</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#explicitLacInterval">explicitLacInterval</a></span></code>&nbsp;</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/ClientInternalConf.html#maxAllowedEnsembleChanges">maxAllowedEnsembleChanges</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) com.google.common.base.Optional&lt;<a href="../../../../org/apache/bookkeeper/client/SpeculativeRequestExecutionPolicy.html" title="interface in org.apache.bookkeeper.client">SpeculativeRequestExecutionPolicy</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#readLACSpeculativeRequestPolicy">readLACSpeculativeRequestPolicy</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) com.google.common.base.Optional&lt;<a href="../../../../org/apache/bookkeeper/client/SpeculativeRequestExecutionPolicy.html" title="interface in org.apache.bookkeeper.client">SpeculativeRequestExecutionPolicy</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#readSpeculativeRequestPolicy">readSpeculativeRequestPolicy</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#recoveryReadBatchSize">recoveryReadBatchSize</a></span></code>&nbsp;</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/ClientInternalConf.html#throttleValue">throttleValue</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#timeoutMonitorIntervalSec">timeoutMonitorIntervalSec</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#useV2WireProtocol">useV2WireProtocol</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ClientInternalConf.html#waitForWriteSetMs">waitForWriteSetMs</a></span></code>&nbsp;</td>
 </tr>
@@ -324,6 +328,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>final&nbsp;boolean enableReorderReadSequence</pre>
 </li>
 </ul>
+<a name="enableStickyReads">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enableStickyReads</h4>
+<pre>final&nbsp;boolean enableStickyReads</pre>
+</li>
+</ul>
 <a name="recoveryReadBatchSize">
 <!--   -->
 </a>
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 f03ced9..eb9d363 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
@@ -262,6 +262,13 @@ implements <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPo
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
 <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="htt [...]
 </ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.bookkeeper.client.EnsemblePlacementPolicy">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;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></code></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 ad214b1..fb92804 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":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":18};
+var methods = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":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";
@@ -291,6 +291,14 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>default int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;currentStickyBookieIndex)</code>
+<div class="block">Select one bookie to the "sticky" bookie where all reads for a particular
+ ledger will be directed to.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client">EnsemblePlacementPolicy</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><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-">initialize</a></span>(<a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a [...]
           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.bookkeeper.net.DNSToSwitchMapping&gt;&nbsp;optionalDnsResolver,
@@ -300,7 +308,7 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
 <div class="block">Initialize the policy.</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</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&nbsp;ensembleSize,
            int&nbsp;writeQuorumSize,
@@ -310,7 +318,7 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
 <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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;readOnlyBookies)</code>
@@ -318,14 +326,14 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
  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/EnsemblePlacementPolicy.html#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a></span>(org.apache.bookkeeper.net.BookieSocketAddress&nbsp;bookieSocketAddress,
                   long&nbsp;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/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>&lt;org.apache.bookkeeper.net.BookieSocke [...]
                       <a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
@@ -333,7 +341,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="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#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>&lt;org.apache.bookkeeper.net.BookieSocketAddre [...]
                    <a href="../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
@@ -341,7 +349,7 @@ 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="i6" class="altColor">
+<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&nbsp;ensembleSize,
              int&nbsp;writeQuorumSize,
@@ -353,13 +361,13 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
 <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/EnsemblePlacementPolicy.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>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>&lt;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>
@@ -574,7 +582,7 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
 <a name="updateBookieInfo-java.util.Map-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>updateBookieInfo</h4>
 <pre>default&nbsp;void&nbsp;updateBookieInfo(<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>&lt;org.apache.bookkeeper.net.BookieSocketAddress,<a href="../../../../org/apache/bookkeeper/client/BookieInfoReader.BookieInfo.html" title="class in org.apache.bookkeeper.client">BookieInfoReader.BookieInfo</a>&gt;&nbsp;bookieInfoMap)</pre>
@@ -587,6 +595,34 @@ public interface <span class="typeNameLabel">EnsemblePlacementPolicy</span></pre
 </dl>
 </li>
 </ul>
+<a name="getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStickyReadBookieIndex</h4>
+<pre>default&nbsp;int&nbsp;getStickyReadBookieIndex(<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;currentStickyBookieIndex)</pre>
+<div class="block">Select one bookie to the "sticky" bookie where all reads for a particular
+ ledger will be directed to.
+
+ <p>The default implementation will pick a bookie randomly from the ensemble.
+ Other placement policies will be able to do better decisions based on
+ additional informations (eg: rack or region awareness).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>metadata</code> - the <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api"><code>LedgerMetadata</code></a> object</dd>
+<dd><code>currentStickyBookieIndex</code> - if we are changing the sticky bookie after a read failure, the
+            current sticky bookie is passed in so that we will avoid
+            choosing it again</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the index, within the ensemble of the bookie chosen as the sticky
+         bookie</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>4.9</dd>
+</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 48a7169..aeecd3f 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
@@ -227,7 +227,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolic
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;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#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initialize</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a>, <a href="../../../../org/apache/bookkeeper/cl [...]
+<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/LedgerHandle.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.html
index 319490f..a143a6e 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandle.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":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":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":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10," [...]
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -651,65 +651,71 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#getWriteFlags--">getWriteFlags</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i49" class="rowColor">
+<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/LedgerHandle.html#getWriteSetForReadOperation-long-">getWriteSetForReadOperation</a></span>(long&nbsp;entryId)</code>
+<div class="block">Return a <a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client"><code>DistributionSchedule.WriteSet</code></a> suitable for reading a particular entry.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#handleBookieFailure-java.util.Map-">handleBookieFailure</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>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeep [...]
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#handleUnrecoverableErrorDuringAdd-int-">handleUnrecoverableErrorDuringAdd</a></span>(int&nbsp;rc)</code>&nbsp;</td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#hasDelayedWriteFailedBookies--">hasDelayedWriteFailedBookies</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#initializeWriteHandleState--">initializeWriteHandleState</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#isClosed--">isClosed</a></span>()</code>
 <div class="block">Returns whether the ledger is sealed or not.</div>
 </td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#isHandleWritable--">isHandleWritable</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#maybeHandleDelayedWriteBookieFailure--">maybeHandleDelayedWriteBookieFailure</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#notifyWriteFailed-int-org.apache.bookkeeper.net.BookieSocketAddress-">notifyWriteFailed</a></span>(int&nbsp;index,
                  org.apache.bookkeeper.net.BookieSocketAddress&nbsp;addr)</code>&nbsp;</td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerEntries.html" title="interface in org.apache.bookkeeper.client.api">LedgerEntries</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readAsync-long-long-">readAsync</a></span>(long&nbsp;firstEntry,
          long&nbsp;lastEntry)</code>
 <div class="block">Read a sequence of entries asynchronously.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a>&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerEntry.html" title="class in org.apache.bookkeeper.client">LedgerEntry</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readEntries-long-long-">readEntries</a></span>(long&nbsp;firstEntry,
            long&nbsp;lastEntry)</code>
 <div class="block">Read a sequence of entries synchronously.</div>
 </td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerEntries.html" title="interface in org.apache.bookkeeper.client.api">LedgerEntries</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readEntriesInternalAsync-long-long-boolean-">readEntriesInternalAsync</a></span>(long&nbsp;firstEntry,
                         long&nbsp;lastEntry,
                         boolean&nbsp;isRecoveryRead)</code>&nbsp;</td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readExplicitLastConfirmed--">readExplicitLastConfirmed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/LastConfirmedAndEntry.html" title="interface in org.apache.bookkeeper.client.api">LastConfirmedAndEntry</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readLastAddConfirmedAndEntryAsync-long-long-boolean-">readLastAddConfirmedAndEntryAsync</a></span>(long&nbsp;entryId,
                                  long&nbsp;timeOutInMillis,
@@ -717,30 +723,30 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <div class="block">Asynchronous read specific entry and the latest last add confirmed.</div>
 </td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<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>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readLastAddConfirmedAsync--">readLastAddConfirmedAsync</a></span>()</code>
 <div class="block">Obtains asynchronously the last confirmed write from a quorum of bookies.</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readLastConfirmed--">readLastConfirmed</a></span>()</code>
 <div class="block">Obtains synchronously the last confirmed write from a quorum of bookies.</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerEntry.html" title="class in org.apache.bookkeeper.client">LedgerEntry</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readLastEntry--">readLastEntry</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerEntries.html" title="interface in org.apache.bookkeeper.client.api">LedgerEntries</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readUnconfirmedAsync-long-long-">readUnconfirmedAsync</a></span>(long&nbsp;firstEntry,
                     long&nbsp;lastEntry)</code>
 <div class="block">Read a sequence of entries asynchronously, allowing to read after the LastAddConfirmed range.</div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a>&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerEntry.html" title="class in org.apache.bookkeeper.client">LedgerEntry</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#readUnconfirmedEntries-long-long-">readUnconfirmedEntries</a></span>(long&nbsp;firstEntry,
                       long&nbsp;lastEntry)</code>
@@ -749,48 +755,54 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
  <code>#asyncReadUnconfirmedEntries(long, long, ReadCallback, Object) </code></div>
 </td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i68" class="altColor">
+<td class="colFirst"><code>(package private) void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#recordReadErrorOnBookie-int-">recordReadErrorOnBookie</a></span>(int&nbsp;bookieIndex)</code>
+<div class="block">Notify the LedgerHandle that a read operation was failed on a particular bookie.</div>
+</td>
+</tr>
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#registerOperationFailureOnBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerOperationFailureOnBookie</a></span>(org.apache.bookkeeper.net.BookieSocketAddress&nbsp;bookie,
                                 long&nbsp;entryId)</code>&nbsp;</td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#sendAddSuccessCallbacks--">sendAddSuccessCallbacks</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLastAddConfirmed-long-">setLastAddConfirmed</a></span>(long&nbsp;lac)</code>&nbsp;</td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">setLedgerMetadata</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;expected,
                  org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<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>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#tryReadLastAddConfirmedAsync--">tryReadLastAddConfirmedAsync</a></span>()</code>
 <div class="block">Obtains asynchronously the last confirmed write from a quorum of bookies
  but it doesn't wait all the responses from the quorum.</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#tryReadLastConfirmed--">tryReadLastConfirmed</a></span>()</code>
 <div class="block">Obtains synchronously the last confirmed write from a quorum of bookies.</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#unsetSuccessAndSendWriteRequest-java.util.List-java.util.Set-">unsetSuccessAndSendWriteRequest</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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;ensemble,
                                <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>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bookies)</code>&nbsp;</td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#updateLastConfirmed-long-long-">updateLastConfirmed</a></span>(long&nbsp;lac,
                    long&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#waitForWritable-org.apache.bookkeeper.client.DistributionSchedule.WriteSet-long-int-long-">waitForWritable</a></span>(<a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet,
                long&nbsp;key,
@@ -1120,6 +1132,16 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="recordReadErrorOnBookie-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>recordReadErrorOnBookie</h4>
+<pre>void&nbsp;recordReadErrorOnBookie(int&nbsp;bookieIndex)</pre>
+<div class="block">Notify the LedgerHandle that a read operation was failed on a particular bookie.</div>
+</li>
+</ul>
 <a name="initializeWriteHandleState--">
 <!--   -->
 </a>
@@ -2441,7 +2463,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <a name="getCurrentEnsemble--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getCurrentEnsemble</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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;getCurrentEnsemble()</pre>
@@ -2458,6 +2480,17 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
  There are too many already.</div>
 </li>
 </ul>
+<a name="getWriteSetForReadOperation-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWriteSetForReadOperation</h4>
+<pre><a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;getWriteSetForReadOperation(long&nbsp;entryId)</pre>
+<div class="block">Return a <a href="../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client"><code>DistributionSchedule.WriteSet</code></a> suitable for reading a particular entry.
+ This will include all bookies that are cotna</div>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html
index 0b6645d..0b037aa 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerHandleAdv.html
@@ -309,7 +309,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteAdvHandle.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-byte:A-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-byte:A-int-int-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addToLength-long-">addToLength</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#appendAsync-io.netty.buffer.ByteBuf-">appendAsync</a>, <a href="../../../../org/apache/bookkeeper/client/L [...]
+<code><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-byte:A-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-byte:A-int-int-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addToLength-long-">addToLength</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#appendAsync-io.netty.buffer.ByteBuf-">appendAsync</a>, <a href="../../../../org/apache/bookkeeper/client/L [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
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 8621584..6a78c45 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
@@ -370,7 +370,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/ITopologyAwareEnsem
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;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#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initialize</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a>, <a href="../../../.. [...]
+<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/RackawareEnsemblePlacementPolicyImpl.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html
index d15aa28..b7f87f9 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
@@ -588,6 +588,13 @@ extends <a href="../../../../org/apache/bookkeeper/client/TopologyAwareEnsembleP
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
 <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="htt [...]
 </ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.bookkeeper.client.EnsemblePlacementPolicy">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;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></code></li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html
index 6a39fde..4ba4d32 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html
@@ -310,7 +310,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.bookkeeper.client.<a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client">LedgerHandle</a></h3>
-<code><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-long-byte:A-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-long-byte:A-int-int-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addToLength-long-">addToLength</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#appendAsync-io.netty.buffer.ByteBuf-">appendAsync</a>, <a href="../../../../org/apache/bookkeepe [...]
+<code><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-long-byte:A-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addEntry-long-byte:A-int-int-">addEntry</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#addToLength-long-">addToLength</a>, <a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#appendAsync-io.netty.buffer.ByteBuf-">appendAsync</a>, <a href="../../../../org/apache/bookkeepe [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
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 58f1a1d..742bd25 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
@@ -427,7 +427,7 @@ extends <a href="../../../../org/apache/bookkeeper/client/RackawareEnsemblePlace
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;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#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#updateBookieInfo-java.util.Map-">updateBookieInfo</a></code></li>
+<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#registerSlowBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">registerSlowBookie</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#updateBookieInfo-java.util.Ma [...]
 </ul>
 </li>
 </ul>
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 f9a3382..3f0a360 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&nbsp;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#initialize-org.apache.bookkeeper.conf.ClientConfiguration-java.util.Optional-io.netty.util.HashedWheelTimer-org.apache.bookkeeper.feature.FeatureProvider-org.apache.bookkeeper.stats.StatsLogger-">initialize</a>, <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#newEnsemble-int-int-int-java.util.Map-java.util.Set-">newEnsemble</a>, <a href="../../../../org/apache/bookkeeper/cl [...]
+<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/api/class-use/LedgerMetadata.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html
index 95cc014..db047a7 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/LedgerMetadata.html
@@ -255,10 +255,18 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>default int</code></td>
+<td class="colLast"><span class="typeNameLabel">EnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html#getStickyReadBookieIndex-org.apache.bookkeeper.client.api.LedgerMetadata-java.util.Optional-">getStickyReadBookieIndex</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;currentStickyBookieIndex)</code>
+<div class="block">Select one bookie to the "sticky" bookie where all reads for a particular
+ ledger will be directed to.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.NeedsUpdatePredicate.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html#needsUpdate-org.apache.bookkeeper.client.api.LedgerMetadata-">needsUpdate</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>& [...]
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static <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>&lt;org.apache.bookkeeper.net.BookieSocketAddress&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">EnsembleUtils.</span><code><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</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/BookieWatcher.html" title="interface in org.apache.bookke [...]
                         <a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata,
@@ -266,11 +274,11 @@
                         <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>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,org.apache.bookkeeper.net.BookieSocketAddress&gt;&nbsp;failedBookies,
                         <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>&nbsp;logContext)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataUtils.html#shouldStoreCtime-org.apache.bookkeeper.client.api.LedgerMetadata-">shouldStoreCtime</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.MetadataTransform.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html#transform-org.apache.bookkeeper.client.api.LedgerMetadata-">transform</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/LedgerMetadata.html" title="interface in org.apache.bookkeeper.client.api">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/DistributionSchedule.WriteSet.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/DistributionSchedule.WriteSet.html
index 3b4c824..37cd489 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/DistributionSchedule.WriteSet.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/DistributionSchedule.WriteSet.html
@@ -156,24 +156,30 @@
 </td>
 </tr>
 <tr class="rowColor">
+<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"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#getWriteSetForReadOperation-long-">getWriteSetForReadOperation</a></span>(long&nbsp;entryId)</code>
+<div class="block">Return a <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client"><code>DistributionSchedule.WriteSet</code></a> suitable for reading a particular entry.</div>
+</td>
+</tr>
+<tr 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"><span class="typeNameLabel">DefaultEnsemblePlacementPolicy.</span><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  [...]
                       <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                       <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr 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"><span class="typeNameLabel">TopologyAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.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" t [...]
                       <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                       <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr 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"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.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="cl [...]
                       <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                       <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr 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"><span class="typeNameLabel">EnsemblePlacementPolicy.</span><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 i [...]
                       <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
@@ -181,37 +187,37 @@
 <div class="block">Reorder the read last add confirmed sequence of a given write quorum <i>writeSet</i>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr 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"><span class="typeNameLabel">RegionAwareEnsemblePlacementPolicy.</span><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 [...]
                       <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                       <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr 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"><span class="typeNameLabel">DefaultEnsemblePlacementPolicy.</span><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 int [...]
                    <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                    <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr 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"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><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=" [...]
                    <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                    <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr 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"><span class="typeNameLabel">TopologyAwareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.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=" [...]
                    <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                    <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr 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"><span class="typeNameLabel">RackawareEnsemblePlacementPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicy.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 [...]
                    <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                    <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr 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"><span class="typeNameLabel">EnsemblePlacementPolicy.</span><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 [...]
                    <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
@@ -219,13 +225,13 @@
 <div class="block">Reorder the read sequence of a given write quorum <i>writeSet</i>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr 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"><span class="typeNameLabel">RegionAwareEnsemblePlacementPolicy.</span><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="clas [...]
                    <a href="../../../../../org/apache/bookkeeper/client/BookiesHealthInfo.html" title="interface in org.apache.bookkeeper.client">BookiesHealthInfo</a>&nbsp;bookiesHealthInfo,
                    <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <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"><span class="typeNameLabel">RackawareEnsemblePlacementPolicyImpl.</span><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/ [...]
                              <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a>&nbsp;writeSet,
@@ -237,7 +243,7 @@
 <div class="block">This function orders the read sequence with a given region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/bookkeeper/client/DistributionSchedule.WriteSet.html" title="interface in org.apache.bookkeeper.client">DistributionSchedule.WriteSet</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RoundRobinDistributionSchedule.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/RoundRobinDistributionSchedule.html#writeSetFromValues-java.lang.Integer...-">writeSetFromValues</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>...&nbsp;values)</code>&nbsp;</td>
 </tr>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html
index 9d934e2..25d1cdf 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/ClientConfiguration.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":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":42,"i41":42,"i42":10,"i43":42,"i44":10,"i45":42,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":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":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":42,"i41":42,"i42":10,"i43":42,"i44":10,"i45":42,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10," [...]
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -432,34 +432,38 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#TASK_EXECUTION_WARN_TIME_MICROS">TASK_EXECUTION_WARN_TIME_MICROS</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#STICKY_READS_ENABLED">STICKY_READS_ENABLED</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#THROTTLE">THROTTLE</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TASK_EXECUTION_WARN_TIME_MICROS">TASK_EXECUTION_WARN_TIME_MICROS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#TIMEOUT_MONITOR_INTERVAL_SEC">TIMEOUT_MONITOR_INTERVAL_SEC</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#THROTTLE">THROTTLE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#TIMEOUT_TASK_INTERVAL_MILLIS">TIMEOUT_TASK_INTERVAL_MILLIS</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_MONITOR_INTERVAL_SEC">TIMEOUT_MONITOR_INTERVAL_SEC</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#TIMEOUT_TIMER_NUM_TICKS">TIMEOUT_TIMER_NUM_TICKS</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TASK_INTERVAL_MILLIS">TIMEOUT_TASK_INTERVAL_MILLIS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#TIMEOUT_TIMER_TICK_DURATION_MS">TIMEOUT_TIMER_TICK_DURATION_MS</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_NUM_TICKS">TIMEOUT_TIMER_NUM_TICKS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#USE_V2_WIRE_PROTOCOL">USE_V2_WIRE_PROTOCOL</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#TIMEOUT_TIMER_TICK_DURATION_MS">TIMEOUT_TIMER_TICK_DURATION_MS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#USE_V2_WIRE_PROTOCOL">USE_V2_WIRE_PROTOCOL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected 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/conf/ClientConfiguration.html#WAIT_TIMEOUT_ON_BACKPRESSURE">WAIT_TIMEOUT_ON_BACKPRESSURE</a></span></code>&nbsp;</td>
 </tr>
 </table>
@@ -953,229 +957,235 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 </td>
 </tr>
 <tr id="i71" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#isStickyReadsEnabled--">isStickyReadsEnabled</a></span>()</code>
+<div class="block">If read operation should be sticky to a single bookie or not.</div>
+</td>
+</tr>
+<tr id="i72" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setAddEntryQuorumTimeout-int-">setAddEntryQuorumTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set timeout for top-level add entry request.</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setAddEntryTimeout-int-">setAddEntryTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set timeout for add entry request.</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieErrorThresholdPerInterval-long-">setBookieErrorThresholdPerInterval</a></span>(long&nbsp;thresholdPerInterval)</code>
 <div class="block">Set the error threshold per interval (<a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#getBookieHealthCheckIntervalSeconds--"><code>getBookieHealthCheckIntervalSeconds()</code></a>) for a bookie before it is
  quarantined.</div>
 </td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieFailureHistoryExpirationMSec-int-">setBookieFailureHistoryExpirationMSec</a></span>(int&nbsp;expirationMSec)</code>
 <div class="block">Set the bookie failure tracking expiration timeout.</div>
 </td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieHealthCheckInterval-int-java.util.concurrent.TimeUnit-">setBookieHealthCheckInterval</a></span>(int&nbsp;interval,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
 <div class="block">Set the bookie health check interval.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieMaxWeightMultipleForWeightBasedPlacement-int-">setBookieMaxWeightMultipleForWeightBasedPlacement</a></span>(int&nbsp;multiple)</code>
 <div class="block">Set the max multiple to use for nodes with very high weight.</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieQuarantineTime-int-java.util.concurrent.TimeUnit-">setBookieQuarantineTime</a></span>(int&nbsp;quarantineTime,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
 <div class="block">Set the time for which a bookie will be quarantined.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieRecoveryDigestType-org.apache.bookkeeper.client.BookKeeper.DigestType-">setBookieRecoveryDigestType</a></span>(<a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType)</code>
 <div class="block">Set digest type used in bookkeeper admin.</div>
 </td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setBookieRecoveryPasswd-byte:A-">setBookieRecoveryPasswd</a></span>(byte[]&nbsp;passwd)</code>
 <div class="block">Set passwd used in bookkeeper admin.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientConnectTimeoutMillis-int-">setClientConnectTimeoutMillis</a></span>(int&nbsp;connectTimeoutMillis)</code>
 <div class="block">Set client netty connect timeout in millis.</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientReceiveBufferSize-int-">setClientReceiveBufferSize</a></span>(int&nbsp;bufferSize)</code>
 <div class="block">Set client netty channel receive buffer size.</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientRole-java.lang.String-">setClientRole</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>&nbsp;role)</code>
 <div class="block">Set the client role.</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientSendBufferSize-int-">setClientSendBufferSize</a></span>(int&nbsp;bufferSize)</code>
 <div class="block">Set client netty channel send buffer size.</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientSockKeepalive-boolean-">setClientSockKeepalive</a></span>(boolean&nbsp;keepalive)</code>
 <div class="block">Set socket keepalive setting.</div>
 </td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientTcpNoDelay-boolean-">setClientTcpNoDelay</a></span>(boolean&nbsp;noDelay)</code>
 <div class="block">Set socket nodelay setting.</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientWriteBufferHighWaterMark-int-">setClientWriteBufferHighWaterMark</a></span>(int&nbsp;waterMark)</code>
 <div class="block">Set client netty channel write buffer high water mark.</div>
 </td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setClientWriteBufferLowWaterMark-int-">setClientWriteBufferLowWaterMark</a></span>(int&nbsp;waterMark)</code>
 <div class="block">Set client netty channel write buffer low water mark.</div>
 </td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setDelayEnsembleChange-boolean-">setDelayEnsembleChange</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable/Disable delaying ensemble change.</div>
 </td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setDisableEnsembleChangeFeatureName-java.lang.String-">setDisableEnsembleChangeFeatureName</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>&nbsp;disableEnsembleChangeFeatureName)</code>
 <div class="block">Set the name of the dynamic feature that disables ensemble change.</div>
 </td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setDiskWeightBasedPlacementEnabled-boolean-">setDiskWeightBasedPlacementEnabled</a></span>(boolean&nbsp;isEnabled)</code>
 <div class="block">Set whether or not disk weight based placement is enabled.</div>
 </td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setEnableBookieFailureTracking-boolean-">setEnableBookieFailureTracking</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable/Disable bookie failure tracking.</div>
 </td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setEnableDigestTypeAutodetection-boolean-">setEnableDigestTypeAutodetection</a></span>(boolean&nbsp;enable)</code>
 <div class="block">Enable autodetection of digest type.</div>
 </td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setEnableParallelRecoveryRead-boolean-">setEnableParallelRecoveryRead</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable/Disable parallel reading in recovery read.</div>
 </td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setEnableTaskExecutionStats-boolean-">setEnableTaskExecutionStats</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable/Disable recording task execution stats.</div>
 </td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setEnsemblePlacementPolicy-java.lang.Class-">setEnsemblePlacementPolicy</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/bookkeeper/client/EnsemblePlacementPolicy.html" title="interface in org.apache.bookkeeper.client [...]
 <div class="block">Set Ensemble Placement Policy Class.</div>
 </td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setEnsemblePlacementPolicySlowBookies-boolean-">setEnsemblePlacementPolicySlowBookies</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable/Disable ordering slow bookies in placement policy.</div>
 </td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setExplictLacInterval-int-">setExplictLacInterval</a></span>(int&nbsp;interval)</code>
 <div class="block">Set the interval to check the need for sending an explicit LAC.</div>
 </td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setFirstSpeculativeReadLACTimeout-int-">setFirstSpeculativeReadLACTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set the period of time after which the first speculative read last add confirmed and entry
  should be triggered.</div>
 </td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setFirstSpeculativeReadTimeout-int-">setFirstSpeculativeReadTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set the first speculative read timeout.</div>
 </td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setGetBookieInfoIntervalSeconds-int-java.util.concurrent.TimeUnit-">setGetBookieInfoIntervalSeconds</a></span>(int&nbsp;pollInterval,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
 <div class="block">Set the time interval between successive polls for bookie get info.</div>
 </td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setGetBookieInfoRetryIntervalSeconds-int-java.util.concurrent.TimeUnit-">setGetBookieInfoRetryIntervalSeconds</a></span>(int&nbsp;interval,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
 <div class="block">Set the time interval between retries on unsuccessful GetInfo requests.</div>
 </td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setGetBookieInfoTimeout-int-">setGetBookieInfoTimeout</a></span>(int&nbsp;timeoutSecs)</code>
 <div class="block">Set the timeout value in secs for the GET_BOOKIE_INFO request.</div>
 </td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setMaxAllowedEnsembleChanges-int-">setMaxAllowedEnsembleChanges</a></span>(int&nbsp;num)</code>
 <div class="block">Set the max allowed ensemble change number.</div>
 </td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setMaxSpeculativeReadLACTimeout-int-">setMaxSpeculativeReadLACTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set the maximum interval between successive speculative read last add confirmed and entry
  requests.</div>
 </td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setMaxSpeculativeReadTimeout-int-">setMaxSpeculativeReadTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set the max speculative read timeout.</div>
 </td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setNettyMaxFrameSizeBytes-int-">setNettyMaxFrameSizeBytes</a></span>(int&nbsp;maxSize)</code>
 <div class="block">Set the max number of bytes a single message can be that is read by the bookie.</div>
 </td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setNettyUsePooledBuffers-boolean-">setNettyUsePooledBuffers</a></span>(boolean&nbsp;enabled)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -1183,49 +1193,49 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 </div>
 </td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setNetworkTopologyStabilizePeriodSeconds-int-">setNetworkTopologyStabilizePeriodSeconds</a></span>(int&nbsp;seconds)</code>
 <div class="block">Set the network topology stabilize period in seconds.</div>
 </td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setNumChannelsPerBookie-int-">setNumChannelsPerBookie</a></span>(int&nbsp;numChannelsPerBookie)</code>
 <div class="block">Set num channels per bookie.</div>
 </td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setNumIOThreads-int-">setNumIOThreads</a></span>(int&nbsp;numThreads)</code>
 <div class="block">Set the number of IO threads.</div>
 </td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setNumWorkerThreads-int-">setNumWorkerThreads</a></span>(int&nbsp;numThreads)</code>
 <div class="block">Set the number of worker threads.</div>
 </td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setPCBCTimeoutTimerNumTicks-int-">setPCBCTimeoutTimerNumTicks</a></span>(int&nbsp;numTicks)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setPCBCTimeoutTimerTickDurationMs-long-">setPCBCTimeoutTimerTickDurationMs</a></span>(long&nbsp;tickDuration)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setReadEntryTimeout-int-">setReadEntryTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set the timeout for read entry request.</div>
 </td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setReadTimeout-int-">setReadTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -1233,13 +1243,13 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 </div>
 </td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setRecoveryReadBatchSize-int-">setRecoveryReadBatchSize</a></span>(int&nbsp;batchSize)</code>
 <div class="block">Set Recovery Read Batch Size.</div>
 </td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setRegistrationClientClass-java.lang.Class-">setRegistrationClientClass</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.bookkeeper.discover.RegistrationClient&gt;&nbsp;regClientClass)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -1247,134 +1257,141 @@ extends <a href="../../../../org/apache/bookkeeper/conf/AbstractConfiguration.ht
 </div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setReorderReadSequenceEnabled-boolean-">setReorderReadSequenceEnabled</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable/disable reordering read sequence on reading entries.</div>
 </td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setReorderThresholdPendingRequests-int-">setReorderThresholdPendingRequests</a></span>(int&nbsp;threshold)</code>
 <div class="block">Set the threshold for the number of pending requests beyond which to reorder
  reads.</div>
 </td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setSpeculativeReadLACTimeoutBackoffMultiplier-float-">setSpeculativeReadLACTimeoutBackoffMultiplier</a></span>(float&nbsp;speculativeReadLACTimeoutBackoffMultiplier)</code>
 <div class="block">Set the multipler to use when determining time between successive speculative read LAC requests.</div>
 </td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setSpeculativeReadTimeout-int-">setSpeculativeReadTimeout</a></span>(int&nbsp;timeout)</code>
 <div class="block">Set the speculative read timeout.</div>
 </td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setSpeculativeReadTimeoutBackoffMultiplier-float-">setSpeculativeReadTimeoutBackoffMultiplier</a></span>(float&nbsp;speculativeReadTimeoutBackoffMultiplier)</code>
 <div class="block">Set the multipler to use when determining time between successive speculative read requests.</div>
 </td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setStartTLSTimeout-int-">setStartTLSTimeout</a></span>(int&nbsp;timeoutSecs)</code>
 <div class="block">Set the timeout value in secs for the START_TLS request.</div>
 </td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i125" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setStickyReadsEnabled-boolean-">setStickyReadsEnabled</a></span>(boolean&nbsp;enabled)</code>
+<div class="block">Enable/disable having read operations for a ledger to be sticky to
+ a single bookie.</div>
+</td>
+</tr>
+<tr id="i126" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setStoreSystemtimeAsLedgerCreationTime-boolean-">setStoreSystemtimeAsLedgerCreationTime</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable the client to use system time as the ledger creation time.</div>
 </td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTaskExecutionWarnTimeMicros-long-">setTaskExecutionWarnTimeMicros</a></span>(long&nbsp;warnTime)</code>
 <div class="block">Set task execution duration which triggers a warning.</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setThrottleValue-int-">setThrottleValue</a></span>(int&nbsp;throttle)</code>
 <div class="block">Set throttle value.</div>
 </td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutMonitorIntervalSec-long-">setTimeoutMonitorIntervalSec</a></span>(long&nbsp;timeoutInterval)</code>
 <div class="block">Set the interval between successive executions of the operation timeout monitor.</div>
 </td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutTaskIntervalMillis-long-">setTimeoutTaskIntervalMillis</a></span>(long&nbsp;timeoutMillis)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i131" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutTimerNumTicks-int-">setTimeoutTimerNumTicks</a></span>(int&nbsp;numTicks)</code>
 <div class="block">Set number of ticks that used for timeout timer.</div>
 </td>
 </tr>
-<tr id="i130" class="altColor">
+<tr id="i132" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutTimerTickDurationMs-long-">setTimeoutTimerTickDurationMs</a></span>(long&nbsp;tickDuration)</code>
 <div class="block">Set the tick duration in milliseconds that used for timeout timer.</div>
 </td>
 </tr>
-<tr id="i131" class="rowColor">
+<tr id="i133" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSCertificatePath-java.lang.String-">setTLSCertificatePath</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>&nbsp;arg)</code>
 <div class="block">Set the path to file containing TLS Certificate.</div>
 </td>
 </tr>
-<tr id="i132" class="altColor">
+<tr id="i134" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSKeyStore-java.lang.String-">setTLSKeyStore</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>&nbsp;arg)</code>
 <div class="block">Set the keystore path for the client.</div>
 </td>
 </tr>
-<tr id="i133" class="rowColor">
+<tr id="i135" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSKeyStorePasswordPath-java.lang.String-">setTLSKeyStorePasswordPath</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>&nbsp;arg)</code>
 <div class="block">Set the path to file containing keystore password, if the client keystore is password protected.</div>
 </td>
 </tr>
-<tr id="i134" class="altColor">
+<tr id="i136" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSKeyStoreType-java.lang.String-">setTLSKeyStoreType</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>&nbsp;arg)</code>
 <div class="block">Set the keystore type for client.</div>
 </td>
 </tr>
-<tr id="i135" class="rowColor">
+<tr id="i137" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSTrustStore-java.lang.String-">setTLSTrustStore</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>&nbsp;arg)</code>
 <div class="block">Set the truststore path for the client.</div>
 </td>
 </tr>
-<tr id="i136" class="altColor">
+<tr id="i138" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSTrustStorePasswordPath-java.lang.String-">setTLSTrustStorePasswordPath</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>&nbsp;arg)</code>
 <div class="block">Set the path to file containing truststore password, if the client truststore is password protected.</div>
 </td>
 </tr>
-<tr id="i137" class="rowColor">
+<tr id="i139" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSTrustStoreType-java.lang.String-">setTLSTrustStoreType</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>&nbsp;arg)</code>
 <div class="block">Set the truststore type for client.</div>
 </td>
 </tr>
-<tr id="i138" class="altColor">
+<tr id="i140" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setUseV2WireProtocol-boolean-">setUseV2WireProtocol</a></span>(boolean&nbsp;useV2WireProtocol)</code>
 <div class="block">Set whether or not to use older Bookkeeper wire protocol (no protobuf).</div>
 </td>
 </tr>
-<tr id="i139" class="rowColor">
+<tr id="i141" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setWaitTimeoutOnBackpressureMillis-long-">setWaitTimeoutOnBackpressureMillis</a></span>(long&nbsp;value)</code>
 <div class="block">Timeout controlling wait on request send in case of unresponsive bookie(s)
@@ -1846,6 +1863,19 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 </dl>
 </li>
 </ul>
+<a name="STICKY_READS_ENABLED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>STICKY_READS_ENABLED</h4>
+<pre>protected static final&nbsp;<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> STICKY_READS_ENABLED</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.bookkeeper.conf.ClientConfiguration.STICKY_READS_ENABLED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="DELAY_ENSEMBLE_CHANGE">
 <!--   -->
 </a>
@@ -3679,6 +3709,44 @@ public&nbsp;<a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.
 </dl>
 </li>
 </ul>
+<a name="isStickyReadsEnabled--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isStickyReadsEnabled</h4>
+<pre>public&nbsp;boolean&nbsp;isStickyReadsEnabled()</pre>
+<div class="block">If read operation should be sticky to a single bookie or not.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if reorder read sequence is enabled, otherwise false.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStickyReadsEnabled-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStickyReadsEnabled</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a>&nbsp;setStickyReadsEnabled(boolean&nbsp;enabled)</pre>
+<div class="block">Enable/disable having read operations for a ledger to be sticky to
+ a single bookie.
+
+ <p>If this flag is enabled, the client will use one single bookie (by
+ preference) to read all entries for a ledger.
+
+ <p>Having all the read to one bookie will increase the chances that
+ a read request will be fullfilled by Bookie read cache (or OS file
+ system cache) when doing sequential reads.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>enabled</code> - the flag to enable/disable sticky reads.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>client configuration instance.</dd>
+</dl>
+</li>
+</ul>
 <a name="getEnsemblePlacementPolicy--">
 <!--   -->
 </a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/class-use/ClientConfiguration.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/class-use/ClientConfiguration.html
index 5e50b57..c6fcd24 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/class-use/ClientConfiguration.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/conf/class-use/ClientConfiguration.html
@@ -662,95 +662,102 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setStickyReadsEnabled-boolean-">setStickyReadsEnabled</a></span>(boolean&nbsp;enabled)</code>
+<div class="block">Enable/disable having read operations for a ledger to be sticky to
+ a single bookie.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setStoreSystemtimeAsLedgerCreationTime-boolean-">setStoreSystemtimeAsLedgerCreationTime</a></span>(boolean&nbsp;enabled)</code>
 <div class="block">Enable the client to use system time as the ledger creation time.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTaskExecutionWarnTimeMicros-long-">setTaskExecutionWarnTimeMicros</a></span>(long&nbsp;warnTime)</code>
 <div class="block">Set task execution duration which triggers a warning.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setThrottleValue-int-">setThrottleValue</a></span>(int&nbsp;throttle)</code>
 <div class="block">Set throttle value.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutMonitorIntervalSec-long-">setTimeoutMonitorIntervalSec</a></span>(long&nbsp;timeoutInterval)</code>
 <div class="block">Set the interval between successive executions of the operation timeout monitor.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutTaskIntervalMillis-long-">setTimeoutTaskIntervalMillis</a></span>(long&nbsp;timeoutMillis)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutTimerNumTicks-int-">setTimeoutTimerNumTicks</a></span>(int&nbsp;numTicks)</code>
 <div class="block">Set number of ticks that used for timeout timer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTimeoutTimerTickDurationMs-long-">setTimeoutTimerTickDurationMs</a></span>(long&nbsp;tickDuration)</code>
 <div class="block">Set the tick duration in milliseconds that used for timeout timer.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSCertificatePath-java.lang.String-">setTLSCertificatePath</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>&nbsp;arg)</code>
 <div class="block">Set the path to file containing TLS Certificate.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSKeyStore-java.lang.String-">setTLSKeyStore</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>&nbsp;arg)</code>
 <div class="block">Set the keystore path for the client.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSKeyStorePasswordPath-java.lang.String-">setTLSKeyStorePasswordPath</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>&nbsp;arg)</code>
 <div class="block">Set the path to file containing keystore password, if the client keystore is password protected.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSKeyStoreType-java.lang.String-">setTLSKeyStoreType</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>&nbsp;arg)</code>
 <div class="block">Set the keystore type for client.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSTrustStore-java.lang.String-">setTLSTrustStore</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>&nbsp;arg)</code>
 <div class="block">Set the truststore path for the client.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSTrustStorePasswordPath-java.lang.String-">setTLSTrustStorePasswordPath</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>&nbsp;arg)</code>
 <div class="block">Set the path to file containing truststore password, if the client truststore is password protected.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setTLSTrustStoreType-java.lang.String-">setTLSTrustStoreType</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>&nbsp;arg)</code>
 <div class="block">Set the truststore type for client.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setUseV2WireProtocol-boolean-">setUseV2WireProtocol</a></span>(boolean&nbsp;useV2WireProtocol)</code>
 <div class="block">Set whether or not to use older Bookkeeper wire protocol (no protobuf).</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html" title="class in org.apache.bookkeeper.conf">ClientConfiguration</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClientConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/conf/ClientConfiguration.html#setWaitTimeoutOnBackpressureMillis-long-">setWaitTimeoutOnBackpressureMillis</a></span>(long&nbsp;value)</code>
 <div class="block">Timeout controlling wait on request send in case of unresponsive bookie(s)