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 2018/11/12 20:40:37 UTC

[bookkeeper] branch asf-site updated: Updated site at revision 9fd28d0

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 c8b20e3  Updated site at revision 9fd28d0
c8b20e3 is described below

commit c8b20e3789e52832ab44b69370ef1b35f41012c9
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Nov 12 20:40:35 2018 +0000

    Updated site at revision 9fd28d0
---
 content/docs/latest/api/javadoc/index-all.html     |  52 +++----
 .../BookKeeperAdmin.ReadMetadataCallback.html      |  14 +-
 .../apache/bookkeeper/client/LedgerCreateOp.html   |  14 +-
 .../org/apache/bookkeeper/client/LedgerHandle.html |  97 ++++++------
 .../apache/bookkeeper/client/LedgerHandleAdv.html  |  10 +-
 .../apache/bookkeeper/client/LedgerMetadata.html   | 130 ++++------------
 .../bookkeeper/client/LedgerMetadataBuilder.html   |  78 ++++++----
 .../org/apache/bookkeeper/client/LedgerOpenOp.html |  14 +-
 .../MetadataUpdateLoop.LocalValueUpdater.html      |  10 +-
 .../bookkeeper/client/MetadataUpdateLoop.html      |   8 +-
 .../ReadOnlyLedgerHandle.MetadataUpdater.html      |  10 +-
 .../bookkeeper/client/ReadOnlyLedgerHandle.html    |  22 +--
 .../client/api/class-use/DigestType.html           |   9 +-
 .../bookkeeper/client/api/class-use/WriteFlag.html |   8 +-
 .../client/class-use/BookKeeper.DigestType.html    |  12 +-
 .../bookkeeper/client/class-use/ClientContext.html |  12 +-
 .../client/class-use/LedgerMetadata.html           | 166 +++++++++++----------
 .../client/class-use/LedgerMetadataBuilder.html    |  30 ++--
 .../MetadataUpdateLoop.LocalValueUpdater.html      |   2 +-
 .../MetadataUpdateLoop.MetadataTransform.html      |   2 +-
 .../MetadataUpdateLoop.NeedsUpdatePredicate.html   |   2 +-
 .../apache/bookkeeper/client/package-summary.html  |   4 +-
 .../org/apache/bookkeeper/client/package-use.html  |   4 +-
 .../InterfaceAudience.LimitedPrivate.html          |  26 ++++
 .../class-use/InterfaceStability.Unstable.html     |  26 ++++
 .../bookkeeper/common/annotation/package-use.html  |  17 ++-
 26 files changed, 386 insertions(+), 393 deletions(-)

diff --git a/content/docs/latest/api/javadoc/index-all.html b/content/docs/latest/api/javadoc/index-all.html
index badd135..4e6dc68 100644
--- a/content/docs/latest/api/javadoc/index-all.html
+++ b/content/docs/latest/api/javadoc/index-all.html
@@ -3767,10 +3767,8 @@
 <dd>
 <div class="block">Get whether the bookie is configured to double check prior to gc.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#getVersion--">getVersion()</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>
-<div class="block">Returns the last version.</div>
-</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#getVersionedLedgerMetadata--">getVersionedLedgerMetadata()</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#getWaitTimeoutOnBackpressureMillis--">getWaitTimeoutOnBackpressureMillis()</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">Timeout controlling wait on request send in case of unresponsive bookie(s)
@@ -4218,10 +4216,6 @@
 <dd>
 <div class="block">Option to use Netty Pooled ByteBufs.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#isNewerThan-org.apache.bookkeeper.client.LedgerMetadata-">isNewerThan(LedgerMetadata)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>
-<div class="block">Is the metadata newer than given <i>newMeta</i>.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#isPersistBookieStatusEnabled--">isPersistBookieStatusEnabled()</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>
 <div class="block">Get whether to persist the bookie status so that when bookie server restarts,
