<!DOCTYPE html>
<html>
  <head>
    <title>Apache BookKeeper&trade; - BP-29: Metadata API module</title>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="/css/normalize.css">
<link rel="stylesheet" href="/css/tippy.css">
<link rel="stylesheet" href="/css/style.css">

<link rel="shortcut icon" href="/img/favicon.ico">

<script src="/js/tippy.min.js"></script>

<script type="text/javascript">
  var shiftWindow = function() { scrollBy(0, -25); };
  window.addEventListener("hashchange", shiftWindow);
  window.addEventListener("pageshow", shiftWindow);
  function load() { if (window.location.hash) shiftWindow(); }
</script>
  </head>
  <body class="body">
    <main class="main">
      
<nav class="navbar bk-topnav">
  <div class="navbar-brand">
    <a class="navbar-item bk-brand" href="/">
      Apache BookKeeper&trade;
    </a>

    <div class="navbar-burger burger" data-target="bkNav">
      <span></span>
      <span></span>
      <span></span>
    </div>
  </div>

  <div id="bkNav" class="navbar-menu">
    <div class="navbar-start">
      <div class="navbar-item has-dropdown is-hoverable">
        <a class="navbar-link">Documentation</a>
        <div class="navbar-dropdown is-boxed">
          <a class="navbar-item" href="/docs/latest/overview/overview">
            Version 4.14.0-SNAPSHOT
            <span class="tag is-warning">Development</span>
          </a>
          <a class="navbar-item" href="/docs/latest/api/javadoc">
            <span class="icon bk-javadoc-icon">
              <img src="/img/java-icon.svg">
            </span>
            Javadoc
          </a>
          <hr class="dropdown-divider">
          
          <a class="navbar-item" href="/docs/4.13.0/overview/overview">
            Release 4.13.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.12.1/overview/overview">
            Release 4.12.1
            
          </a>
          
          <a class="navbar-item" href="/docs/4.12.0/overview/overview">
            Release 4.12.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.11.1/overview/overview">
            Release 4.11.1
            
              <span class="tag is-success">Stable</span>
            
          </a>
          
          <a class="navbar-item" href="/docs/4.11.0/overview/overview">
            Release 4.11.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.10.0/overview/overview">
            Release 4.10.0
            
          </a>
          
          
          <a class="navbar-item" href="/archives/docs/r4.9.2">
            Release 4.9.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.9.1">
            Release 4.9.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.9.0">
            Release 4.9.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.8.2">
            Release 4.8.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.8.1">
            Release 4.8.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.8.0">
            Release 4.8.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.3">
            Release 4.7.3
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.2">
            Release 4.7.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.1">
            Release 4.7.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.0">
            Release 4.7.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.6.2">
            Release 4.6.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.6.1">
            Release 4.6.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.6.0">
            Release 4.6.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.5.1">
            Release 4.5.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.5.0">
            Release 4.5.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.4.0">
            Release 4.4.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.3.2">
            Release 4.3.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.3.1">
            Release 4.3.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.3.0">
            Release 4.3.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.4">
            Release 4.2.4
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.3">
            Release 4.2.3
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.2">
            Release 4.2.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.1">
            Release 4.2.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.0">
            Release 4.2.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.1.0">
            Release 4.1.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.0.0">
            Release 4.0.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
        </div>
      </div>

      <div class="navbar-item has-dropdown is-hoverable">
        <a class="navbar-link">Community</a>
        <div class="navbar-dropdown is-boxed">
          <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
          <a class="navbar-item" href="/community/slack">Slack</a>
          <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
          <a class="navbar-item" href="/community/releases">Release Management</a>
          <a class="navbar-item" href="/community/meeting">Community Meetings</a>
          <hr class="dropdown-divider">
          <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
          <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
          <a class="navbar-item" href="/community/testing">Testing Guide</a>
          <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
          <a class="navbar-item" href="/community/release_guide">Release Guide</a>
          <hr class="dropdown-divider">
          <a class="navbar-item" href="/community/presentations">Presentations</a>
          <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
        </div>
      </div>

      <div class="navbar-item has-dropdown is-hoverable">
        <a class="navbar-link">Project</a>
        <div class="navbar-dropdown is-boxed">
          <a class="navbar-item" href="/project/who">Who are we?</a>
          <a class="navbar-item" href="/project/bylaws">Bylaws</a>
          <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
          <hr class="dropdown-divider">
          <a class="navbar-item" href="/project/privacy">Privacy policy</a>
          <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
          <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
        </div>
      </div>
    </div>

    <div class="navbar-end">
      <div class="navbar-item">
        <div class="field is-grouped">
          <p class="control">
            <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
              <span class="icon">
                <i class="fa fa-twitter"></i>
              </span>
              <span>Twitter</span>
            </a>
          </p>
          <p class="control">
            <a class="button" href="https://github.com/apache/bookkeeper">
              <span class="icon">
                <i class="fa fa-github"></i>
              </span>
              <span>GitHub</span>
            </a>
          </p>
          <p class="control">
            <a class="button is-primary" href="/releases">
              <span class="icon">
                <i class="fa fa-download"></i>
              </span>
              <span>Download</span>
            </a>
          </p>
        </div>
      </div>
    </div>
  </div>
