You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2018/12/21 23:44:41 UTC

[bookkeeper] branch master updated: Revert maxLedgerMetadataFormatVersion changes in layout

This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new e921193  Revert maxLedgerMetadataFormatVersion changes in layout
e921193 is described below

commit e921193b464bc86b24fa63bb71ba85ebb2d523c6
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Sat Dec 22 00:44:36 2018 +0100

    Revert maxLedgerMetadataFormatVersion changes in layout
    
    There is ongoing discussions about how to do this, so I'm reverting this
    change for now to allow 4.9 release to proceed. The change modifies the
    contents of the layout znode, so once they're in an official release they
    cannot be removed without breaking BC.
    
    The reverted changes are:
    
    dd684b Ledger manager factories initialized with max metadata version
    dce4fd Add max ledger metadata format version to layout
    
    Master issue: #723
    
    
    Reviewers: Sijie Guo <si...@apache.org>, Enrico Olivelli <eo...@gmail.com>
    
    This closes #1890 from ivankelly/revert-max-format
---
 .../org/apache/bookkeeper/bookie/BookieShell.java  |  7 +---
 .../meta/AbstractHierarchicalLedgerManager.java    |  5 +--
 .../bookkeeper/meta/AbstractZkLedgerManager.java   |  5 +--
 .../meta/AbstractZkLedgerManagerFactory.java       | 15 +++-----
 .../apache/bookkeeper/meta/FlatLedgerManager.java  |  5 +--
 .../bookkeeper/meta/FlatLedgerManagerFactory.java  |  7 +---
 .../bookkeeper/meta/HierarchicalLedgerManager.java |  9 ++---
 .../meta/HierarchicalLedgerManagerFactory.java     |  2 +-
 .../org/apache/bookkeeper/meta/LedgerLayout.java   | 43 ++++------------------
 .../bookkeeper/meta/LedgerManagerFactory.java      |  5 +--
 .../bookkeeper/meta/LedgerMetadataSerDe.java       |  6 ---
 .../meta/LegacyHierarchicalLedgerManager.java      |  5 +--
 .../LegacyHierarchicalLedgerManagerFactory.java    |  7 +---
 .../meta/LongHierarchicalLedgerManager.java        |  5 +--
 .../meta/LongHierarchicalLedgerManagerFactory.java |  2 +-
 .../bookkeeper/meta/MSLedgerManagerFactory.java    | 12 ++----
 .../server/http/service/GetLedgerMetaService.java  |  2 +-
 .../server/http/service/ListLedgerService.java     |  2 +-
 .../bookkeeper/client/LedgerMetadataTest.java      |  6 +--
 .../client/ParallelLedgerRecoveryTest.java         |  7 +---
 .../meta/AbstractZkLedgerManagerTest.java          | 14 +++----
 .../apache/bookkeeper/meta/MockLedgerManager.java  |  2 +-
 .../apache/bookkeeper/meta/TestLedgerLayout.java   | 43 ----------------------
 .../bookkeeper/server/http/TestHttpService.java    |  3 +-
 .../metadata/etcd/EtcdLedgerManager.java           | 29 +++++++--------
 .../metadata/etcd/EtcdLedgerManagerFactory.java    |  7 +---
 .../metadata/etcd/EtcdMetadataDriverBase.java      |  4 +-
 .../metadata/etcd/EtcdLedgerManagerTest.java       |  4 +-
 .../shaded/DistributedLogCoreShadedJarTest.java    |  4 +-
 29 files changed, 75 insertions(+), 192 deletions(-)

diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieShell.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieShell.java
index 083a661..32e288b 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieShell.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieShell.java
@@ -1164,7 +1164,7 @@ public class BookieShell implements Tool {
     void printLedgerMetadata(long ledgerId, LedgerMetadata md, boolean printMeta) {
         System.out.println("ledgerID: " + ledgerIdFormatter.formatLedgerId(ledgerId));
         if (printMeta) {
-            System.out.println(md.toString());
+            System.out.println(new String(new LedgerMetadataSerDe().serialize(md), UTF_8));
         }
     }
 
@@ -1173,10 +1173,7 @@ public class BookieShell implements Tool {
      */
     class LedgerMetadataCmd extends MyCommand {
         Options lOpts = new Options();
-        // the max version won't actually take effect as this tool
-        // never creates new metadata (there'll already be a format version in the existing metadata)
-        LedgerMetadataSerDe serDe = new LedgerMetadataSerDe(
-                LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        LedgerMetadataSerDe serDe = new LedgerMetadataSerDe();
 
         LedgerMetadataCmd() {
             super(CMD_LEDGERMETADATA);
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractHierarchicalLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractHierarchicalLedgerManager.java
index 1a0ce2e..1aa8e15 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractHierarchicalLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractHierarchicalLedgerManager.java
@@ -49,9 +49,8 @@ public abstract class AbstractHierarchicalLedgerManager extends AbstractZkLedger
      * @param zk
      *          ZooKeeper Client Handle
      */
-    public AbstractHierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk,
-                                             int maxLedgerMetadataFormatVersion) {
-        super(conf, zk, maxLedgerMetadataFormatVersion);
+    public AbstractHierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk) {
+        super(conf, zk);
     }
 
     /**
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
index 1c90154..5dbdd06 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
@@ -159,9 +159,8 @@ public abstract class AbstractZkLedgerManager implements LedgerManager, Watcher
      * @param zk
      *          ZooKeeper Client Handle
      */
-    protected AbstractZkLedgerManager(AbstractConfiguration conf, ZooKeeper zk,
-                                      int maxLedgerMetadataFormatVersion) {
-        this.serDe = new LedgerMetadataSerDe(maxLedgerMetadataFormatVersion);
+    protected AbstractZkLedgerManager(AbstractConfiguration conf, ZooKeeper zk) {
+        this.serDe = new LedgerMetadataSerDe();
         this.conf = conf;
         this.zk = zk;
         this.ledgerRootPath = ZKMetadataDriverBase.resolveZkLedgersRootPath(conf);
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerFactory.java
index be95a53..72bc3e8 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerFactory.java
@@ -160,8 +160,8 @@ public abstract class AbstractZkLedgerManagerFactory implements LedgerManagerFac
 
         // if layoutManager is null, return the default ledger manager
         if (layoutManager == null) {
-            return new FlatLedgerManagerFactory().initialize(conf, null,
-                    FlatLedgerManagerFactory.CUR_VERSION, LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+            return new FlatLedgerManagerFactory()
+                   .initialize(conf, null, FlatLedgerManagerFactory.CUR_VERSION);
         }
 
         LedgerManagerFactory lmFactory;
@@ -172,9 +172,8 @@ public abstract class AbstractZkLedgerManagerFactory implements LedgerManagerFac
 
         if (layout == null) { // no existing layout
             lmFactory = createNewLMFactory(conf, layoutManager, factoryClass);
-            return lmFactory.initialize(conf, layoutManager,
-                                        lmFactory.getCurrentVersion(),
-                                        LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+            return lmFactory
+                    .initialize(conf, layoutManager, lmFactory.getCurrentVersion());
         }
         if (log.isDebugEnabled()) {
             log.debug("read ledger layout {}", layout);
@@ -198,8 +197,7 @@ public abstract class AbstractZkLedgerManagerFactory implements LedgerManagerFac
             } else {
                 throw new IOException("Unknown ledger manager type: " + lmType);
             }
-            return lmFactory.initialize(conf, layoutManager, layout.getManagerVersion(),
-                                        layout.getMaxLedgerMetadataFormatVersion());
+            return lmFactory.initialize(conf, layoutManager, layout.getManagerVersion());
         }
 
         // handle V2 layout case
@@ -229,8 +227,7 @@ public abstract class AbstractZkLedgerManagerFactory implements LedgerManagerFac
         }
         // instantiate a factory
         lmFactory = ReflectionUtils.newInstance(factoryClass);
-        return lmFactory.initialize(conf, layoutManager, layout.getManagerVersion(),
-                                    layout.getMaxLedgerMetadataFormatVersion());
+        return lmFactory.initialize(conf, layoutManager, layout.getManagerVersion());
     }
 
     private static String normalizedLedgerManagerFactoryClassName(String factoryClass,
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
index 115ffe3..7ee2e22 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
@@ -55,9 +55,8 @@ class FlatLedgerManager extends AbstractZkLedgerManager {
      *          ZooKeeper Client Handle
      * @throws IOException when version is not compatible
      */
-    public FlatLedgerManager(AbstractConfiguration conf, ZooKeeper zk,
-                             int maxLedgerMetadataFormatVersion) {
-        super(conf, zk, maxLedgerMetadataFormatVersion);
+    public FlatLedgerManager(AbstractConfiguration conf, ZooKeeper zk) {
+        super(conf, zk);
 
         ledgerPrefix = ledgerRootPath + "/" + StringUtils.LEDGER_NODE_PREFIX;
     }
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java
index 5c92ba1..19ac418 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java
@@ -41,7 +41,6 @@ public class FlatLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
     public static final int CUR_VERSION = 1;
 
     AbstractConfiguration conf;
-    private int maxLedgerMetadataFormatVersion;
 
     @Override
     public int getCurrentVersion() {
@@ -51,8 +50,7 @@ public class FlatLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
     @Override
     public LedgerManagerFactory initialize(final AbstractConfiguration conf,
                                            final LayoutManager layoutManager,
-                                           final int factoryVersion,
-                                           int maxLedgerMetadataFormatVersion)
+                                           final int factoryVersion)
     throws IOException {
         checkArgument(layoutManager == null || layoutManager instanceof ZkLayoutManager);
 
@@ -63,7 +61,6 @@ public class FlatLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
         this.conf = conf;
 
         this.zk = layoutManager == null ? null : ((ZkLayoutManager) layoutManager).getZk();
-        this.maxLedgerMetadataFormatVersion = maxLedgerMetadataFormatVersion;
         return this;
     }
 
@@ -82,7 +79,7 @@ public class FlatLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
 
     @Override
     public LedgerManager newLedgerManager() {
-        return new FlatLedgerManager(conf, zk, maxLedgerMetadataFormatVersion);
+        return new FlatLedgerManager(conf, zk);
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
index c4f211a..946ed2a 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
@@ -46,11 +46,10 @@ class HierarchicalLedgerManager extends AbstractHierarchicalLedgerManager {
     LegacyHierarchicalLedgerManager legacyLM;
     LongHierarchicalLedgerManager longLM;
 
-    public HierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk,
-                                     int maxLedgerMetadataFormatVersion) {
-        super(conf, zk, maxLedgerMetadataFormatVersion);
-        legacyLM = new LegacyHierarchicalLedgerManager(conf, zk, maxLedgerMetadataFormatVersion);
-        longLM = new LongHierarchicalLedgerManager (conf, zk, maxLedgerMetadataFormatVersion);
+    public HierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk) {
+        super(conf, zk);
+        legacyLM = new LegacyHierarchicalLedgerManager(conf, zk);
+        longLM = new LongHierarchicalLedgerManager (conf, zk);
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java
index c4f0f4f..4a9d6cf 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java
@@ -42,6 +42,6 @@ public class HierarchicalLedgerManagerFactory extends LegacyHierarchicalLedgerMa
 
     @Override
     public LedgerManager newLedgerManager() {
-        return new HierarchicalLedgerManager(conf, zk, maxLedgerMetadataFormatVersion);
+        return new HierarchicalLedgerManager(conf, zk);
     }
 }
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java
index c39e6b6..eb5b705 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java
@@ -39,14 +39,8 @@ public class LedgerLayout {
     // version of ledger layout metadata
     public static final int LAYOUT_FORMAT_VERSION = 2;
 
-    private static final String FIELD_SPLITTER = ":";
-    private static final String LINE_SPLITTER = "\n";
-
-    // For version 2 and below, max ledger metadata format wasn't stored in the layout
-    // so assume 2 if it is missing.
-    private static final int DEFAULT_MAX_LEDGER_METADATA_FORMAT_VERSION = 2;
-    private static final String MAX_LEDGER_METADATA_FORMAT_VERSION_FIELD =
-        "MAX_LEDGER_METADATA_FORMAT_VERSION";
+    private static final String splitter = ":";
+    private static final String lSplitter = "\n";
 
     // ledger manager factory class
     private final String managerFactoryClass;
@@ -56,9 +50,6 @@ public class LedgerLayout {
     // layout version of how to store layout information
     private final int layoutFormatVersion;
 
-    // maximum format version that can be used for storing ledger metadata
-    private final int maxLedgerMetadataFormatVersion;
-
     /**
      * Ledger Layout Constructor.
      *
@@ -68,17 +59,13 @@ public class LedgerLayout {
      *          Ledger Manager Version
      */
     public LedgerLayout(String managerFactoryCls, int managerVersion) {
-        this(managerFactoryCls, managerVersion,
-             LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION,
-             LAYOUT_FORMAT_VERSION);
+        this(managerFactoryCls, managerVersion, LAYOUT_FORMAT_VERSION);
     }
 
     LedgerLayout(String managerFactoryCls, int managerVersion,
-                 int maxLedgerMetadataFormatVersion,
                  int layoutVersion) {
         this.managerFactoryClass = managerFactoryCls;
         this.managerVersion = managerVersion;
-        this.maxLedgerMetadataFormatVersion = maxLedgerMetadataFormatVersion;
         this.layoutFormatVersion = layoutVersion;
     }
 
@@ -89,11 +76,8 @@ public class LedgerLayout {
      */
     public byte[] serialize() throws IOException {
         String s =
-          new StringBuilder().append(layoutFormatVersion).append(LINE_SPLITTER)
-            .append(managerFactoryClass).append(FIELD_SPLITTER).append(managerVersion).append(LINE_SPLITTER)
-            .append(MAX_LEDGER_METADATA_FORMAT_VERSION_FIELD).append(FIELD_SPLITTER)
-            .append(maxLedgerMetadataFormatVersion)
-            .toString();
+          new StringBuilder().append(layoutFormatVersion).append(lSplitter)
+              .append(managerFactoryClass).append(splitter).append(managerVersion).toString();
 
         if (log.isDebugEnabled()) {
             log.debug("Serialized layout info: {}", s);
@@ -116,7 +100,7 @@ public class LedgerLayout {
             log.debug("Parsing Layout: {}", layout);
         }
 
-        String lines[] = layout.split(LINE_SPLITTER);
+        String lines[] = layout.split(lSplitter);
 
         try {
             int layoutFormatVersion = Integer.parseInt(lines[0]);
@@ -129,7 +113,7 @@ public class LedgerLayout {
                 throw new IOException("Ledger manager and its version absent from layout: " + layout);
             }
 
-            String[] parts = lines[1].split(FIELD_SPLITTER);
+            String[] parts = lines[1].split(splitter);
             if (parts.length != 2) {
                 throw new IOException("Invalid Ledger Manager defined in layout : " + layout);
             }
@@ -137,18 +121,7 @@ public class LedgerLayout {
             String managerFactoryCls = parts[0];
             // ledger manager version
             int managerVersion = Integer.parseInt(parts[1]);
-
-            int maxLedgerMetadataFormatVersion = DEFAULT_MAX_LEDGER_METADATA_FORMAT_VERSION;
-            if (lines.length >= 3) {
-                String[] metadataFormatParts = lines[2].split(FIELD_SPLITTER);
-                if (metadataFormatParts.length != 2
-                    || !metadataFormatParts[0].equals(MAX_LEDGER_METADATA_FORMAT_VERSION_FIELD)) {
-                    throw new IOException("Invalid field for max ledger metadata format:" + lines[2]);
-                }
-                maxLedgerMetadataFormatVersion = Integer.parseInt(metadataFormatParts[1]);
-            }
-            return new LedgerLayout(managerFactoryCls, managerVersion,
-                                    maxLedgerMetadataFormatVersion, layoutFormatVersion);
+            return new LedgerLayout(managerFactoryCls, managerVersion, layoutFormatVersion);
         } catch (NumberFormatException e) {
             throw new IOException("Could not parse layout '" + layout + "'", e);
         }
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java
index eb4e0f4..80d3a65 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java
@@ -43,15 +43,12 @@ public interface LedgerManagerFactory extends AutoCloseable {
      *          Layout manager used for initialize ledger manager factory
      * @param factoryVersion
      *          What version used to initialize factory.
-     * @param maxLedgerMetadataFormatVersion
-     *          Maximum format version for ledger metadata.
      * @return ledger manager factory instance
      * @throws IOException when fail to initialize the factory.
      */
     LedgerManagerFactory initialize(AbstractConfiguration conf,
                                     LayoutManager layoutManager,
-                                    int factoryVersion,
-                                    int maxLedgerMetadataFormatVersion)
+                                    int factoryVersion)
         throws IOException;
 
     /**
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java
index 4653af4..6020a3b 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerMetadataSerDe.java
@@ -63,12 +63,6 @@ public class LedgerMetadataSerDe {
     private static final String V1_CLOSED_TAG = "CLOSED";
     private static final int V1_IN_RECOVERY_ENTRY_ID = -102;
 
-    private final int maxLedgerMetadataFormatVersion;
-
-    public LedgerMetadataSerDe(int maxLedgerMetadataFormatVersion) {
-        this.maxLedgerMetadataFormatVersion = maxLedgerMetadataFormatVersion;
-    }
-
     public byte[] serialize(LedgerMetadata metadata) {
         if (metadata.getMetadataFormatVersion() == 1) {
             return serializeVersion1(metadata);
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManager.java
index b5065a8..76ecc9d 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManager.java
@@ -69,9 +69,8 @@ class LegacyHierarchicalLedgerManager extends AbstractHierarchicalLedgerManager
      * @param zk
      *          ZooKeeper Client Handle
      */
-    public LegacyHierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk,
-                                           int maxLedgerMetadataFormatVersion) {
-        super(conf, zk, maxLedgerMetadataFormatVersion);
+    public LegacyHierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk) {
+        super(conf, zk);
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManagerFactory.java
index bd5c579..9157973 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LegacyHierarchicalLedgerManagerFactory.java
@@ -38,7 +38,6 @@ public class LegacyHierarchicalLedgerManagerFactory extends AbstractZkLedgerMana
     public static final int CUR_VERSION = 1;
 
     AbstractConfiguration conf;
-    int maxLedgerMetadataFormatVersion;
 
     @Override
     public int getCurrentVersion() {
@@ -48,8 +47,7 @@ public class LegacyHierarchicalLedgerManagerFactory extends AbstractZkLedgerMana
     @Override
     public LedgerManagerFactory initialize(final AbstractConfiguration conf,
                                            final LayoutManager lm,
-                                           final int factoryVersion,
-                                           int maxLedgerMetadataFormatVersion)
+                                           final int factoryVersion)
             throws IOException {
         checkArgument(lm instanceof ZkLayoutManager);
 
@@ -60,7 +58,6 @@ public class LegacyHierarchicalLedgerManagerFactory extends AbstractZkLedgerMana
                                 + factoryVersion);
         }
         this.conf = conf;
-        this.maxLedgerMetadataFormatVersion = maxLedgerMetadataFormatVersion;
         this.zk = zkLayoutManager.getZk();
         return this;
     }
@@ -83,7 +80,7 @@ public class LegacyHierarchicalLedgerManagerFactory extends AbstractZkLedgerMana
 
     @Override
     public LedgerManager newLedgerManager() {
-        return new LegacyHierarchicalLedgerManager(conf, zk, maxLedgerMetadataFormatVersion);
+        return new LegacyHierarchicalLedgerManager(conf, zk);
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java
index e464ed0..2e69e90 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java
@@ -70,9 +70,8 @@ class LongHierarchicalLedgerManager extends AbstractHierarchicalLedgerManager {
      * @param zk
      *            ZooKeeper Client Handle
      */
-    public LongHierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk,
-                                         int maxLedgerMetadataFormatVersion) {
-        super(conf, zk, maxLedgerMetadataFormatVersion);
+    public LongHierarchicalLedgerManager(AbstractConfiguration conf, ZooKeeper zk) {
+        super(conf, zk);
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManagerFactory.java
index 4c06cc4..93ad9dd 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManagerFactory.java
@@ -26,7 +26,7 @@ public class LongHierarchicalLedgerManagerFactory extends HierarchicalLedgerMana
 
     @Override
     public LedgerManager newLedgerManager() {
-        return new LongHierarchicalLedgerManager(conf, zk, maxLedgerMetadataFormatVersion);
+        return new LongHierarchicalLedgerManager(conf, zk);
     }
 
 }
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
index e10f274..fc87632 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
@@ -96,7 +96,6 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
     public static final String META_FIELD = ".META";
 
     AbstractConfiguration conf;
-    private int maxLedgerMetadataFormatVersion;
     MetaStore metastore;
 
     @Override
@@ -107,8 +106,7 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
     @Override
     public LedgerManagerFactory initialize(final AbstractConfiguration conf,
                                            final LayoutManager layoutManager,
-                                           final int factoryVersion,
-                                           int maxLedgerMetadataFormatVersion) throws IOException {
+                                           final int factoryVersion) throws IOException {
         checkArgument(layoutManager instanceof ZkLayoutManager);
         ZkLayoutManager zkLayoutManager = (ZkLayoutManager) layoutManager;
 
@@ -117,7 +115,6 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
         }
         this.conf = conf;
         this.zk = zkLayoutManager.getZk();
-        this.maxLedgerMetadataFormatVersion = maxLedgerMetadataFormatVersion;
 
         // load metadata store
         String msName = conf.getMetastoreImplClass();
@@ -283,12 +280,11 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
             }
         }
 
-        MsLedgerManager(final AbstractConfiguration conf, final ZooKeeper zk, final MetaStore metastore,
-                        int maxLedgerMetadataFormatVersion) {
+        MsLedgerManager(final AbstractConfiguration conf, final ZooKeeper zk, final MetaStore metastore) {
             this.conf = conf;
             this.zk = zk;
             this.metastore = metastore;
-            this.serDe = new LedgerMetadataSerDe(maxLedgerMetadataFormatVersion);
+            this.serDe = new LedgerMetadataSerDe();
 
             try {
                 ledgerTable = metastore.createScannableTable(TABLE_NAME);
@@ -655,7 +651,7 @@ public class MSLedgerManagerFactory extends AbstractZkLedgerManagerFactory {
 
     @Override
     public LedgerManager newLedgerManager() {
-        return new MsLedgerManager(conf, zk, metastore, maxLedgerMetadataFormatVersion);
+        return new MsLedgerManager(conf, zk, metastore);
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/GetLedgerMetaService.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/GetLedgerMetaService.java
index 537b50c..7fcaeda 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/GetLedgerMetaService.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/GetLedgerMetaService.java
@@ -53,7 +53,7 @@ public class GetLedgerMetaService implements HttpEndpointService {
         checkNotNull(conf);
         this.conf = conf;
         this.bookieServer = bookieServer;
-        this.serDe = new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        this.serDe = new LedgerMetadataSerDe();
     }
 
     @Override
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ListLedgerService.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ListLedgerService.java
index 13022e4..f553b64 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ListLedgerService.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ListLedgerService.java
@@ -58,7 +58,7 @@ public class ListLedgerService implements HttpEndpointService {
         checkNotNull(conf);
         this.conf = conf;
         this.bookieServer = bookieServer;
-        this.serDe = new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        this.serDe = new LedgerMetadataSerDe();
 
     }
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerMetadataTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerMetadataTest.java
index d9141e6..a9ffc2d 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerMetadataTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerMetadataTest.java
@@ -80,8 +80,7 @@ public class LedgerMetadataTest {
             .withCreationTime(System.currentTimeMillis())
             .storingCreationTime(true)
             .build();
-        LedgerMetadataFormat format = new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION)
-            .buildProtoFormat(lm);
+        LedgerMetadataFormat format = new LedgerMetadataSerDe().buildProtoFormat(lm);
         assertTrue(format.hasCtime());
     }
 
@@ -95,8 +94,7 @@ public class LedgerMetadataTest {
         LedgerMetadata lm = LedgerMetadataBuilder.create()
             .newEnsembleEntry(0L, ensemble).build();
 
-        LedgerMetadataFormat format = new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION)
-            .buildProtoFormat(lm);
+        LedgerMetadataFormat format = new LedgerMetadataSerDe().buildProtoFormat(lm);
         assertFalse(format.hasCtime());
     }
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java
index 1f9656b..ab966fb 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ParallelLedgerRecoveryTest.java
@@ -50,7 +50,6 @@ import org.apache.bookkeeper.conf.ServerConfiguration;
 import org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory;
 import org.apache.bookkeeper.meta.LedgerManager;
 import org.apache.bookkeeper.meta.LedgerManagerFactory;
-import org.apache.bookkeeper.meta.LedgerMetadataSerDe;
 import org.apache.bookkeeper.meta.MetadataDrivers;
 import org.apache.bookkeeper.meta.exceptions.Code;
 import org.apache.bookkeeper.meta.exceptions.MetadataException;
@@ -185,8 +184,7 @@ public class ParallelLedgerRecoveryTest extends BookKeeperClusterTestCase {
             if (null == lmFactory) {
                 try {
                     lmFactory = new TestLedgerManagerFactory()
-                        .initialize(conf, layoutManager, TestLedgerManagerFactory.CUR_VERSION,
-                                    LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+                        .initialize(conf, layoutManager, TestLedgerManagerFactory.CUR_VERSION);
                 } catch (IOException e) {
                     throw new MetadataException(Code.METADATA_SERVICE_ERROR, e);
                 }
@@ -202,8 +200,7 @@ public class ParallelLedgerRecoveryTest extends BookKeeperClusterTestCase {
             if (null == lmFactory) {
                 try {
                     lmFactory = new TestLedgerManagerFactory()
-                        .initialize(conf, layoutManager, TestLedgerManagerFactory.CUR_VERSION,
-                                    LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+                        .initialize(conf, layoutManager, TestLedgerManagerFactory.CUR_VERSION);
                 } catch (IOException e) {
                     throw new MetadataException(Code.METADATA_SERVICE_ERROR, e);
                 }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java
index 620c3b2..37f55b3 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/AbstractZkLedgerManagerTest.java
@@ -110,9 +110,9 @@ public class AbstractZkLedgerManagerTest extends MockZooKeeperTestCase {
 
         this.conf = new ClientConfiguration();
         this.ledgerManager = mock(
-                AbstractZkLedgerManager.class,
-                withSettings()
-                .useConstructor(conf, mockZk, LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION)
+            AbstractZkLedgerManager.class,
+            withSettings()
+                .useConstructor(conf, mockZk)
                 .defaultAnswer(CALLS_REAL_METHODS));
         List<BookieSocketAddress> ensemble = Lists.newArrayList(
                 new BookieSocketAddress("192.0.2.1", 3181),
@@ -142,7 +142,7 @@ public class AbstractZkLedgerManagerTest extends MockZooKeeperTestCase {
         assertSame(conf, ledgerManager.conf);
         assertSame(scheduler, ledgerManager.scheduler);
 
-        this.serDe = new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        this.serDe = new LedgerMetadataSerDe();
     }
 
     @After
@@ -303,15 +303,13 @@ public class AbstractZkLedgerManagerTest extends MockZooKeeperTestCase {
 
     @Test
     public void testRemoveLedgerMetadataHierarchical() throws Exception {
-        HierarchicalLedgerManager hlm = new HierarchicalLedgerManager(conf, mockZk,
-                LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        HierarchicalLedgerManager hlm = new HierarchicalLedgerManager(conf, mockZk);
         testRemoveLedgerMetadataHierarchicalLedgerManager(hlm);
     }
 
     @Test
     public void testRemoveLedgerMetadataLongHierarchical() throws Exception {
-        LongHierarchicalLedgerManager hlm = new LongHierarchicalLedgerManager(conf, mockZk,
-                LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        LongHierarchicalLedgerManager hlm = new LongHierarchicalLedgerManager(conf, mockZk);
         testRemoveLedgerMetadataHierarchicalLedgerManager(hlm);
     }
 
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/MockLedgerManager.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/MockLedgerManager.java
index a73adeb..398bb07 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/MockLedgerManager.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/MockLedgerManager.java
@@ -72,7 +72,7 @@ public class MockLedgerManager implements LedgerManager {
         this.metadataMap = metadataMap;
         this.executor = executor;
         this.ownsExecutor = ownsExecutor;
-        this.serDe = new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        this.serDe = new LedgerMetadataSerDe();
     }
 
     public MockLedgerManager newClient() {
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerLayout.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerLayout.java
index 16b30bd..62315fe 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerLayout.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerLayout.java
@@ -18,12 +18,8 @@
  */
 package org.apache.bookkeeper.meta;
 
-import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
 
 import org.junit.Test;
 
@@ -67,43 +63,4 @@ public class TestLedgerLayout {
             hierarchical1.getLayoutFormatVersion());
     }
 
-    @Test
-    public void testParseNoMaxLedgerMetadataFormatVersion() throws Exception {
-        LedgerLayout layout = LedgerLayout.parseLayout("1\nblahblahLM:3".getBytes(UTF_8));
-
-        assertEquals(layout.getMaxLedgerMetadataFormatVersion(), 2);
-    }
-
-    @Test
-    public void testParseWithMaxLedgerMetadataFormatVersion() throws Exception {
-        LedgerLayout layout = LedgerLayout.parseLayout(
-                "1\nblahblahLM:3\nMAX_LEDGER_METADATA_FORMAT_VERSION:123".getBytes(UTF_8));
-
-        assertEquals(layout.getMaxLedgerMetadataFormatVersion(), 123);
-    }
-
-    @Test
-    public void testCorruptMaxLedgerLayout() throws Exception {
-        try {
-            LedgerLayout.parseLayout("1\nblahblahLM:3\nMAXXX_LEDGER_METADATA_FORMAT_VERSION:123".getBytes(UTF_8));
-            fail("Shouldn't have been able to parse");
-        } catch (IOException ioe) {
-            // expected
-        }
-
-        try {
-            LedgerLayout.parseLayout("1\nblahblahLM:3\nMAXXX_LEDGER_METADATA_FORMAT_VERSION:blah".getBytes(UTF_8));
-            fail("Shouldn't have been able to parse");
-        } catch (IOException ioe) {
-            // expected
-        }
-    }
-
-    @Test
-    public void testMoreFieldsAdded() throws Exception {
-        LedgerLayout layout = LedgerLayout.parseLayout(
-                "1\nblahblahLM:3\nMAX_LEDGER_METADATA_FORMAT_VERSION:123\nFOO:BAR".getBytes(UTF_8));
-
-        assertEquals(layout.getMaxLedgerMetadataFormatVersion(), 123);
-    }
 }
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/server/http/TestHttpService.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/server/http/TestHttpService.java
index da25d14..3d948c3 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/server/http/TestHttpService.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/server/http/TestHttpService.java
@@ -387,8 +387,7 @@ public class TestHttpService extends BookKeeperClusterTestCase {
         assertEquals(1, respBody.size());
         // verify LedgerMetadata content is equal
         assertTrue(respBody.get(ledgerId.toString()).toString()
-                .equals(new String(new LedgerMetadataSerDe(LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION)
-                                   .serialize(lh[0].getLedgerMetadata()))));
+                .equals(new String(new LedgerMetadataSerDe().serialize(lh[0].getLedgerMetadata()))));
     }
 
     @Test
diff --git a/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManager.java b/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManager.java
index ffbbc08..d571bf8 100644
--- a/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManager.java
+++ b/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManager.java
@@ -64,8 +64,19 @@ import org.apache.zookeeper.AsyncCallback.VoidCallback;
 @Slf4j
 class EtcdLedgerManager implements LedgerManager {
 
-    private final LedgerMetadataSerDe serDe;
-    private final Function<ByteSequence, LedgerMetadata> ledgerMetadataFunction;
+    private final LedgerMetadataSerDe serDe = new LedgerMetadataSerDe();
+    private final Function<ByteSequence, LedgerMetadata> ledgerMetadataFunction = bs -> {
+        try {
+            return serDe.parseConfig(
+                bs.getBytes(),
+                Optional.empty()
+            );
+        } catch (IOException ioe) {
+            log.error("Could not parse ledger metadata : {}", bs.toStringUtf8(), ioe);
+            throw new RuntimeException(
+                "Could not parse ledger metadata : " + bs.toStringUtf8(), ioe);
+        }
+    };
 
     private final String scope;
     private final Client client;
@@ -79,23 +90,11 @@ class EtcdLedgerManager implements LedgerManager {
     private volatile boolean closed = false;
 
     EtcdLedgerManager(Client client,
-                      String scope,
-                      int maxLedgerMetadataFormatVersion) {
+                      String scope) {
         this.client = client;
         this.kvClient = client.getKVClient();
         this.scope = scope;
         this.watchClient = new EtcdWatchClient(client);
-        this.serDe = new LedgerMetadataSerDe(maxLedgerMetadataFormatVersion);
-
-        this.ledgerMetadataFunction = bs -> {
-            try {
-                return serDe.parseConfig(bs.getBytes(), Optional.empty());
-            } catch (IOException ioe) {
-                log.error("Could not parse ledger metadata : {}", bs.toStringUtf8(), ioe);
-                throw new RuntimeException(
-                        "Could not parse ledger metadata : " + bs.toStringUtf8(), ioe);
-            }
-        };
     }
 
     private boolean isClosed() {
diff --git a/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerFactory.java b/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerFactory.java
index 0bc16d8..dc7d151 100644
--- a/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerFactory.java
+++ b/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerFactory.java
@@ -42,7 +42,6 @@ class EtcdLedgerManagerFactory implements LedgerManagerFactory {
 
     private String scope;
     private Client client;
-    private int maxLedgerMetadataFormatVersion;
 
     @Override
     public int getCurrentVersion() {
@@ -52,8 +51,7 @@ class EtcdLedgerManagerFactory implements LedgerManagerFactory {
     @Override
     public LedgerManagerFactory initialize(AbstractConfiguration conf,
                                            LayoutManager layoutManager,
-                                           int factoryVersion,
-                                           int maxLedgerMetadataFormatVersion) throws IOException {
+                                           int factoryVersion) throws IOException {
         checkArgument(layoutManager instanceof EtcdLayoutManager);
 
         EtcdLayoutManager etcdLayoutManager = (EtcdLayoutManager) layoutManager;
@@ -68,7 +66,6 @@ class EtcdLedgerManagerFactory implements LedgerManagerFactory {
             throw new IOException("Invalid metadata service uri", e);
         }
         this.client = etcdLayoutManager.getClient();
-        this.maxLedgerMetadataFormatVersion = maxLedgerMetadataFormatVersion;
         return this;
     }
 
@@ -85,7 +82,7 @@ class EtcdLedgerManagerFactory implements LedgerManagerFactory {
 
     @Override
     public LedgerManager newLedgerManager() {
-        return new EtcdLedgerManager(client, scope, maxLedgerMetadataFormatVersion);
+        return new EtcdLedgerManager(client, scope);
     }
 
     @Override
diff --git a/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdMetadataDriverBase.java b/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdMetadataDriverBase.java
index cbd6f32..47b034c 100644
--- a/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdMetadataDriverBase.java
+++ b/metadata-drivers/etcd/src/main/java/org/apache/bookkeeper/metadata/etcd/EtcdMetadataDriverBase.java
@@ -27,7 +27,6 @@ import org.apache.bookkeeper.common.net.ServiceURI;
 import org.apache.bookkeeper.conf.AbstractConfiguration;
 import org.apache.bookkeeper.meta.LayoutManager;
 import org.apache.bookkeeper.meta.LedgerManagerFactory;
-import org.apache.bookkeeper.meta.LedgerMetadataSerDe;
 import org.apache.bookkeeper.meta.exceptions.Code;
 import org.apache.bookkeeper.meta.exceptions.MetadataException;
 import org.apache.bookkeeper.stats.StatsLogger;
@@ -107,8 +106,7 @@ class EtcdMetadataDriverBase implements AutoCloseable {
         if (null == lmFactory) {
             try {
                 lmFactory = new EtcdLedgerManagerFactory();
-                lmFactory.initialize(conf, layoutManager, EtcdLedgerManagerFactory.VERSION,
-                                     LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+                lmFactory.initialize(conf, layoutManager, EtcdLedgerManagerFactory.VERSION);
             } catch (IOException ioe) {
                 throw new MetadataException(
                     Code.METADATA_SERVICE_ERROR, "Failed to initialize ledger manager factory", ioe);
diff --git a/metadata-drivers/etcd/src/test/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerTest.java b/metadata-drivers/etcd/src/test/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerTest.java
index 30877f7..984224c 100644
--- a/metadata-drivers/etcd/src/test/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerTest.java
+++ b/metadata-drivers/etcd/src/test/java/org/apache/bookkeeper/metadata/etcd/EtcdLedgerManagerTest.java
@@ -55,7 +55,6 @@ import org.apache.bookkeeper.client.api.LedgerMetadata;
 import org.apache.bookkeeper.common.concurrent.FutureUtils;
 import org.apache.bookkeeper.meta.LedgerManager.LedgerRange;
 import org.apache.bookkeeper.meta.LedgerManager.LedgerRangeIterator;
-import org.apache.bookkeeper.meta.LedgerMetadataSerDe;
 import org.apache.bookkeeper.metadata.etcd.helpers.ValueStream;
 import org.apache.bookkeeper.metadata.etcd.testing.EtcdTestBase;
 import org.apache.bookkeeper.net.BookieSocketAddress;
@@ -82,8 +81,7 @@ public class EtcdLedgerManagerTest extends EtcdTestBase {
     public void setUp() throws Exception {
         super.setUp();
         this.scope = RandomStringUtils.randomAlphabetic(8);
-        this.lm = new EtcdLedgerManager(etcdClient, scope,
-                                        LedgerMetadataSerDe.CURRENT_METADATA_FORMAT_VERSION);
+        this.lm = new EtcdLedgerManager(etcdClient, scope);
     }
 
     @Override
diff --git a/tests/shaded/distributedlog-core-shaded-test/src/test/java/org/apache/bookkeeper/tests/shaded/DistributedLogCoreShadedJarTest.java b/tests/shaded/distributedlog-core-shaded-test/src/test/java/org/apache/bookkeeper/tests/shaded/DistributedLogCoreShadedJarTest.java
index 26230ec..6432c30 100644
--- a/tests/shaded/distributedlog-core-shaded-test/src/test/java/org/apache/bookkeeper/tests/shaded/DistributedLogCoreShadedJarTest.java
+++ b/tests/shaded/distributedlog-core-shaded-test/src/test/java/org/apache/bookkeeper/tests/shaded/DistributedLogCoreShadedJarTest.java
@@ -179,7 +179,7 @@ public class DistributedLogCoreShadedJarTest {
         when(manager.readLedgerLayout()).thenReturn(layout);
 
         LedgerManagerFactory factory = mock(LedgerManagerFactory.class);
-        when(factory.initialize(any(AbstractConfiguration.class), same(manager), anyInt(), anyInt()))
+        when(factory.initialize(any(AbstractConfiguration.class), same(manager), anyInt()))
             .thenReturn(factory);
         PowerMockito.mockStatic(ReflectionUtils.class);
         when(ReflectionUtils.newInstance(any(Class.class)))
@@ -191,7 +191,7 @@ public class DistributedLogCoreShadedJarTest {
             if (allowShaded) {
                 assertSame(factory, result);
                 verify(factory, times(1))
-                    .initialize(any(AbstractConfiguration.class), same(manager), anyInt(), anyInt());
+                    .initialize(any(AbstractConfiguration.class), same(manager), anyInt());
             } else {
                 fail("Should fail to instantiate ledger manager factory if allowShaded is false");
             }