@@ -4513,7 +4507,7 @@
 <div class="block">Ledger handle contains ledger metadata and is used to access the read and
  write operations to a ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle(ClientContext, long, LedgerMetadata, BookKeeper.DigestType, byte[], EnumSet&lt;WriteFlag&gt;)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerHandl [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle(ClientContext, long, Versioned&lt;LedgerMetadata&gt;, BookKeeper.DigestType, byte[], EnumSet&lt;WriteFlag&gt;)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/cl [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/LedgerHandle.LastConfirmedCtx.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandle.LastConfirmedCtx</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
 <dd>
@@ -4526,7 +4520,7 @@
 <div class="block">Ledger Advanced handle extends <a href="org/apache/bookkeeper/client/LedgerHandle.html" title="class in org.apache.bookkeeper.client"><code>LedgerHandle</code></a> to provide API to add entries with
  user supplied entryIds.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv(ClientContext, long, LedgerMetadata, BookKeeper.DigestType, byte[], EnumSet&lt;WriteFlag&gt;)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/Le [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv(ClientContext, long, Versioned&lt;LedgerMetadata&gt;, BookKeeper.DigestType, byte[], EnumSet&lt;WriteFlag&gt;)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/book [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/LedgerHandleAdv.PendingOpsComparator.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerHandleAdv.PendingOpsComparator</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
 <dd>&nbsp;</dd>
@@ -4575,7 +4569,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.Map-boolean-">LedgerMetadata(int, int, int, BookKeeper.DigestType, byte[], Map&lt;String, byte[]&gt;, boolean)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.versioning.Version-">LedgerMetadata(int, int, int, DataFormats.LedgerMetadataFormat.State, Optional&lt;Long&gt;, Optional&lt;Long&gt;, Ma [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-">LedgerMetadata(int, int, int, DataFormats.LedgerMetadataFormat.State, Optional&lt;Long&gt;, Optional&lt;Long&gt;, Map&lt;Long, List&lt;BookieSocketAddress&gt [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-">LedgerMetadata(int, int, int, BookKeeper.DigestType, byte[])</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
 <dd>
@@ -4586,7 +4580,9 @@
 <div class="block">Copy Constructor.</div>
 </dd>
 <dt><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerMetadataBuilder</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Builder for building LedgerMetadata objects.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#LedgerMetadataBuilder--">LedgerMetadataBuilder()</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">LedgerOpenOp</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
@@ -4880,7 +4876,7 @@
 <dd>
 <div class="block">Mechanism to safely update the metadata of a ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop(LedgerManager, long, Supplier&lt;LedgerMetadata&gt;, MetadataUpdateLoop.NeedsUpdat [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop(LedgerManager, long, Supplier&lt;Versioned&lt;LedgerMetadata&gt;&gt;, MetadataUpda [...]
 <dd>
 <div class="block">Construct the loop.</div>
 </dd>
@@ -4890,7 +4886,7 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client"><span class="typeNameLink">MetadataUpdateLoop.NeedsUpdatePredicate</span></a> - Interface in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.client.LedgerMetadata-">MetadataUpdater(LedgerMetadata)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html" title="class in org.apache.bookkeeper.client">ReadOnlyLedgerHandle.MetadataUpdater</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">MetadataUpdater(Versioned&lt;LedgerMetadata&gt;)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html" title="class in org.apache.bookkeeper.client">ReadOnlyLedgerHandle.MetadataUpdater</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/BKException.Code.html#MetadataVersionException">MetadataVersionException</a></span> - Static variable in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/BKException.Code.html" title="interface in org.apache.bookkeeper.client.api">BKException.Code</a></dt>
 <dd>
@@ -5169,7 +5165,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html#onBookieRackChange-java.util.List-">onBookieRackChange(List&lt;BookieSocketAddress&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.client.LedgerMetadata-">onChanged(long, LedgerMetadata)</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>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.versioning.Versioned-">onChanged(long, Versioned&lt;LedgerMetadata&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/DefaultEnsemblePlacementPolicy.html#onClusterChanged-java.util.Set-java.util.Set-">onClusterChanged(Set&lt;BookieSocketAddress&gt;, Set&lt;BookieSocketAddress&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/DefaultEnsemblePlacementPolicy.html" title="class in org.apache.bookkeeper.client">DefaultEnsemblePlacementPolicy</a></dt>
 <dd>&nbsp;</dd>
@@ -5236,13 +5232,13 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerOpenOp.html#openOpLogger">openOpLogger</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete(int, LedgerMetadata)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin.ReadMetadataCallback</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete(int, Versioned&lt;LedgerMetadata&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html" title="class in org.apache.bookkeeper.client">BookKeeperAdmin.ReadMetadataCallback</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerCreateOp.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete(int, LedgerMetadata)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerCreateOp.html" title="class in org.apache.bookkeeper.client">LedgerCreateOp</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerCreateOp.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete(int, Versioned&lt;LedgerMetadata&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerCreateOp.html" title="class in org.apache.bookkeeper.client">LedgerCreateOp</a></dt>
 <dd>
 <div class="block">Callback when created ledger.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerOpenOp.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete(int, LedgerMetadata)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerOpenOp.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete(int, Versioned&lt;LedgerMetadata&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></dt>
 <dd>
 <div class="block">Implements Open Ledger Callback.</div>
 </dd>
@@ -11522,7 +11518,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.html#parentPredicate">parentPredicate</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble.html" title="class in org.apache.bookkeeper.client">TopologyAwareEnsemblePlacementPolicy.RRTopologyAwareCoverageEnsemble</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-org.apache.bookkeeper.versioning.Version-com.google.common.base.Optional-">parseConfig(byte[], Version, Optional&lt;Long&gt;)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-com.google.common.base.Optional-">parseConfig(byte[], Optional&lt;Long&gt;)</a></span> - Static method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
 <dd>
 <div class="block">Parses a given byte array and transforms into a LedgerConfig object.</div>
 </dd>
@@ -11917,7 +11913,7 @@
 <dd>
 <div class="block">Read only ledger handle.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle(ClientContext, long, LedgerMetadata, BookKeeper.DigestType, byte[], boolean)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ReadOnlyLedger [...]
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle(ClientContext, long, Versioned&lt;LedgerMetadata&gt;, BookKeeper.DigestType, byte[], boolean)</a></span> - Constructor for class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/clien [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html" title="class in org.apache.bookkeeper.client"><span class="typeNameLink">ReadOnlyLedgerHandle.MetadataUpdater</span></a> - Class in <a href="org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></dt>
 <dd>&nbsp;</dd>
@@ -12311,8 +12307,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/PendingReadOp.html#requiredBookiesMissingEntryForRecovery">requiredBookiesMissingEntryForRecovery</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>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#rereadMetadata-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">rereadMetadata(BookkeeperInternalCallbacks.GenericCallback&lt;LedgerMetadata&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#REREPLICATION_ENTRY_BATCH_SIZE">REREPLICATION_ENTRY_BATCH_SIZE</a></span> - Static variable 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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DefaultResolver.html#resolve-java.util.List-">resolve(List&lt;String&gt;)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.DefaultResolver.html" title="class in org.apache.bookkeeper.client">RackawareEnsemblePlacementPolicyImpl.DefaultResolver</a></dt>
@@ -12951,7 +12945,7 @@
 <div class="block"><span class="deprecationComment">replaced by <a href="org/apache/bookkeeper/conf/AbstractConfiguration.html#setLedgerManagerFactoryClass-java.lang.Class-"><code>AbstractConfiguration.setLedgerManagerFactoryClass(java.lang.Class&lt;? extends org.apache.bookkeeper.meta.LedgerManagerFactory&gt;)</code></a></span></div>
 </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">setLedgerMetadata(LedgerMetadata, LedgerMetadata)</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>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">setLedgerMetadata(Versioned&lt;LedgerMetadata&gt;, Versioned&lt;LedgerMetadata&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#setLedgerStorageClass-java.lang.String-">setLedgerStorageClass(String)</a></span> - Method in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>
@@ -13520,10 +13514,6 @@
 <dd>
 <div class="block">Set whether the bookie is configured to double check prior to gc.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#setVersion-org.apache.bookkeeper.versioning.Version-">setVersion(Version)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>
-<div class="block">Updates the version of this metadata.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ClientConfiguration.html#setWaitTimeoutOnBackpressureMillis-long-">setWaitTimeoutOnBackpressureMillis(long)</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">Timeout controlling wait on request send in case of unresponsive bookie(s)
@@ -14361,7 +14351,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html#updatePiggyBackedLac-long-">updatePiggyBackedLac(long)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html" title="interface in org.apache.bookkeeper.client">ExplicitLacFlushPolicy</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">updateValue(LedgerMetadata, LedgerMetadata)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue(Versioned&lt;LedgerMetadata&gt;, Versioned&lt;LedgerMetadata&gt;)</a></span> - Method in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">Metadata [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#USE_HOST_NAME_AS_BOOKIE_ID">USE_HOST_NAME_AS_BOOKIE_ID</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>&nbsp;</dd>
@@ -14459,8 +14449,6 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/conf/ServerConfiguration.html#VERIFY_METADATA_ON_GC">VERIFY_METADATA_ON_GC</a></span> - Static variable in class org.apache.bookkeeper.conf.<a href="org/apache/bookkeeper/conf/ServerConfiguration.html" title="class in org.apache.bookkeeper.conf">ServerConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#version">version</a></span> - Variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadata.html#VERSION_KEY">VERSION_KEY</a></span> - Static variable in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html#VOID_EXPLICITLAC_FLUSH_POLICY">VOID_EXPLICITLAC_FLUSH_POLICY</a></span> - Static variable in interface org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/ExplicitLacFlushPolicy.html" title="interface in org.apache.bookkeeper.client">ExplicitLacFlushPolicy</a></dt>
@@ -14527,6 +14515,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerCreateOp.CreateBuilderImpl.html#withDigestType-org.apache.bookkeeper.client.api.DigestType-">withDigestType(DigestType)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerCreateOp.CreateBuilderImpl.html" title="class in org.apache.bookkeeper.client">LedgerCreateOp.CreateBuilderImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withDigestType-org.apache.bookkeeper.client.api.DigestType-">withDigestType(DigestType)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/CreateBuilder.html#withEnsembleSize-int-">withEnsembleSize(int)</a></span> - Method in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/CreateBuilder.html" title="interface in org.apache.bookkeeper.client.api">CreateBuilder</a></dt>
 <dd>
 <div class="block">Set the number of bookies which will receive data for this ledger.</div>
@@ -14665,8 +14655,6 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/PendingWriteLacOp.html#writeLacComplete-int-long-org.apache.bookkeeper.net.BookieSocketAddress-java.lang.Object-">writeLacComplete(int, long, BookieSocketAddress, Object)</a></span> - Method in class org.apache.bookkeeper.client.<a href="org/apache/bookkeeper/client/PendingWriteLacOp.html" title="class in org.apache.bookkeeper.client">PendingWriteLacOp</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/LedgerHandle.html#writeLedgerConfig-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">writeLedgerConfig(BookkeeperInternalCallbacks.GenericCallback&lt;LedgerMetadata&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/stats/prometheus/PrometheusTextFormatUtil.html#writeMetricsCollectedByPrometheusClient-java.io.Writer-io.prometheus.client.CollectorRegistry-">writeMetricsCollectedByPrometheusClient(Writer, CollectorRegistry)</a></span> - Static method in class org.apache.bookkeeper.stats.prometheus.<a href="org/apache/bookkeeper/stats/prometheus/PrometheusTextFormatUtil.html" title="class in org.apache.bookkeeper.stats.prometheus">Promethe [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/bookkeeper/client/api/BKException.Code.html#WriteOnReadOnlyBookieException">WriteOnReadOnlyBookieException</a></span> - Static variable in interface org.apache.bookkeeper.client.api.<a href="org/apache/bookkeeper/client/api/BKException.Code.html" title="interface in org.apache.bookkeeper.client.api">BKException.Code</a></dt>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html
index b229b00..93aa709 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>com.google.common.util.concurrent.ListenableFuture&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMet [...]
+<dd>com.google.common.util.concurrent.ListenableFuture&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMet [...]
 </dl>
 <dl>
 <dt>Enclosing class:</dt>
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>static class <span class="typeNameLabel">BookKeeperAdmin.ReadMetadataCallback</span>
 extends com.google.common.util.concurrent.AbstractFuture&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;
-implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</pre>
+implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</pre>
 </li>
 </ul>
 </div>
@@ -185,8 +185,8 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallba
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete</a></span>(int&nbsp;rc,
-                 <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;result)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete</a></span>(int&nbsp;rc,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;result)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -260,17 +260,17 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallba
 <pre>long&nbsp;getLedgerId()</pre>
 </li>
 </ul>
-<a name="operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>operationComplete</h4>
 <pre>public&nbsp;void&nbsp;operationComplete(int&nbsp;rc,
-                              <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;result)</pre>
+                              org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;result)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>operationComplete</code>&nbsp;in interface&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></dd>
+<dd><code>operationComplete</code>&nbsp;in interface&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></dd>
 </dl>
 </li>
 </ul>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html
index 334529a..232ab19 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerCreateOp.html
@@ -109,13 +109,13 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</dd>
+<dd>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</dd>
 </dl>
 <hr>
 <br>
 <pre>class <span class="typeNameLabel">LedgerCreateOp</span>
 extends <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>
-implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</pre>
+implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</pre>
 <div class="block">Encapsulates asynchronous ledger create operation.</div>
 </li>
 </ul>
@@ -276,8 +276,8 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallba
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete</a></span>(int&nbsp;rc,
-                 <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;writtenMetadata)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete</a></span>(int&nbsp;rc,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;writtenMetadata)</code>
 <div class="block">Callback when created ledger.</div>
 </td>
 </tr>
@@ -516,18 +516,18 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallba
 <div class="block">Initiates the operation to return LedgerHandleAdv.</div>
 </li>
 </ul>
-<a name="operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>operationComplete</h4>
 <pre>public&nbsp;void&nbsp;operationComplete(int&nbsp;rc,
-                              <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;writtenMetadata)</pre>
+                              org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;writtenMetadata)</pre>
 <div class="block">Callback when created ledger.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>operationComplete</code>&nbsp;in interface&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></dd>
+<dd><code>operationComplete</code>&nbsp;in interface&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></dd>
 </dl>
 </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 a388e1d..2073dac 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";
@@ -292,9 +292,9 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -643,69 +643,73 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </td>
 </tr>
 <tr id="i47" class="rowColor">
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandle.html#getVersionedLedgerMetadata--">getVersionedLedgerMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i48" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;</code></td>
 <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="i48" class="altColor">
+<tr id="i49" 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#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="i49" class="rowColor">
+<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#handleUnrecoverableErrorDuringAdd-int-">handleUnrecoverableErrorDuringAdd</a></span>(int&nbsp;rc)</code>&nbsp;</td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i51" 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#hasDelayedWriteFailedBookies--">hasDelayedWriteFailedBookies</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i52" class="altColor">
 <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="i52" class="altColor">
+<tr id="i53" class="rowColor">
 <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="i53" class="rowColor">
+<tr id="i54" 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#isHandleWritable--">isHandleWritable</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" 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#maybeHandleDelayedWriteBookieFailure--">maybeHandleDelayedWriteBookieFailure</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#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="i56" class="altColor">
+<tr id="i57" 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="../../../../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="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <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="i58" class="altColor">
+<tr id="i59" class="rowColor">
 <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="i59" class="rowColor">
+<tr id="i60" class="altColor">
 <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="i60" class="altColor">
+<tr id="i61" 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="../../../../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,
@@ -713,30 +717,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="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="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="i62" class="altColor">
+<tr id="i63" class="rowColor">
 <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="i63" class="rowColor">
+<tr id="i64" class="altColor">
 <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="i64" class="altColor">
+<tr id="i65" 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="../../../../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="i65" class="rowColor">
+<tr id="i66" class="altColor">
 <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>
@@ -745,15 +749,11 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
  <code>#asyncReadUnconfirmedEntries(long, long, ReadCallback, Object) </code></div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i67" 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="i67" 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#rereadMetadata-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">rereadMetadata</a></span>(org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;cb)</code>&nbsp;</td>
-</tr>
 <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#sendAddSuccessCallbacks--">sendAddSuccessCallbacks</a></span>()</code>&nbsp;</td>
@@ -764,8 +764,8 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </tr>
 <tr id="i70" 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.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">setLedgerMetadata</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;expected,
-                 <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMetadata)</code>&nbsp;</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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;expected,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
 </tr>
 <tr id="i71" 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>
@@ -797,10 +797,6 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
                int&nbsp;allowedNonWritableCount,
                long&nbsp;durationMs)</code>&nbsp;</td>
 </tr>
-<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#writeLedgerConfig-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">writeLedgerConfig</a></span>(org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;writeCb)</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -1095,7 +1091,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">
+<a name="LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -1103,7 +1099,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 <h4>LedgerHandle</h4>
 <pre>LedgerHandle(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
              long&nbsp;ledgerId,
-             <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+             org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
              <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
              byte[]&nbsp;password,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)
@@ -1240,14 +1236,23 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </dl>
 </li>
 </ul>
-<a name="setLedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="getVersionedLedgerMetadata--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersionedLedgerMetadata</h4>
+<pre>org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;getVersionedLedgerMetadata()</pre>
+</li>
+</ul>
+<a name="setLedgerMetadata-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setLedgerMetadata</h4>
-<pre>boolean&nbsp;setLedgerMetadata(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;expected,
-                          <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMetadata)</pre>
+<pre>boolean&nbsp;setLedgerMetadata(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;expected,
+                          org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</pre>
 </li>
 </ul>
 <a name="getCustomMetadata--">
@@ -1381,15 +1386,6 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
 </dl>
 </li>
 </ul>
-<a name="writeLedgerConfig-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>writeLedgerConfig</h4>
-<pre>void&nbsp;writeLedgerConfig(org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;writeCb)</pre>
-</li>
-</ul>
 <a name="close--">
 <!--   -->
 </a>
@@ -2432,15 +2428,6 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteHandle.htm
                                      <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)</pre>
 </li>
 </ul>
-<a name="rereadMetadata-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>rereadMetadata</h4>
-<pre>void&nbsp;rereadMetadata(org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;cb)</pre>
-</li>
-</ul>
 <a name="registerOperationFailureOnBookie-org.apache.bookkeeper.net.BookieSocketAddress-long-">
 <!--   -->
 </a>
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 5bdc4d2..e402271 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
@@ -194,9 +194,9 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteAdvHandle.
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -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">
@@ -384,7 +384,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteAdvHandle.
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">
+<a name="LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -392,7 +392,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/WriteAdvHandle.
 <h4>LedgerHandleAdv</h4>
 <pre>LedgerHandleAdv(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                 long&nbsp;ledgerId,
-                <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                 <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                 byte[]&nbsp;password,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadata.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadata.html
index 405e982..a26d1d4 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadata.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadata.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"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":9,"i31":9,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10};
+var methods = {"i0":10,"i1":9,"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":9,"i29":9,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -155,10 +155,6 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#storeSystemtimeAsLedgerCreationTime">storeSystemtimeAsLedgerCreationTime</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Version</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#version">version</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#VERSION_KEY">VERSION_KEY</a></span></code>&nbsp;</td>
 </tr>
@@ -195,7 +191,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
               boolean&nbsp;storeSystemtimeAsLedgerCreationTime)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.versioning.Version-">LedgerMetadata</a></span>(int&nbsp;ensembleSize,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-">LedgerMetadata</a></span>(int&nbsp;ensembleSize,
               int&nbsp;writeQuorumSize,
               int&nbsp;ackQuorumSize,
               org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State&nbsp;state,
@@ -205,8 +201,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
               <a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType,
               <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;byte[]&gt;&nbsp;password,
               <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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;ctime,
-              <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata,
-              org.apache.bookkeeper.versioning.Version&nbsp;version)</code>&nbsp;</td>
+              <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">LedgerMetadata</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>
@@ -343,109 +338,90 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#getState--">getState</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i22" class="altColor">
-<td class="colFirst"><code>org.apache.bookkeeper.versioning.Version</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#getVersion--">getVersion</a></span>()</code>
-<div class="block">Returns the last version.</div>
-</td>
-</tr>
-<tr id="i23" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#getWriteQuorumSize--">getWriteQuorumSize</a></span>()</code>
 <div class="block">Returns the write quorum size of this ledger.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#hasPassword--">hasPassword</a></span>()</code>
 <div class="block">In versions 4.1.0 and below, the digest type and password were not
  stored in the metadata.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#isClosed--">isClosed</a></span>()</code>
 <div class="block">Returns whether the ledger is sealed or not.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#isInRecovery--">isInRecovery</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i27" class="rowColor">
-<td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#isNewerThan-org.apache.bookkeeper.client.LedgerMetadata-">isNewerThan</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMeta)</code>
-<div class="block">Is the metadata newer than given <i>newMeta</i>.</div>
-</td>
-</tr>
-<tr id="i28" class="altColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#markLedgerInRecovery--">markLedgerInRecovery</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#mergeEnsembles-java.util.SortedMap-">mergeEnsembles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</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>,? extends <a hr [...]
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-org.apache.bookkeeper.versioning.Version-com.google.common.base.Optional-">parseConfig</a></span>(byte[]&nbsp;bytes,
-           org.apache.bookkeeper.versioning.Version&nbsp;version,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-com.google.common.base.Optional-">parseConfig</a></span>(byte[]&nbsp;bytes,
            com.google.common.base.Optional&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;&nbsp;msCtime)</code>
 <div class="block">Parses a given byte array and transforms into a LedgerConfig object.</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#parseVersion1Config-org.apache.bookkeeper.client.LedgerMetadata-java.io.BufferedReader-">parseVersion1Config</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;lc,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html?is-external=true" title="class or interface in java.io">BufferedReader</a>&nbsp;reader)</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#serialize--">serialize</a></span>()</code>
 <div class="block">Generates a byte array of this object.</div>
 </td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#serialize-boolean-">serialize</a></span>(boolean&nbsp;withPassword)</code>&nbsp;</td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#setCtime-long-">setCtime</a></span>(long&nbsp;ctime)</code>&nbsp;</td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#setCustomMetadata-java.util.Map-">setCustomMetadata</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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customM [...]
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#setEnsembles-java.util.Map-">setEnsembles</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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,? extends <a href="https://docs.oracl [...]
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#setLength-long-">setLength</a></span>(long&nbsp;length)</code>&nbsp;</td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#setState-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-">setState</a></span>(org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#setVersion-org.apache.bookkeeper.versioning.Version-">setVersion</a></span>(org.apache.bookkeeper.versioning.Version&nbsp;v)</code>
-<div class="block">Updates the version of this metadata.</div>
-</td>
-</tr>
-<tr id="i40" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#toSafeString--">toSafeString</a></span>()</code>
 <div class="block">Returns a string representation of this LedgerMetadata object by
  filtering out the password field.</div>
 </td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html#updateEnsemble-long-java.util.List-">updateEnsemble</a></span>(long&nbsp;startEntryId,
               <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)</code>&nbsp;</td>
@@ -523,21 +499,12 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
 <a name="storeSystemtimeAsLedgerCreationTime">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>storeSystemtimeAsLedgerCreationTime</h4>
 <pre>boolean storeSystemtimeAsLedgerCreationTime</pre>
 </li>
 </ul>
-<a name="version">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>version</h4>
-<pre>volatile&nbsp;org.apache.bookkeeper.versioning.Version version</pre>
-</li>
-</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -561,7 +528,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
                       boolean&nbsp;storeSystemtimeAsLedgerCreationTime)</pre>
 </li>
 </ul>
-<a name="LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.versioning.Version-">
+<a name="LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -577,8 +544,7 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
                <a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType,
                <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;byte[]&gt;&nbsp;password,
                <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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;ctime,
-               <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata,
-               org.apache.bookkeeper.versioning.Version&nbsp;version)</pre>
+               <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</pre>
 </li>
 </ul>
 <a name="LedgerMetadata-int-int-int-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-">
@@ -1007,21 +973,19 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
 <pre>public&nbsp;byte[]&nbsp;serialize(boolean&nbsp;withPassword)</pre>
 </li>
 </ul>
-<a name="parseConfig-byte:A-org.apache.bookkeeper.versioning.Version-com.google.common.base.Optional-">
+<a name="parseConfig-byte:A-com.google.common.base.Optional-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>parseConfig</h4>
 <pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;parseConfig(byte[]&nbsp;bytes,
-                                         org.apache.bookkeeper.versioning.Version&nbsp;version,
                                          com.google.common.base.Optional&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;&nbsp;msCtime)
                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Parses a given byte array and transforms into a LedgerConfig object.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>bytes</code> - byte array to parse</dd>
-<dd><code>version</code> - version of the ledger metadata</dd>
 <dd><code>msCtime</code> - metadata store creation time, used for legacy ledgers</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>LedgerConfig</dd>
@@ -1045,50 +1009,6 @@ implements <a href="../../../../org/apache/bookkeeper/client/api/LedgerMetadata.
 </dl>
 </li>
 </ul>
-<a name="setVersion-org.apache.bookkeeper.versioning.Version-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setVersion</h4>
-<pre>public&nbsp;void&nbsp;setVersion(org.apache.bookkeeper.versioning.Version&nbsp;v)</pre>
-<div class="block">Updates the version of this metadata.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>v</code> - Version</dd>
-</dl>
-</li>
-</ul>
-<a name="getVersion--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getVersion</h4>
-<pre>public&nbsp;org.apache.bookkeeper.versioning.Version&nbsp;getVersion()</pre>
-<div class="block">Returns the last version.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>version</dd>
-</dl>
-</li>
-</ul>
-<a name="isNewerThan-org.apache.bookkeeper.client.LedgerMetadata-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isNewerThan</h4>
-<pre>boolean&nbsp;isNewerThan(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMeta)</pre>
-<div class="block">Is the metadata newer than given <i>newMeta</i>.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>newMeta</code> - the metadata to compare</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>true if <i>this</i> is newer than <i>newMeta</i>, false otherwise</dd>
-</dl>
-</li>
-</ul>
 <a name="areByteArrayValMapsEqual-java.util.Map-java.util.Map-">
 <!--   -->
 </a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html
index 35e2f38..feeed52 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerMetadataBuilder.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,8 +109,11 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>class <span class="typeNameLabel">LedgerMetadataBuilder</span>
+<pre><a href="../../../../org/apache/bookkeeper/common/annotation/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.bookkeeper.common.annotation">@InterfaceAudience.LimitedPrivate</a>
+ <a href="../../../../org/apache/bookkeeper/common/annotation/InterfaceStability.Unstable.html" title="annotation in org.apache.bookkeeper.common.annotation">@InterfaceStability.Unstable</a>
+public class <span class="typeNameLabel">LedgerMetadataBuilder</span>
 extends <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></pre>
+<div class="block">Builder for building LedgerMetadata objects.</div>
 </li>
 </ul>
 </div>
@@ -147,50 +150,54 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#build--">build</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#closingAt-long-long-">closingAt</a></span>(long&nbsp;lastEntryId,
          long&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code>static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#create--">create</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code>static <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.LedgerMetadata-">from</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#newEnsembleEntry-long-java.util.List-">newEnsembleEntry</a></span>(long&nbsp;firstEntry,
                 <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)</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#replaceEnsembleEntry-long-java.util.List-">replaceEnsembleEntry</a></span>(long&nbsp;firstEntry,
                     <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)</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withAckQuorumSize-int-">withAckQuorumSize</a></span>(int&nbsp;ackQuorumSize)</code>&nbsp;</td>
 </tr>
 <tr id="i7" class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withEnsembleSize-int-">withEnsembleSize</a></span>(int&nbsp;ensembleSize)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withDigestType-org.apache.bookkeeper.client.api.DigestType-">withDigestType</a></span>(<a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType)</code>&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withInRecoveryState--">withInRecoveryState</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withEnsembleSize-int-">withEnsembleSize</a></span>(int&nbsp;ensembleSize)</code>&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withPassword-byte:A-">withPassword</a></span>(byte[]&nbsp;password)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withInRecoveryState--">withInRecoveryState</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i10" class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withPassword-byte:A-">withPassword</a></span>(byte[]&nbsp;password)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withWriteQuorumSize-int-">withWriteQuorumSize</a></span>(int&nbsp;writeQuorumSize)</code>&nbsp;</td>
 </tr>
 </table>
@@ -221,7 +228,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LedgerMetadataBuilder</h4>
-<pre>LedgerMetadataBuilder()</pre>
+<pre>public&nbsp;LedgerMetadataBuilder()</pre>
 </li>
 </ul>
 </li>
@@ -238,7 +245,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>create</h4>
-<pre>static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;create()</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;create()</pre>
 </li>
 </ul>
 <a name="from-org.apache.bookkeeper.client.LedgerMetadata-">
@@ -247,7 +254,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>from</h4>
-<pre>static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;from(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;from(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</pre>
 </li>
 </ul>
 <a name="withPassword-byte:A-">
@@ -256,7 +263,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>withPassword</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withPassword(byte[]&nbsp;password)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withPassword(byte[]&nbsp;password)</pre>
+</li>
+</ul>
+<a name="withDigestType-org.apache.bookkeeper.client.api.DigestType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withDigestType</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withDigestType(<a href="../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType)</pre>
 </li>
 </ul>
 <a name="withEnsembleSize-int-">
@@ -265,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>withEnsembleSize</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withEnsembleSize(int&nbsp;ensembleSize)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withEnsembleSize(int&nbsp;ensembleSize)</pre>
 </li>
 </ul>
 <a name="withWriteQuorumSize-int-">
@@ -274,7 +290,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>withWriteQuorumSize</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withWriteQuorumSize(int&nbsp;writeQuorumSize)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withWriteQuorumSize(int&nbsp;writeQuorumSize)</pre>
 </li>
 </ul>
 <a name="withAckQuorumSize-int-">
@@ -283,7 +299,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>withAckQuorumSize</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withAckQuorumSize(int&nbsp;ackQuorumSize)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withAckQuorumSize(int&nbsp;ackQuorumSize)</pre>
 </li>
 </ul>
 <a name="newEnsembleEntry-long-java.util.List-">
@@ -292,8 +308,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>newEnsembleEntry</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;newEnsembleEntry(long&nbsp;firstEntry,
-                                       <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)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;newEnsembleEntry(long&nbsp;firstEntry,
+                                              <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)</pre>
 </li>
 </ul>
 <a name="replaceEnsembleEntry-long-java.util.List-">
@@ -302,8 +318,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>replaceEnsembleEntry</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;replaceEnsembleEntry(long&nbsp;firstEntry,
-                                           <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)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;replaceEnsembleEntry(long&nbsp;firstEntry,
+                                                  <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)</pre>
 </li>
 </ul>
 <a name="withInRecoveryState--">
@@ -312,7 +328,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>withInRecoveryState</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withInRecoveryState()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;withInRecoveryState()</pre>
 </li>
 </ul>
 <a name="closingAt-long-long-">
@@ -321,8 +337,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>closingAt</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;closingAt(long&nbsp;lastEntryId,
-                                long&nbsp;length)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;closingAt(long&nbsp;lastEntryId,
+                                       long&nbsp;length)</pre>
 </li>
 </ul>
 <a name="build--">
@@ -331,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>build</h4>
-<pre><a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;build()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;build()</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html
index dadc142..c482b66 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/LedgerOpenOp.html
@@ -109,13 +109,13 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</dd>
+<dd>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</dd>
 </dl>
 <hr>
 <br>
 <pre>class <span class="typeNameLabel">LedgerOpenOp</span>
 extends <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>
-implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</pre>
+implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</pre>
 <div class="block">Encapsulates the ledger open operation.</div>
 </li>
 </ul>
@@ -272,8 +272,8 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallba
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete</a></span>(int&nbsp;rc,
-                 <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete</a></span>(int&nbsp;rc,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata)</code>
 <div class="block">Implements Open Ledger Callback.</div>
 </td>
 </tr>
@@ -490,18 +490,18 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallba
 <div class="block">Inititates the ledger open operation without recovery.</div>
 </li>
 </ul>
-<a name="operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>operationComplete</h4>
 <pre>public&nbsp;void&nbsp;operationComplete(int&nbsp;rc,
-                              <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</pre>
+                              org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata)</pre>
 <div class="block">Implements Open Ledger Callback.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>operationComplete</code>&nbsp;in interface&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></dd>
+<dd><code>operationComplete</code>&nbsp;in interface&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></dd>
 </dl>
 </li>
 </ul>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html
index f1d5806..60e84ea 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html
@@ -126,8 +126,8 @@ var activeTableTab = "activeTableTab";
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">updateValue</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;oldValue,
-           <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newValue)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;oldValue,
+           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -144,14 +144,14 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="updateValue-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateValue</h4>
-<pre>boolean&nbsp;updateValue(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;oldValue,
-                    <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newValue)</pre>
+<pre>boolean&nbsp;updateValue(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;oldValue,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newValue)</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
index 80cd787..101cf49 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/MetadataUpdateLoop.html
@@ -191,7 +191,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerManag [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
@@ -214,7 +214,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" 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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<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;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#run--">run</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -264,7 +264,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <h4>MetadataUpdateLoop</h4>
 <pre>MetadataUpdateLoop(org.apache.bookkeeper.meta.LedgerManager&nbsp;lm,
                    long&nbsp;ledgerId,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;currentLocalValue,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                    <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                    <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                    <a href="../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</pre>
@@ -298,7 +298,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre><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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;run()</pre>
+<pre><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;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;run()</pre>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html
index b6871ee..964a075 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html
@@ -143,7 +143,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#newMetadata">newMetadata</a></span></code>&nbsp;</td>
 </tr>
 </table>
@@ -168,7 +168,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.client.LedgerMetadata-">MetadataUpdater</a></span>(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">MetadataUpdater</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -235,7 +235,7 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>newMetadata</h4>
-<pre>final&nbsp;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a> newMetadata</pre>
+<pre>final&nbsp;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt; newMetadata</pre>
 </li>
 </ul>
 </li>
@@ -246,13 +246,13 @@ extends org.apache.bookkeeper.util.SafeRunnable</pre>
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="MetadataUpdater-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetadataUpdater</h4>
-<pre>MetadataUpdater(<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</pre>
+<pre>MetadataUpdater(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata)</pre>
 </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 4b75d06..cd16674 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
@@ -184,9 +184,9 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                     long&nbsp;ledgerId,
-                    <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
@@ -257,7 +257,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 </td>
 </tr>
 <tr id="i7" class="rowColor">
-<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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<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;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#closeRecovered--">closeRecovered</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
@@ -283,8 +283,8 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 </tr>
 <tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.client.LedgerMetadata-">onChanged</a></span>(long&nbsp;lid,
-         <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMetadata)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.versioning.Versioned-">onChanged</a></span>(long&nbsp;lid,
+         org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>
 <div class="block">Triggered each time ledger metadata changed.</div>
 </td>
 </tr>
@@ -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">
@@ -347,7 +347,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">
+<a name="ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -355,7 +355,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <h4>ReadOnlyLedgerHandle</h4>
 <pre>ReadOnlyLedgerHandle(<a href="../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                      long&nbsp;ledgerId,
-                     <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                     org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                      <a href="../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                      byte[]&nbsp;password,
                      boolean&nbsp;watch)
@@ -537,14 +537,14 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 </dl>
 </li>
 </ul>
-<a name="onChanged-long-org.apache.bookkeeper.client.LedgerMetadata-">
+<a name="onChanged-long-org.apache.bookkeeper.versioning.Versioned-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>onChanged</h4>
 <pre>public&nbsp;void&nbsp;onChanged(long&nbsp;lid,
-                      <a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMetadata)</pre>
+                      org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadataListener</code></span></div>
 <div class="block">Triggered each time ledger metadata changed.</div>
 <dl>
@@ -660,7 +660,7 @@ implements org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.LedgerMetadat
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRecovered</h4>
-<pre><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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;closeRecovered()</pre>
+<pre><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;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;closeRecovered()</pre>
 </li>
 </ul>
 <a name="getCurrentEnsemble--">
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html
index 8015ed3..35b8c15 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/DigestType.html
@@ -141,6 +141,10 @@
 <td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/api/CreateBuilder.html" title="interface in org.apache.bookkeeper.client.api">CreateBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerCreateOp.CreateBuilderImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerCreateOp.CreateBuilderImpl.html#withDigestType-org.apache.bookkeeper.client.api.DigestType-">withDigestType</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withDigestType-org.apache.bookkeeper.client.api.DigestType-">withDigestType</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
@@ -150,7 +154,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.versioning.Version-">LedgerMetadata</a></span>(int&nbsp;ensembleSize,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-int-int-int-org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State-java.util.Optional-java.util.Optional-java.util.Map-org.apache.bookkeeper.client.api.DigestType-java.util.Optional-java.util.Optional-java.util.Map-">LedgerMetadata</a></span>(int&nbsp;ensembleSize,
               int&nbsp;writeQuorumSize,
               int&nbsp;ackQuorumSize,
               org.apache.bookkeeper.proto.DataFormats.LedgerMetadataFormat.State&nbsp;state,
@@ -160,8 +164,7 @@
               <a href="../../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType,
               <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;byte[]&gt;&nbsp;password,
               <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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;ctime,
-              <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata,
-              org.apache.bookkeeper.versioning.Version&nbsp;version)</code>&nbsp;</td>
+              <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;customMetadata)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html
index 4209f55..6413f40 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/api/class-use/WriteFlag.html
@@ -182,17 +182,17 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            <a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbs [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp [...]
                long&nbsp;ledgerId,
-               <a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html
index c152629..251b3c7 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/BookKeeper.DigestType.html
@@ -340,17 +340,17 @@ the order they are declared.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -385,9 +385,9 @@ the order they are declared.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp; [...]
                     long&nbsp;ledgerId,
-                    <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html
index 1dbf2fe..40e985c 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/ClientContext.html
@@ -173,17 +173,17 @@
                           <a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
@@ -224,9 +224,9 @@
                            long&nbsp;timeOutInMillis)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp; [...]
                     long&nbsp;ledgerId,
-                    <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadata.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadata.html
index 7563dca..d063b78 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadata.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadata.html
@@ -112,8 +112,17 @@
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerRecoveryOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerRecoveryOp.html#metadataForRecovery">metadataForRecovery</a></span></code>&nbsp;</td>
 </tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type parameters of type <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.MetadataUpdater.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#newMetadata">newMetadata</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
@@ -126,7 +135,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#build--">build</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -157,8 +166,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-org.apache.bookkeeper.versioning.Version-com.google.common.base.Optional-">parseConfig</a></span>(byte[]&nbsp;bytes,
-           org.apache.bookkeeper.versioning.Version&nbsp;version,
+<td class="colLast"><span class="typeNameLabel">LedgerMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#parseConfig-byte:A-com.google.common.base.Optional-">parseConfig</a></span>(byte[]&nbsp;bytes,
            com.google.common.base.Optional&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;&nbsp;msCtime)</code>
 <div class="block">Parses a given byte array and transforms into a LedgerConfig object.</div>
 </td>
@@ -182,7 +190,7 @@
 </tr>
 <tbody>
 <tr 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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<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;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#closeRecovered--">closeRecovered</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -190,7 +198,11 @@
 <td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.html#getLedgersContainBookies-java.util.Set-">getLedgersContainBookies</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;bookies)</code>&nbsp;</td>
 </tr>
 <tr 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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#getVersionedLedgerMetadata--">getVersionedLedgerMetadata</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<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;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#run--">run</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
@@ -209,49 +221,19 @@
                                    <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;ledgerMetadata)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.LedgerMetadata-">from</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#isNewerThan-org.apache.bookkeeper.client.LedgerMetadata-">isNewerThan</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMeta)</code>
-<div class="block">Is the metadata newer than given <i>newMeta</i>.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <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.LedgerMetadata-">needsUpdate</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.client.LedgerMetadata-">onChanged</a></span>(long&nbsp;lid,
-         <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMetadata)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerCreateOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete</a></span>(int&nbsp;rc,
-                 <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;writtenMetadata)</code>
-<div class="block">Callback when created ledger.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.ReadMetadataCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete</a></span>(int&nbsp;rc,
-                 <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;result)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerOpenOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerOpenOp.html#operationComplete-int-org.apache.bookkeeper.client.LedgerMetadata-">operationComplete</a></span>(int&nbsp;rc,
-                 <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>
-<div class="block">Implements Open Ledger Callback.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#parseVersion1Config-org.apache.bookkeeper.client.LedgerMetadata-java.io.BufferedReader-">parseVersion1Config</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;lc,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html?is-external=true" title="class or interface in java.io">BufferedReader</a>&nbsp;reader)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <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.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.bookkeeper.clien [...]
                         <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
@@ -259,20 +241,10 @@
                         <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="altColor">
-<td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#setLedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">setLedgerMetadata</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;expected,
-                 <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newMetadata)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">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.LedgerMetadata-">transform</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.LocalValueUpdater.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">updateValue</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;o [...]
-           <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;newValue)</code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -288,12 +260,48 @@
                              org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</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>,<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apach [...]
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) void</code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#rereadMetadata-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">rereadMetadata</a></span>(org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMe [...]
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReadOnlyLedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#onChanged-long-org.apache.bookkeeper.versioning.Versioned-">onChanged</a></span>(long&nbsp;lid,
+         org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) void</code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#writeLedgerConfig-org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback-">writeLedgerConfig</a></span>(org.apache.bookkeeper.proto.BookkeeperInternalCallbacks.GenericCallback&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">Le [...]
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerCreateOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerCreateOp.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete</a></span>(int&nbsp;rc,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;writtenMetadata)</code>
+<div class="block">Callback when created ledger.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BookKeeperAdmin.ReadMetadataCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/BookKeeperAdmin.ReadMetadataCallback.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete</a></span>(int&nbsp;rc,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;result)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerOpenOp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerOpenOp.html#operationComplete-int-org.apache.bookkeeper.versioning.Versioned-">operationComplete</a></span>(int&nbsp;rc,
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata)</code>
+<div class="block">Implements Open Ledger Callback.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a [...]
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerHandle.</span><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/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a [...]
+                 org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.LocalValueUpdater.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache. [...]
+           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">MetadataUpdateLoop.LocalValueUpdater.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html#updateValue-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.versioning.Versioned-">updateValue</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache. [...]
+           org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;newValue)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -304,57 +312,57 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">LedgerMetadata</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>
+<div class="block">Copy Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type arguments of type <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandle.html#LedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
             long&nbsp;ledgerId,