</nav>


      <div class="bk-community-container">
  <div class="columns">
    <div class="column is-12">
      <header class="docs-title">
        <nav class="level">
          <div class="level-left">
            <div class="level-item">
              <h1 class="title">BP-29: Metadata API module</h1>
            </div>
          </div>
          
        </nav>

        
      </header>

      <hr />

      <div class="content is-medium">
        <section class="bk-community-content">
          <h3 id="motivation">Motivation</h3>

<p>We have already abstracted all the metadata operations into interfaces. And all the bookkeeper implementations only reply on metadata interfaces,
rather than depending on zookeeper. This proposal is to organize the metadata interfaces and its implementations in a separate module and make
bookkeeper implementation only depends on metadata interfaces, not depends on zookeeper. This would a few benefits:</p>

<ul>
  <li>It allows supporting different metadata storages, without bringing in dependencies of metadata store implementation directly into
bookkeeper-server module. The development of different metadata storage can be done without interleaving with each other.</li>
  <li>It would define a clean module dependency between bookkeeper implementation and metadata api, and how bookkeeper load a different metadata
implementation.</li>
</ul>

<h3 id="public-interfaces">Public Interfaces</h3>

<p>A more generic setting <code class="highlighter-rouge">metadataServiceUri</code> is introduced for replacing implementation specific settings <code class="highlighter-rouge">zkServers</code> and <code class="highlighter-rouge">zkLedgersRootPath</code>.</p>

<p>A metadata service uri defines the location of a metadata storage. In zookeeper based implementation, the metadata service url will be
<code class="highlighter-rouge">zk://&lt;zkServers&gt;/&lt;zkLedgersRootPath&gt;</code>.</p>

<p>This new setting in bookie configuration will be like as below:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>metadataServiceUri=zk://127.0.0.1/ledgers
</code></pre></div></div>

<p>If we eventually support Etcd as one of the metadata storages. Then the setting in bookie configuration to use Etcd will be:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>metadataServiceUri=etcd://&lt;etcd_servers&gt;/&lt;etcd_key_prefix&gt;
</code></pre></div></div>

<h3 id="proposed-changes">Proposed Changes</h3>

<h4 id="configuration">Configuration</h4>

<p>This BP proposes introducing a more generic metadata setting <code class="highlighter-rouge">metadataServiceUri</code> to replace implementation specific settings
<code class="highlighter-rouge">zkServers</code> and <code class="highlighter-rouge">zkLedgersRootPath</code>. All implementation specific settings should be considered moving to implementation itself.</p>