-            <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+            org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;versionedMetadata,
             <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
             byte[]&nbsp;password,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerHandleAdv.html#LedgerHandleAdv-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-java.util.EnumSet-">LedgerHandleAdv</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp;clientCtx,
                long&nbsp;ledgerId,
-               <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+               org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                byte[]&nbsp;password,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/api/WriteFlag.html" title="enum in org.apache.bookkeeper.client.api">WriteFlag</a>&gt;&nbsp;writeFlags)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html#LedgerMetadata-org.apache.bookkeeper.client.LedgerMetadata-">LedgerMetadata</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>
-<div class="block">Copy Constructor.</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
+                  long&nbsp;ledgerId,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
+                  <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
+                  <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
+                  <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
+<div class="block">Construct the loop.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.client.LedgerMetadata-">MetadataUpdater</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.MetadataUpdater.html#MetadataUpdater-org.apache.bookkeeper.versioning.Versioned-">MetadataUpdater</a></span>(org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.client.LedgerMetadata-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/ReadOnlyLedgerHandle.html#ReadOnlyLedgerHandle-org.apache.bookkeeper.client.ClientContext-long-org.apache.bookkeeper.versioning.Versioned-org.apache.bookkeeper.client.BookKeeper.DigestType-byte:A-boolean-">ReadOnlyLedgerHandle</a></span>(<a href="../../../../../org/apache/bookkeeper/client/ClientContext.html" title="interface in org.apache.bookkeeper.client">ClientContext</a>&nbsp; [...]
                     long&nbsp;ledgerId,
-                    <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;metadata,
+                    org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;metadata,
                     <a href="../../../../../org/apache/bookkeeper/client/BookKeeper.DigestType.html" title="enum in org.apache.bookkeeper.client">BookKeeper.DigestType</a>&nbsp;digestType,
                     byte[]&nbsp;password,
                     boolean&nbsp;watch)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructor parameters in <a href="../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with type arguments of type <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
-                  long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;currentLocalValue,
-                  <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
-                  <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
-                  <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
-<div class="block">Construct the loop.</div>
-</td>
-</tr>
-</tbody>
-</table>
 </li>
 </ul>
 </li>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html
index 29b2d95..4c3906c 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html
@@ -105,46 +105,50 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#closingAt-long-long-">closingAt</a></span>(long&nbsp;lastEntryId,
          long&nbsp;length)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#create--">create</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code>static <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#from-org.apache.bookkeeper.client.LedgerMetadata-">from</a></span>(<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&nbsp;other)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#newEnsembleEntry-long-java.util.List-">newEnsembleEntry</a></span>(long&nbsp;firstEntry,
                 <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)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#replaceEnsembleEntry-long-java.util.List-">replaceEnsembleEntry</a></span>(long&nbsp;firstEntry,
                     <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)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withAckQuorumSize-int-">withAckQuorumSize</a></span>(int&nbsp;ackQuorumSize)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withEnsembleSize-int-">withEnsembleSize</a></span>(int&nbsp;ensembleSize)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withDigestType-org.apache.bookkeeper.client.api.DigestType-">withDigestType</a></span>(<a href="../../../../../org/apache/bookkeeper/client/api/DigestType.html" title="enum in org.apache.bookkeeper.client.api">DigestType</a>&nbsp;digestType)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withInRecoveryState--">withInRecoveryState</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withEnsembleSize-int-">withEnsembleSize</a></span>(int&nbsp;ensembleSize)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withPassword-byte:A-">withPassword</a></span>(byte[]&nbsp;password)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withInRecoveryState--">withInRecoveryState</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withPassword-byte:A-">withPassword</a></span>(byte[]&nbsp;password)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">LedgerMetadataBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html#withWriteQuorumSize-int-">withWriteQuorumSize</a></span>(int&nbsp;writeQuorumSize)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html