<p>The <code class="highlighter-rouge">metadataServiceUri</code> can also be used for replacing the need of configuring <code class="highlighter-rouge">ledgerManagerFactoryClass</code>, <code class="highlighter-rouge">registrationClientClass</code> and
<code class="highlighter-rouge">registrationManagerClass</code>. It is unnecessarily complicated to configure multiple settings to load a specific metadata implementation.
We can just use the <code class="highlighter-rouge">scheme</code> field in <code class="highlighter-rouge">metadataServiceUri</code> to resolve which metadata implementation to use. Using uri to resolve
different driver or implementation is commonly seen at java world, for example, jdbc to support different database drivers. Also, distributedlog
uses this pattern to load different metadata driver.</p>

<p>So in zookeeper based metadata implementation, the metadata service uri can be:</p>

<ul>
  <li><code class="highlighter-rouge">zk+flat://127.0.0.1/ledgers</code>: the scheme is “zk+flat”. it means a zookeeper base metadata implementation and it uses flat ledger manager.</li>
  <li><code class="highlighter-rouge">zk+hierarchical://127.0.0.1/ledgers</code>: the scheme is “zk+hierarchical”. it means a zookeeper base metadata implementation and it
uses hierarchical ledger manager.</li>
  <li><code class="highlighter-rouge">zk+longhierarchical://127.0.0.1/ledgers</code>: the scheme is “zk+longhierarchical”. it means a zookeeper base metadata implementation and it
uses long hierarchical ledger manager.</li>
</ul>

<h4 id="metadata-stores">Metadata Stores</h4>

<p>Introduce a new directory called <code class="highlighter-rouge">metadata-stores</code> for storing all the metadata related modules. Under this directory, it will have following modules:</p>

<ul>
  <li><code class="highlighter-rouge">api</code>: it is the metadata api module <code class="highlighter-rouge">metadata-store-api</code>. It contains all the files defining the metadata interfaces.</li>
  <li><code class="highlighter-rouge">zookeeper</code>: it is the zookeeper implementation module <code class="highlighter-rouge">metadata-store-zookeeper</code>. It contains all the files that implementing the metadata interfaces
using zookeeper.</li>
</ul>

<p>If a new metadata implementation is added, a new directory will be created under <code class="highlighter-rouge">metadata-stores</code> to contain the implementation. For example, if we
are adding <code class="highlighter-rouge">Etcd</code> as the metadata store. A <code class="highlighter-rouge">Etcd</code> directory will be created under <code class="highlighter-rouge">metadata-stores/etcd</code> to store the files that implement metadata
interfaces using etcd client. And its module is named as <code class="highlighter-rouge">metadata-store-etcd</code>.</p>

<p>We then change bookkeeper-server to depend on <code class="highlighter-rouge">metadata-store-api</code> only.</p>

<p>This approach is same as other pluggable modules <code class="highlighter-rouge">stats-api</code> and <code class="highlighter-rouge">http-server</code>.</p>

<h3 id="compatibility-deprecation-and-migration-plan">Compatibility, Deprecation, and Migration Plan</h3>

<p>No compatibility concern at this moment. New setting is introduced and old settings will still continue to work.
No immediate deprecation.
No migration is needed.</p>

<h3 id="test-plan">Test Plan</h3>

<p>This proposal is mostly around refactor. So existing test cases would cover this.</p>

<h3 id="rejected-alternatives">Rejected Alternatives</h3>

<p>N/A</p>

        </section>

        
      </div>
    </div>
  </div>
</div>
    </main>

    <footer class="footer">
  <div class="container">
    <div class="content has-text-centered">
      <p>
        Copyright &copy; 2016 - 2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
      </p>
      <p>
        Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
      </p>
    </div>
  </div>
</footer>

  </body>

  <script src="/js/app.js"></script>

  
  <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-104419626-1', 'auto');
  ga('send', 'pageview');

</script>

  
</html>