index 80a6970..4b05af6 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.LocalValueUpdater.html
@@ -106,7 +106,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html
index a4522ca..47f84e4 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.MetadataTransform.html
@@ -106,7 +106,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html
index 3cc9e5d..fae0f0a 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/class-use/MetadataUpdateLoop.NeedsUpdatePredicate.html
@@ -106,7 +106,7 @@
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.html#MetadataUpdateLoop-org.apache.bookkeeper.meta.LedgerManager-long-java.util.function.Supplier-org.apache.bookkeeper.client.MetadataUpdateLoop.NeedsUpdatePredicate-org.apache.bookkeeper.client.MetadataUpdateLoop.MetadataTransform-org.apache.bookkeeper.client.MetadataUpdateLoop.LocalValueUpdater-">MetadataUpdateLoop</a></span>(org.apache.bookkeeper.meta.LedgerM [...]
                   long&nbsp;ledgerId,
-                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&nbsp;currentLocalValue,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;org.apache.bookkeeper.versioning.Versioned&lt;<a href="../../../../../org/apache/bookkeeper/client/LedgerMetadata.html" title="class in org.apache.bookkeeper.client">LedgerMetadata</a>&gt;&gt;&nbsp;currentLocalValue,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.NeedsUpdatePredicate.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.NeedsUpdatePredicate</a>&nbsp;needsTransformation,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.MetadataTransform.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.MetadataTransform</a>&nbsp;transform,
                   <a href="../../../../../org/apache/bookkeeper/client/MetadataUpdateLoop.LocalValueUpdater.html" title="interface in org.apache.bookkeeper.client">MetadataUpdateLoop.LocalValueUpdater</a>&nbsp;updateLocalValue)</code>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html
index 80b2b15..a54db96 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-summary.html
@@ -498,7 +498,9 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></td>
-<td class="colLast">&nbsp;</td>
+<td class="colLast">
+<div class="block">Builder for building LedgerMetadata objects.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/bookkeeper/client/LedgerOpenOp.html" title="class in org.apache.bookkeeper.client">LedgerOpenOp</a></td>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html
index af03faf..5d333fb 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/client/package-use.html
@@ -328,7 +328,9 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html#org.apache.bookkeeper.client">LedgerMetadataBuilder</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerMetadataBuilder.html#org.apache.bookkeeper.client">LedgerMetadataBuilder</a>
+<div class="block">Builder for building LedgerMetadata objects.</div>
+</td>
 </tr>
 <tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/bookkeeper/client/class-use/LedgerReader.ReadResult.html#org.apache.bookkeeper.client">LedgerReader.ReadResult</a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.LimitedPrivate.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.LimitedPrivate.html
index 66463c8..bb52b56 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.LimitedPrivate.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.LimitedPrivate.html
@@ -83,6 +83,12 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.bookkeeper.client">org.apache.bookkeeper.client</a></td>
+<td class="colLast">
+<div class="block">BookKeeper Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.bookkeeper.client.api">org.apache.bookkeeper.client.api</a></td>
 <td class="colLast">
 <div class="block">BookKeeper Client Public API.</div>
@@ -93,6 +99,26 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
+<li class="blockList"><a name="org.apache.bookkeeper.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/bookkeeper/common/annotation/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.bookkeeper.common.annotation">InterfaceAudience.LimitedPrivate</a> in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with annotations of type <a href="../../../../../../org/apache/bookkeeper/common/annotation/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.bookkeeper.common.annotation">InterfaceAudience.LimitedPrivate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></span></code>
+<div class="block">Builder for building LedgerMetadata objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.bookkeeper.client.api">
 <!--   -->
 </a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Unstable.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Unstable.html
index e93a19a..53831d2 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Unstable.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Unstable.html
@@ -83,6 +83,12 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.bookkeeper.client">org.apache.bookkeeper.client</a></td>
+<td class="colLast">
+<div class="block">BookKeeper Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.bookkeeper.client.api">org.apache.bookkeeper.client.api</a></td>
 <td class="colLast">
 <div class="block">BookKeeper Client Public API.</div>
@@ -93,6 +99,26 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
+<li class="blockList"><a name="org.apache.bookkeeper.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/bookkeeper/common/annotation/InterfaceStability.Unstable.html" title="annotation in org.apache.bookkeeper.common.annotation">InterfaceStability.Unstable</a> in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/bookkeeper/client/package-summary.html">org.apache.bookkeeper.client</a> with annotations of type <a href="../../../../../../org/apache/bookkeeper/common/annotation/InterfaceStability.Unstable.html" title="annotation in org.apache.bookkeeper.common.annotation">InterfaceStability.Unstable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/bookkeeper/client/LedgerMetadataBuilder.html" title="class in org.apache.bookkeeper.client">LedgerMetadataBuilder</a></span></code>
+<div class="block">Builder for building LedgerMetadata objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.bookkeeper.client.api">
 <!--   -->
 </a>
diff --git a/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/package-use.html b/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/package-use.html
index 5afc81b..4d4fffb 100644
--- a/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/package-use.html
+++ b/content/docs/latest/api/javadoc/org/apache/bookkeeper/common/annotation/package-use.html
@@ -119,26 +119,37 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.LimitedPrivate.html#org.apache.bookkeeper.client">InterfaceAudience.LimitedPrivate</a>
+<div class="block">Intended for use only within the project(s) specified in the annotation.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.Private.html#org.apache.bookkeeper.client">InterfaceAudience.Private</a>
 <div class="block">Intended for use only within bookkeeper itself.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/common/annotation/class-use/InterfaceAudience.Public.html#org.apache.bookkeeper.client">InterfaceAudience.Public</a>
 <div class="block">Intended for use by any project or application.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Evolving.html#org.apache.bookkeeper.client">InterfaceStability.Evolving</a>
 <div class="block">Evolving, but can break compatibility at minor release (i.e.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Stable.html#org.apache.bookkeeper.client">InterfaceStability.Stable</a>
 <div class="block">Can evolve while retaining compatibility for minor release boundaries.;
  can break compatibility only at major release (ie.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/bookkeeper/common/annotation/class-use/InterfaceStability.Unstable.html#org.apache.bookkeeper.client">InterfaceStability.Unstable</a>
+<div class="block">No guarantee is provided as to reliability or stability across any
+ level of release granularity.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>