You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@distributedlog.apache.org by si...@apache.org on 2016/09/13 09:00:10 UTC

[31/64] [partial] incubator-distributedlog git commit: delete the content from old site

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/configuration/core.html
----------------------------------------------------------------------
diff --git a/configuration/core.html b/configuration/core.html
deleted file mode 100644
index 4c038a5..0000000
--- a/configuration/core.html
+++ /dev/null
@@ -1,976 +0,0 @@
-<!DOCTYPE html>
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Core Library Configuration &mdash; DistributedLog 1.0 documentation</title>
-    
-    <link rel="stylesheet" href="../_static/override.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/bootstrap-3.1.0/css/bootstrap.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/bootstrap-3.1.0/css/bootstrap-theme.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/featherlight.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/docbird.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/docbird-xs.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/jquery.rateyo.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/selection-sharer.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '1.0',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/underscore.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <script type="text/javascript" src="../_static/bootstrap-3.1.0/js/bootstrap.min.js"></script>
-    <script type="text/javascript" src="../_static/js/bootstrap-docbird.js"></script>
-    <script type="text/javascript" src="../_static/js/jquery-1.11.0.min.js"></script>
-    <script type="text/javascript" src="../_static/js/jquery-fix.js"></script>
-    <script type="text/javascript" src="../_static/js/featherlight.min.js"></script>
-    <script type="text/javascript" src="../_static/js/ifvisible.js"></script>
-    <script type="text/javascript" src="../_static/js/timeme.js"></script>
-    <script type="text/javascript" src="../_static/js/jquery.rateyo.min.js"></script>
-    <script type="text/javascript" src="../_static/js/js.cookie.js"></script>
-    <link rel="shortcut icon" href="../_static/docbird.ico"/>
-    <link rel="top" title="DistributedLog 1.0 documentation" href="../index.html" />
-    <link rel="up" title="Configuration" href="main.html" />
-    <link rel="next" title="Write Proxy Configuration" href="proxy.html" />
-    <link rel="prev" title="Configuration" href="main.html" />
-<meta charset='utf-8'>
-<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
-<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
-<meta name="apple-mobile-web-app-capable" content="yes">
-
-<meta property="docbird:project" content="DistributedLog" />
-
-  </head>
-  <body>
-<div class="navbar navbar-default navbar-fixed-top" role="navigation">
-  <div class="container-fluid">
-    <div class="row db-header">
-      <div class="col-sm-3 col-md-3 col-lg-3 hidden-xs db-header-controls">
-        <a href="/" alt="Back to Docbird">
-  <div class="db-home-button">
-    <span class="glyphicon glyphicon-home"></span>
-  </div>
-</a>
-        
-<form action="../search.html" method="get" class="db-searchbox-form">
- <div class="form-group">
-  <input type="text" name="q" class="form-control db-searchbox-input" placeholder="Search DistributedLog" />
- </div>
-  <input type="hidden" name="check_keywords" value="yes" />
-  <input type="hidden" name="area" value="default" />
-</form>
-
-      </div>
-      <div class="col-sm-7 col-md-7 col-lg-7 col-xs-12 db-header-info">
-        <div class="visible-xs">
-          <a href="/" alt="Back to Docbird">
-  <div class="db-home-button">
-    <span class="glyphicon glyphicon-home"></span>
-  </div>
-</a>
-        </div>
-        <div class="visible-xs db-xs-menu-button">
-          <div class="navbar-header">
-  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#db-xs-menu">
-    <span class="sr-only">Toggle navigation</span>
-    <span class="icon-bar"></span>
-    <span class="icon-bar"></span>
-    <span class="icon-bar"></span>
-  </button>
-</div>
-        </div>
-        <div class="db-header-projectname">
-          <h1><a href="../index.html">DistributedLog</a></h1>
-        </div>
-      </div>
-    </div>
-    <div class="row db-xs-menu hidden-sm hidden-md hidden-lg
-    collapse" id="db-xs-menu">
-      
-<form action="../search.html" method="get" class="db-searchbox-form">
- <div class="form-group">
-  <input type="text" name="q" class="form-control db-searchbox-input" placeholder="Search DistributedLog" />
- </div>
-  <input type="hidden" name="check_keywords" value="yes" />
-  <input type="hidden" name="area" value="default" />
-</form>
-
-      <div class="db-toc" role="complementary">
-        <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="../download.html">Releases</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc1">0.3.51-RC1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc0">0.3.51-RC0</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../basics/main.html">Getting Started</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../basics/introduction.html">Introduction</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../basics/quickstart.html">Quick Start</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../api/main.html">API</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../api/core.html">Core Library API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/proxy.html">Write Proxy Client API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/practice.html">Best Practices</a></li>
-</ul>
-</li>
-<li class="toctree-l1 current"><a class="reference internal" href="main.html">Configuration</a><ul class="current">
-<li class="toctree-l2 current"><a class="current reference internal" href="">Core Library Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="proxy.html">Write Proxy Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="client.html">Client Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="perlog.html">Per Stream Configuration</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../considerations/main.html">Considerations</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#consistency-durability-and-ordering">Consistency, Durability and Ordering</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#partitioning">Partitioning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#processing-semantics">Processing Semantics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../architecture/main.html">Architecture</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#data-model">Data Model</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#software-stack">Software Stack</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#lifecyle-of-records">Lifecyle of records</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../design/main.html">Detail Design</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#consistency">Consistency</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#streaming-reads">Streaming Reads</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#logsegment-lifecycle">LogSegment Lifecycle</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../globalreplicatedlog/main.html">Global Replicated Log</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#region-aware-data-placement-policy">Region Aware Data Placement Policy</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#cross-region-speculative-reads">Cross Region Speculative Reads</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../implementation/main.html">Implementation</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../implementation/storage.html">Storage</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../operations/main.html">Deployment &amp; Administration</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../operations/deployment.html">Cluster Setup &amp; Deployment</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/operations.html">DistributedLog Operations</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/performance.html">Performance Tuning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/hardware.html">Hardware</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/monitoring.html">Monitoring</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/zookeeper.html">ZooKeeper</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/bookkeeper.html">BookKeeper</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../performance/main.html">Performance</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../references/main.html">References</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../references/configuration.html">Configuration Settings</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/metrics.html">Metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/features.html">Features</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../tutorials/main.html">Tutorials</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#basic">Basic</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#messaging">Messaging</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#replicated-state-machines">Replicated State Machines</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#analytics">Analytics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../developer/main.html">Developer</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../developer/release.html">Release</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
-</ul>
-
-      </div>
-    </div>
-  </div>
-</div>
-<div class="container">
-  <div class="row">
-    <div style="z-index: 1" class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
-      <style>
-  .overflow-container {
-    display: none;
-  }
-  .overflow-toggle {
-    text-decoration: none;
-    border-bottom: none;
-    border-radius: 4px;
-    border: 1px solid #eee;
-    padding: 1px 3px 3px;
-    color: #888;
-    font-weight: normal;
-    background-color: linen;
-    line-height: 1.85em;
-    cursor: pointer;
-  }
-  .overflow-toggle:hover {
-    color: #333;
-    border-color: #ccc;
-    background-color: beige;
-  }
-</style>
-<script>
-$(function(){
-  $('.overflow-toggle').on('click', function(){
-    $(this).next().toggle();
-  });
-});
-</script>
-<div class="db-project-header-container">
-  <div class="row">
-    
-    <div class="db-project-info col-lg-12 col-md-12 col-sm-12 col-xs-12">
-      <h1>
-        <a href="../index.html">DistributedLog</a>
-        
-      </h1>
-        
-      <div class="db-code-link">
-        <a href="git@github.com:twitter/distributedlog.git/tree/master/" target="_blank">git@github.com:twitter/distributedlog.git/tree/master/</a>
-      </div>
-      
-      
-    </div>
-  </div>
-  
-  <div class="row db-project-links-row">
-    <div class=" col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <div class="db-hashtag-container">
-        
-        <span class="db-project-link-label">OWNERS</span>
-          
-            <em>None</em>
-          
-          
-      </div>
-    </div>
-    <div class="col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <div class="db-hashtag-container">
-        
-        <span class="db-project-link-label">TAGS</span>
-        
-          <em><a class="db-hashtag" href="/?q=tags:%23uses_maven">#uses_maven</a></em>
-        
-        
-      </div>
-    </div>
-    <div class="col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <span class="db-project-link-label">HEALTH</span>
-        
-        <h3 style="margin-top: 0">
-<!--        <a href="/techdocs/checklist.html" class="label label-success">-->
-        <a href="/report/distributedlog" class="">
-          9.0 / 10
-          <span style="margin-left: .25em" class="glyphicon glyphicon-ok"></span>
-        </a>
-        
-      </h3>
-    </div>
-    <div class="col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <span class="db-project-link-label">RATING</span>
-      <div id="rateYo"></div>
-    </div>
-  </div>
-  
-</div>
-    </div>
-    <div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
-      <div class="db-content-body">
-        
-  <div class="section" id="core-library-configuration">
-<h1>Core Library Configuration<a class="headerlink" href="#core-library-configuration" title="Permalink to this headline">�</a></h1>
-<p>This section describes the configuration settings used by DistributedLog Core Library.</p>
-<p>All the core library settings are managed in <cite>DistributedLogConfiguration</cite>, which is
-basically a properties based configuration, which extends from Apache commons
-<cite>CompositeConfiguration</cite>. All the DL settings are in camel case and prefixed with a
-meaningful component name. For example, <cite>zkSessionTimeoutSeconds</cite> means the session timeout
-for component <cite>zk</cite> in seconds.</p>
-<p>The default distributedlog configuration is constructed by instantiating an instance
-of <cite>DistributedLogConfiguration</cite>. This distributedlog configuration will automatically load
-the settings that specified via <cite>SystemConfiguration</cite>.</p>
-<div class="highlight-python"><pre>DistributedLogConfiguration conf = new DistributedLogConfiguration();</pre>
-<div style='display:none;' class='raw-code'><pre>DistributedLogConfiguration conf = new DistributedLogConfiguration();</pre>
-</div></div>
-<p>The recommended way is to load configuration from URL that points to a configuration file
-(<cite>#loadConf(URL)</cite>).</p>
-<div class="highlight-python"><pre>String configFile = "/path/to/distributedlog/conf/file";
-DistributedLogConfiguration conf = new DistributedLogConfiguration();
-conf.loadConf(new File(configFile).toURI().toURL());</pre>
-<div style='display:none;' class='raw-code'><pre>String configFile = "/path/to/distributedlog/conf/file";
-DistributedLogConfiguration conf = new DistributedLogConfiguration();
-conf.loadConf(new File(configFile).toURI().toURL());</pre>
-</div></div>
-<div class="section" id="zookeeper-settings">
-<h2>ZooKeeper Settings<a class="headerlink" href="#zookeeper-settings" title="Permalink to this headline">�</a></h2>
-<p>A distributedlog namespace usually creates two zookeeper client instances: one is used
-for DL metadata operations, while the other one is used by bookkeeper. All the zookeeper
-clients are <em>retryable</em> clients, which they would reconnect when session is expired.</p>
-<div class="section" id="dl-zookeeper-settings">
-<h3>DL ZooKeeper Settings<a class="headerlink" href="#dl-zookeeper-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>zkSessionTimeoutSeconds</em>: ZooKeeper session timeout, in seconds. Default is 30 seconds.</li>
-<li><em>zkNumRetries</em>: Number of retries of each zookeeper request could attempt on retryable exceptions.
-Default is 3.</li>
-<li><em>zkRetryStartBackoffMillis</em>: The initial backoff time of first retry of each zookeeper request, in milliseconds.
-Default is 5000.</li>
-<li><em>zkRetryMaxBackoffMillis</em>: The max backoff time of retries of each zookeeper request, in milliseconds.
-Default is 30000.</li>
-<li><em>zkcNumRetryThreads</em>: The number of retry threads used by this zookeeper client. Default is 1.</li>
-<li><em>zkRequestRateLimit</em>: The rate limiter is basically a guava <cite>RateLimiter</cite>. It is rate limiting the
-requests that sent by zookeeper client per second. If the value is non-positive, the rate limiting
-is disable. Default is 0.</li>
-<li><em>zkAclId</em>: The digest id used for zookeeper ACL. If it is null, ACL is disabled. Default is null.</li>
-</ul>
-</div>
-<div class="section" id="bk-zookeeper-settings">
-<h3>BK ZooKeeper Settings<a class="headerlink" href="#bk-zookeeper-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>bkcZKSessionTimeoutSeconds</em>: ZooKeeper session timeout, in seconds. Default is 30 seconds.</li>
-<li><em>bkcZKNumRetries</em>: Number of retries of each zookeeper request could attempt on retryable exceptions.
-Default is 3.</li>
-<li><em>bkcZKRetryStartBackoffMillis</em>: The initial backoff time of first retry of each zookeeper request, in milliseconds.
-Default is 5000.</li>
-<li><em>bkcZKRetryMaxBackoffMillis</em>: The max backoff time of retries of each zookeeper request, in milliseconds.
-Default is 30000.</li>
-<li><em>bkcZKRequestRateLimit</em>: The rate limiter is basically a guava <cite>RateLimiter</cite>. It is rate limiting the
-requests that sent by zookeeper client per second. If the value is non-positive, the rate limiting
-is disable. Default is 0.</li>
-</ul>
-<p>There are a few rules to follow when optimizing the zookeeper settings:</p>
-<ol class="arabic simple">
-<li>In general, higher session timeout is much better than lower timeout, which will make zookeeper client
-more resilent to any network glitches.</li>
-<li>A lower backoff time is better for latency, as it would trigger fast retries. But it
-could trigger retry storm if the backoff time is too low.</li>
-<li>Number of retries should be tuned based on the backoff time settings and corresponding latency SLA budget.</li>
-<li>BK and DL readers use zookeeper client for metadata accesses. It is recommended to have higher session timeout,
-higher number of retries and proper backoff time.</li>
-<li>DL writers also use zookeeper client for ownership tracking. It is required to act quickly on network glitches.
-It is recommended to have low session timeout, low backoff time and proper number of retries.</li>
-</ol>
-</div>
-</div>
-<div class="section" id="bookkeeper-settings">
-<h2>BookKeeper Settings<a class="headerlink" href="#bookkeeper-settings" title="Permalink to this headline">�</a></h2>
-<p>All the bookkeeper client configuration settings could be loaded via <cite>DistributedLogConfiguration</cite>. All of them
-are prefixed with <cite>bkc.</cite>. For example, <cite>bkc.zkTimeout</cite> in distributedlog configuration will be applied as
-<cite>zkTimeout</cite> in bookkeeper client configuration.</p>
-<div class="section" id="general-settings">
-<h3>General Settings<a class="headerlink" href="#general-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>bkcNumIOThreads</em>: The number of I/O threads used by netty in bookkeeper client.
-The default value is <cite>numWorkerThreads</cite>.</li>
-</ul>
-</div>
-<div class="section" id="timer-settings">
-<h3>Timer Settings<a class="headerlink" href="#timer-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>timerTickDuration</em>: The tick duration in milliseconds that used for timeout
-timer in bookkeeper client. The default value is 100 milliseconds.</li>
-<li><em>timerNumTicks</em>: The number of ticks that used for timeout timer in bookkeeper client.
-The default value is 1024.</li>
-</ul>
-</div>
-<div class="section" id="data-placement-settings">
-<h3>Data Placement Settings<a class="headerlink" href="#data-placement-settings" title="Permalink to this headline">�</a></h3>
-<p>A log segment is backed by a bookkeeper <cite>ledger</cite>. A ledger's data is stored in an ensemble
-of bookies in a stripping way. Each entry will be added in a <cite>write-quorum</cite> size of bookies.
-The add operation will complete once it receives responses from a <cite>ack-quorum</cite> size of bookies.
-The stripping is done in a round-robin way in bookkeeper.</p>
-<p>For example, we configure the ensemble-size to 5, write-quorum-size to 3,
-and ack-quorum-size to 2. The data will be stored in following stripping way.</p>
-<div class="highlight-python"><pre>| entry id | bk1 | bk2 | bk3 | bk4 | bk5 |
-|     0    |  x  |  x  |  x  |     |     |
-|     1    |     |  x  |  x  |  x  |     |
-|     2    |     |     |  x  |  x  |  x  |
-|     3    |  x  |     |     |  x  |  x  |
-|     4    |  x  |  x  |     |     |  x  |
-|     5    |  x  |  x  |  x  |     |     |</pre>
-<div style='display:none;' class='raw-code'><pre>| entry id | bk1 | bk2 | bk3 | bk4 | bk5 |
-|     0    |  x  |  x  |  x  |     |     |
-|     1    |     |  x  |  x  |  x  |     |
-|     2    |     |     |  x  |  x  |  x  |
-|     3    |  x  |     |     |  x  |  x  |
-|     4    |  x  |  x  |     |     |  x  |
-|     5    |  x  |  x  |  x  |     |     |</pre>
-</div></div>
-<p>We don't recommend stripping within a log segment to increase bandwidth. We'd recommend using
-multiple distributedlog streams to increase bandwidth in higher level of distributedlog. so
-typically the ensemble size will be set to be the same value as <cite>write-quorum-size</cite>.</p>
-<ul class="simple">
-<li><em>bkcEnsembleSize</em>: The ensemble size of the log segment. The default value is 3.</li>
-<li><em>bkcWriteQuorumSize</em>: The write quorum size of the log segment. The default value is 3.</li>
-<li><em>bkcAckQuorumSize</em>: The ack quorumm size of the log segment. The default value is 2.</li>
-</ul>
-<div class="section" id="dns-resolver-settings">
-<h4>DNS Resolver Settings<a class="headerlink" href="#dns-resolver-settings" title="Permalink to this headline">�</a></h4>
-<p>DistributedLog uses bookkeeper's <cite>rack-aware</cite> data placement policy on placing data across
-bookkeeper nodes. The <cite>rack-aware</cite> data placement uses a DNS resolver to resolve a bookie
-address into a network location and then use those locations to build the network topology.</p>
-<p>There are two built-in DNS resolvers in DistributedLog:</p>
-<ol class="arabic simple">
-<li><em>DNSResolverForRacks</em>: It resolves domain name like <cite>(region)-(rack)-xxx-xxx.*</cite> to
-network location <cite>/(region)/(rack)</cite>. If resolution failed, it returns <cite>/default-region/default-rack</cite>.</li>
-<li><em>DNSResolverForRows</em>: It resolves domain name like <cite>(region)-(row)xx-xxx-xxx.*</cite> to
-network location <cite>/(region)/(row)</cite>. If resolution failed, it returns <cite>/default-region/default-row</cite>.</li>
-</ol>
-<p>The DNS resolver could be loaded by reflection via <cite>bkEnsemblePlacementDnsResolverClass</cite>.</p>
-<p><cite>(region)</cite> could be overrided in a configured <cite>dnsResolverOverrides</cite>. For example, if the
-host name is <cite>(regionA)-(row1)-xx-yyy</cite>, it would be resolved to <cite>/regionA/row1</cite> without any
-overrides. If the specified overrides is <cite>(regionA)-(row1)-xx-yyy:regionB</cite>,
-the resolved network location would be <cite>/regionB/row1</cite>. Allowing overriding region provides
-the optimization hits to bookkeeper if two <cite>logical</cite> regions are in same or close locations.</p>
-<ul class="simple">
-<li><em>bkEnsemblePlacementDnsResolverClass</em>: The DNS resolver class for bookkeeper rack-aware ensemble placement.
-The default value is <cite>DNSResolverForRacks</cite>.</li>
-<li><em>bkRowAwareEnsemblePlacement</em>: A flag indicates whether <cite>DNSResolverForRows</cite> should be used.
-If enabled, <cite>DNSResolverForRows</cite> will be used for DNS resolution in rack-aware placement policy.
-Otherwise, it would use the DNS resolver configured by <cite>bkEnsemblePlacementDnsResolverClass</cite>.</li>
-<li><em>dnsResolverOverrides</em>: The mapping used to override the region mapping derived by the DNS resolver.
-The value is a string of pairs of host-region mappings (<cite>host:region</cite>) separated by semicolon.
-By default it is empty string.</li>
-</ul>
-</div>
-</div>
-</div>
-<div class="section" id="namespace-configuration-settings">
-<h2>Namespace Configuration Settings<a class="headerlink" href="#namespace-configuration-settings" title="Permalink to this headline">�</a></h2>
-<p>This section lists all the general settings used by <cite>DistributedLogNamespace</cite>.</p>
-<div class="section" id="executor-settings">
-<h3>Executor Settings<a class="headerlink" href="#executor-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>numWorkerThreads</em>: The number of worker threads used by the namespace instance.
-The default value is the number of available processors.</li>
-<li><em>numReadAheadWorkerThreads</em>: The number of dedicated readahead worker treads used
-by the namespace instance. If it is non-positive, it would share the same executor
-for readahead. Otherwise, it would create a dedicated executor for readahead.
-The default value is 0.</li>
-<li><em>numLockStateThreads</em>: The number of lock state threads used by the namespace instance.
-The default value is 1.</li>
-<li><em>schedulerShutdownTimeoutMs</em>: The timeout value in milliseconds, for shutting down
-schedulers in the namespace instance. The default value is 5000ms.</li>
-<li><em>useDaemonThread</em>: The flag whether to use daemon thread for DL executor threads.
-The default value is false.</li>
-</ul>
-</div>
-<div class="section" id="metadata-settings">
-<h3>Metadata Settings<a class="headerlink" href="#metadata-settings" title="Permalink to this headline">�</a></h3>
-<p>The log segment metadata is serialized into a string of content with a version. The version in log segment
-metadata allows us evolving changes to metadata. All the versions supported by distributedlog right now
-are listed in the below table.</p>
-<table border="1" class="docutils">
-<colgroup>
-<col width="9%" />
-<col width="91%" />
-</colgroup>
-<thead valign="bottom">
-<tr class="row-odd"><th class="head">version</th>
-<th class="head">description</th>
-</tr>
-</thead>
-<tbody valign="top">
-<tr class="row-even"><td>0</td>
-<td>Invalid version number.</td>
-</tr>
-<tr class="row-odd"><td>1</td>
-<td>Basic version number.
-Inprogress: start tx id, ledger id, region id
-Completed: start/end tx id, ledger id, region id, record count and completion time</td>
-</tr>
-<tr class="row-even"><td>2</td>
-<td>Introduced LSSN (LogSegment Sequence Number)</td>
-</tr>
-<tr class="row-odd"><td>3</td>
-<td>Introduced Partial Truncated and Truncated status.
-A min active (entry_id, slot_id) pair is recorded in completed log segment
-metadata.</td>
-</tr>
-<tr class="row-even"><td>4</td>
-<td>Introduced Enveloped Entry Stucture. None &amp; LZ4 compression codec introduced.</td>
-</tr>
-<tr class="row-odd"><td>5</td>
-<td>Introduced Sequence Id.</td>
-</tr>
-</tbody>
-</table>
-<p>A general rule for log segment metadata upgrade is described as below. For example, we are upgrading
-from version <em>X</em> to version <em>X+1</em>.</p>
-<p>1. Upgrade the readers before upgrading writers. So the readers are able to recognize the log segments
-of version <em>X+1</em>.
-2. Upgrade the writers with the new binary of version <em>X+1</em> only. Keep the configuration <cite>ledgerMetadataLayoutVersion</cite>
-unchanged - still in version <em>X</em>.
-3. Once all the writers are running in same binary of version <em>X+1</em>. Update writers again with <cite>ledgerMetadataLayoutVersion</cite>
-set to version <em>X+1</em>.</p>
-<ul class="simple">
-<li><em>ledgerMetadataLayoutVersion</em>: The logsegment metadata layout version. The default value is 5. Apply for <cite>writers</cite> only.</li>
-<li><em>ledgerMetadataSkipMinVersionCheck</em>: The flag indicates whether DL should enforce minimum log segment metadata vesion check.
-If it is true, DL will skip the checking and read the log segment metadata if it could recognize. Otherwise, it would fail
-the read if the log segment's metadata version is less than the version that DL supports. By default, it is disabled.</li>
-<li><em>firstLogsegmentSequenceNumber</em>: The first log segment sequence number to start with for a stream. The default value is 1.
-The setting is only applied for writers, and only when upgrading metadata from version <cite>1</cite> to version <cite>2</cite>.
-In this upgrade, we need to update old log segments to add ledger sequence number, once the writers start generating
-new log segments with new version starting from this <cite>firstLogSegmentSequenceNumber</cite>.</li>
-<li><em>maxIdSanityCheck</em>: The flag indicates whether DL should do sanity check on transaction id. If it is enabled, DL will throw
-<cite>TransactionIdOutOfOrderException</cite> when it received a smaller transaction id than current maximum transaction id. By default,
-it is enabled.</li>
-<li><em>encodeRegionIDInVersion</em>: The flag indicates whether DL should encode region id into log segment metadata. In a global replicated
-log, the log segments can be created in different regions. The region id in log segment metadata would help figuring out what
-region that a log segment is created. The region id in log segment metadata would help for monitoring and troubleshooting.
-By default, it is disabled.</li>
-</ul>
-</div>
-<div class="section" id="namespace-settings">
-<h3>Namespace Settings<a class="headerlink" href="#namespace-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>federatedNamespaceEnabled</em>: The flag indicates whether DL should use federated namespace. By default, it is disabled.</li>
-<li><em>federatedMaxLogsPerSubnamespace</em>: The maximum number of log stream per sub namespace in a federated namespace. By default, it is 15000</li>
-<li><em>federatedCheckExistenceWhenCacheMiss</em>: The flag indicates whether to check the existence of a log stream in zookeeper or not,
-if querying the local cache of the federated namespace missed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="writer-configuration-settings">
-<h2>Writer Configuration Settings<a class="headerlink" href="#writer-configuration-settings" title="Permalink to this headline">�</a></h2>
-<div class="section" id="id1">
-<h3>General Settings<a class="headerlink" href="#id1" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>createStreamIfNotExists</em>: The flag indicates whether to create a log stream if it doesn't exist. By default, it is true.</li>
-<li><em>compressionType</em>: The compression type used when enveloping the output buffer. The available compression types are
-<cite>none</cite> and <cite>lz4</cite>. By default, it is <cite>none</cite> - no compression.</li>
-<li><em>failFastOnStreamNotReady</em>: The flag indicates whether to fail immediately if the stream is not ready rather than enqueueing
-the request. A log stream is considered as <cite>not-ready</cite> when it is either initializing the log stream or rolling a new log
-segment. If this is enabled, DL would fail the write request immediately when the stream isn't ready. Otherwise, it would
-enqueue the request and wait for the stream become ready. Please consider turning it on for the use cases that could retry
-writing to other log streams, which it would result in fast failure hence client could retry other streams immediately.
-By default, it is disabled.</li>
-<li><em>disableRollingOnLogSegmentError</em>: The flag to disable rolling log segment when encountered error. By default, it is true.</li>
-</ul>
-</div>
-<div class="section" id="durability-settings">
-<h3>Durability Settings<a class="headerlink" href="#durability-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>isDurableWriteEnabled</em>: The flag indicates whether durable write is enabled. By default it is true.</li>
-</ul>
-</div>
-<div class="section" id="transmit-settings">
-<h3>Transmit Settings<a class="headerlink" href="#transmit-settings" title="Permalink to this headline">�</a></h3>
-<p>DL writes the log records into a transmit buffer before writing to bookkeeper. The following settings control
-the frequency of transmits and commits.</p>
-<ul class="simple">
-<li><em>writerOutputBufferSize</em>: The output buffer size in bytes. Larger buffer size will result in higher compression ratio and
-it would reduce the entries sent to bookkeeper, use the disk bandwidth more efficiently and improve throughput.
-Set this setting to <cite>0</cite> will ask DL to transmit the data immediately, which it would achieve low latency.</li>
-<li><em>periodicFlushFrequencyMilliSeconds</em>: The periodic flush frequency in milliseconds. If the setting is set to a positive value,
-the data in transmit buffer will be flushed in every half of the provided interval. Otherwise, the periodical flush will be
-disabled. For example, if this setting is set to <cite>10</cite> milliseconds, the data will be flushed (<cite>transmit</cite>) every 5 milliseconds.</li>
-<li><em>enableImmediateFlush</em>: The flag to enable immediate flush a control record. It is a flag to control the period to make data
-visible to the readers. If this settings is true, DL would flush a control record immediately after transmitting the user data
-is completed. The default value is false.</li>
-<li><em>minimumDelayBetweenImmediateFlushMilliSeconds</em>: The minimum delay between two immediate flushes, in milliseconds. This setting
-only takes effects when immediate flush is enabled. It is designed to tolerant the bursty of traffic when immediate flush is enabled,
-which prevents sending too many control records to the bookkeeper.</li>
-</ul>
-</div>
-<div class="section" id="logsegment-retention-settings">
-<h3>LogSegment Retention Settings<a class="headerlink" href="#logsegment-retention-settings" title="Permalink to this headline">�</a></h3>
-<p>The following settings are related to log segment retention.</p>
-<ul class="simple">
-<li><em>logSegmentRetentionHours</em>: The log segment retention period, in hours. In other words, how long should DL keep the log segment
-once it is <cite>truncated</cite> (<cite>explicitTruncationByApp`==true) or `completed</cite> (<a href="#id2"><span class="problematic" id="id3">`</span></a>explicitTruncationByApp`==false).</li>
-<li><em>explicitTruncationByApp</em>: The flag indicates that truncation is managed explicitly by the application. If this is set then time
-based retention only clean the log segments which are marked as <cite>truncated</cite>. By default it is disabled.</li>
-</ul>
-</div>
-<div class="section" id="logsegment-rolling-settings">
-<h3>LogSegment Rolling Settings<a class="headerlink" href="#logsegment-rolling-settings" title="Permalink to this headline">�</a></h3>
-<p>The following settings are related to log segment rolling.</p>
-<ul class="simple">
-<li><em>logSegmentRollingMinutes</em>: The log segment rolling interval, in minutes. If the setting is set to a positive value, DL will roll
-log segments based on time. Otherwise, it will roll log segment based on size (<cite>maxLogSegmentBytes</cite>). The default value is 2 hours.</li>
-<li><em>maxLogSegmentBytes</em>: The maximum size of a log segment, in bytes. This setting only takes effects when time based rolling is disabled.
-If it is enabled, DL will roll a new log segment when the current one reaches the provided threshold. The default value is 256MB.</li>
-<li><em>logSegmentRollingConcurrency</em>: The concurrency of log segment rolling. If the value is positive, it means how many log segments
-can be rolled at the same time. Otherwise, it is unlimited. The default value is 1.</li>
-</ul>
-</div>
-<div class="section" id="logsegment-allocation-settings">
-<h3>LogSegment Allocation Settings<a class="headerlink" href="#logsegment-allocation-settings" title="Permalink to this headline">�</a></h3>
-<p>A bookkeeper ledger is allocated when a DL stream is rolling into a new log segment. To reduce the latency penalty on log segment rolling,
-a ledger allocator could be used for pre-allocating the ledgers for DL streams. This section describes the settings related to ledger
-allocation.</p>
-<ul class="simple">
-<li><em>enableLedgerAllocatorPool</em>: The flag indicates whether to use ledger allocator pool or not. It is disabled by default. It is recommended
-to enable on write proxy.</li>
-<li><em>ledgerAllocatorPoolPath</em>: The path of the ledger allocator pool. The default value is &quot;.allocation_pool&quot;. The allocator pool path has to
-be prefixed with <cite>&quot;.&quot;</cite>. A DL namespace is allowed to have multiple allocator pool, as they will be acted independently.</li>
-<li><em>ledgerAllocatorPoolName</em>: The name of the ledger allocator pool. Default value is null. It is set by write proxy on startup.</li>
-<li><em>ledgerAllocatorPoolCoreSize</em>: The number of ledger allocators in the pool. The default value is 20.</li>
-</ul>
-</div>
-<div class="section" id="write-limit-settings">
-<h3>Write Limit Settings<a class="headerlink" href="#write-limit-settings" title="Permalink to this headline">�</a></h3>
-<p>This section describes the settings related to queue-based write limiting.</p>
-<ul class="simple">
-<li><em>globalOutstandingWriteLimit</em>: The maximum number of outstanding writes. If this setting is set to a positive value, the global
-write limiting is enabled - when the number of outstanding writes go above the threshold, the consequent requests will be rejected
-with <cite>OverCapacity</cite> exceptions. Otherwise, it is disabled. The default value is 0.</li>
-<li><em>perWriterOutstandingWriteLimit</em>: The maximum number of outstanding writes per writer. It is similar as <cite>globalOutstandingWriteLimit</cite>
-but applied per writer instance. The default value is 0.</li>
-<li><em>outstandingWriteLimitDarkmode</em>: The flag indicates whether the write limiting is running in darkmode or not. If it is running in
-dark mode, the request is not rejected when it is over limit, but just record it in the stats. By default, it is in dark mode. It
-is recommended to run in dark mode to understand the traffic pattern before enabling real write limiting.</li>
-</ul>
-</div>
-<div class="section" id="lock-settings">
-<h3>Lock Settings<a class="headerlink" href="#lock-settings" title="Permalink to this headline">�</a></h3>
-<p>This section describes the settings related to distributed lock used by the writers.</p>
-<ul class="simple">
-<li><em>lockTimeoutSeconds</em>: The lock timeout in seconds. The default value is 30. If it is 0 or negative, the caller will attempt claiming
-the lock, if there is no owner, it would claim successfully, otherwise it would return immediately and throw exception to indicate
-who is the current owner.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="reader-configuration-settings">
-<h2>Reader Configuration Settings<a class="headerlink" href="#reader-configuration-settings" title="Permalink to this headline">�</a></h2>
-<div class="section" id="id4">
-<h3>General Settings<a class="headerlink" href="#id4" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>readLACLongPollTimeout</em>: The long poll timeout for reading <cite>LastAddConfirmed</cite> requests, in milliseconds.
-The default value is 1 second. It is typically recommended to tune approximately with the request arrival interval. Otherwise, it would
-end up becoming unnecessary short polls.</li>
-</ul>
-</div>
-<div class="section" id="readahead-settings">
-<h3>ReadAhead Settings<a class="headerlink" href="#readahead-settings" title="Permalink to this headline">�</a></h3>
-<p>This section describes the settings related to readahead in DL readers.</p>
-<ul class="simple">
-<li><em>enableReadAhead</em>: Flag to enable read ahead in DL readers. It is enabled by default.</li>
-<li><em>readAheadMaxRecords</em>: The maximum number of records that will be cached in readahead cache by the DL readers. The default value
-is 10. A higher value will improve throughput but use more memory. It should be tuned properly to avoid jvm gc if the reader cannot
-keep up with the writing rate.</li>
-<li><em>readAheadBatchSize</em>: The maximum number of entries that readahead worker will read in one batch. The default value is 2.
-Increase the value to increase the concurrency of reading entries from bookkeeper. It is recommended to tune to a proper value for
-catching up readers, not to exhaust bookkeeper's bandwidth.</li>
-<li><em>readAheadWaitTimeOnEndOfStream</em>: The wait time if the reader reaches end of stream and there isn't any new inprogress log segment,
-in milliseconds. The default value is 10 seconds.</li>
-<li><em>readAheadNoSuchLedgerExceptionOnReadLACErrorThresholdMillis</em>: If readahead worker keeps receiving <cite>NoSuchLedgerExists</cite> exceptions
-when reading <cite>LastAddConfirmed</cite> in the given period, it would stop long polling <cite>LastAddConfirmed</cite> and re-initialize the ledger handle
-and retry. The threshold is in milliseconds. The default value is 10 seconds.</li>
-</ul>
-</div>
-<div class="section" id="reader-constraint-settings">
-<h3>Reader Constraint Settings<a class="headerlink" href="#reader-constraint-settings" title="Permalink to this headline">�</a></h3>
-<p>This section describes the constraint settings in DL reader.</p>
-<ul class="simple">
-<li><em>ignoreTruncationStatus</em>: The flag whether to ignore truncation status when reading the records. By default, it is false.
-The readers will not attempt to read a log segment that is marked as <cite>Truncated</cite> if this setting is false. It can be enabled for
-tooling and troubleshooting.</li>
-<li><em>alertPositionOnTruncated</em>: The flag whether we should alert when reader is positioned on a truncated segment. By default, it is true.
-It would alert and fail the reader if it is positioned at a <cite>Truncated</cite> log segment when the setting is true. It can be disabled for
-tooling and troubleshooting.</li>
-<li><em>positionGapDetectionEnabled</em>: The flag whether to enable position gap detection or not. This is a very strict constraint on reader,
-to prevent readers miss reading records due to any software bugs. It is enabled by default.</li>
-</ul>
-</div>
-<div class="section" id="idle-reader-settings">
-<h3>Idle Reader Settings<a class="headerlink" href="#idle-reader-settings" title="Permalink to this headline">�</a></h3>
-<p>There is a mechanism to detect idleness of readers, to prevent reader becoming stall due to any bugs.</p>
-<ul class="simple">
-<li><em>readerIdleWarnThresholdMillis</em>: The warning threshold of the time that a reader becomes idle, in milliseconds. If a reader becomes
-idle more than the threshold, it would dump warnings in the log. The default value is 2 minutes.</li>
-<li><em>readerIdleErrorThresholdMillis</em>: The error threshold of the time that a reader becomes idle, in milliseconds. If a reader becomes
-idle more than the threshold, it would throw <cite>IdleReader</cite> exceptions to notify applications. The default value is <cite>Integer.MAX_VALUE</cite>.</li>
-</ul>
-</div>
-<div class="section" id="scan-settings">
-<h3>Scan Settings<a class="headerlink" href="#scan-settings" title="Permalink to this headline">�</a></h3>
-<ul class="simple">
-<li><em>firstNumEntriesEachPerLastRecordScan</em>: Number of entries to scan for first scan of reading last record. The default value is 2.</li>
-<li><em>maxNumEntriesPerReadLastRecordScan</em>: Maximum number of entries for each scan to read last record. The default value is 16.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="tracing-stats-settings">
-<h2>Tracing/Stats Settings<a class="headerlink" href="#tracing-stats-settings" title="Permalink to this headline">�</a></h2>
-<p>This section describes the settings related to tracing and stats.</p>
-<ul class="simple">
-<li><em>traceReadAheadDeliveryLatency</em>: Flag to enable tracing read ahead delivery latency. By default it is disabled.</li>
-<li><em>metadataLatencyWarnThresholdMs</em>: The warn threshold of metadata access latency, in milliseconds. If a metadata operation takes
-more than the threshold, it would be logged. By default it is 1 second.</li>
-<li><em>dataLatencyWarnThresholdMs</em>: The warn threshold for data access latency, in milliseconds. If a data operation takes
-more than the threshold, it would be logged. By default it is 2 seconds.</li>
-<li><em>traceReadAheadMetadataChanges</em>: Flag to enable tracing the major metadata changes in readahead. If it is enabled, it will log
-the readahead metadata changes with precise timestamp, which is helpful for troubleshooting latency related issues. By default it
-is disabled.</li>
-<li><em>enableTaskExecutionStats</em>: Flag to trace long running tasks and record task execution stats in the thread pools. It is disabled
-by default.</li>
-<li><em>taskExecutionWarnTimeMicros</em>: The warn threshold for the task execution time, in micros. The default value is 100,000.</li>
-<li><em>enablePerStreamStat</em>: Flag to enable per stream stat. By default, it is disabled.</li>
-</ul>
-</div>
-<div class="section" id="feature-provider-settings">
-<h2>Feature Provider Settings<a class="headerlink" href="#feature-provider-settings" title="Permalink to this headline">�</a></h2>
-<ul class="simple">
-<li><em>featureProviderClass</em>: The feature provider class. The default value is <cite>DefaultFeatureProvider</cite>, which disable all the features
-by default.</li>
-</ul>
-</div>
-</div>
-
-
-      </div>
-    </div>
-    <div class="hidden-xs col-sm-3 col-md-3 col-md-offset-1 col-lg-3 db-sidebar">
-      
-        <div class="db-toc" role="complementary">
-          <ul class="current">
-            <li class="toctree-l0 current"><a class="current reference internal" href="../index.html">DistributedLog</a></li>
-          </ul>
-          <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="../download.html">Releases</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc1">0.3.51-RC1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc0">0.3.51-RC0</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../basics/main.html">Getting Started</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../basics/introduction.html">Introduction</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../basics/quickstart.html">Quick Start</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../api/main.html">API</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../api/core.html">Core Library API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/proxy.html">Write Proxy Client API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/practice.html">Best Practices</a></li>
-</ul>
-</li>
-<li class="toctree-l1 current"><a class="reference internal" href="main.html">Configuration</a><ul class="current">
-<li class="toctree-l2 current"><a class="current reference internal" href="">Core Library Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="proxy.html">Write Proxy Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="client.html">Client Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="perlog.html">Per Stream Configuration</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../considerations/main.html">Considerations</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#consistency-durability-and-ordering">Consistency, Durability and Ordering</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#partitioning">Partitioning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#processing-semantics">Processing Semantics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../architecture/main.html">Architecture</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#data-model">Data Model</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#software-stack">Software Stack</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#lifecyle-of-records">Lifecyle of records</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../design/main.html">Detail Design</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#consistency">Consistency</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#streaming-reads">Streaming Reads</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#logsegment-lifecycle">LogSegment Lifecycle</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../globalreplicatedlog/main.html">Global Replicated Log</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#region-aware-data-placement-policy">Region Aware Data Placement Policy</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#cross-region-speculative-reads">Cross Region Speculative Reads</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../implementation/main.html">Implementation</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../implementation/storage.html">Storage</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../operations/main.html">Deployment &amp; Administration</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../operations/deployment.html">Cluster Setup &amp; Deployment</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/operations.html">DistributedLog Operations</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/performance.html">Performance Tuning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/hardware.html">Hardware</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/monitoring.html">Monitoring</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/zookeeper.html">ZooKeeper</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/bookkeeper.html">BookKeeper</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../performance/main.html">Performance</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../references/main.html">References</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../references/configuration.html">Configuration Settings</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/metrics.html">Metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/features.html">Features</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../tutorials/main.html">Tutorials</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#basic">Basic</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#messaging">Messaging</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#replicated-state-machines">Replicated State Machines</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#analytics">Analytics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../developer/main.html">Developer</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../developer/release.html">Release</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
-</ul>
-
-          <span id="last"></span>
-        </div>
-      
-    </div>
-    <!-- <div id="slidebox"> -->
-      <!-- <button id="slidebox_close" type="button" class="close">&times;</button> -->
-      <!-- <p>Rate This Page</p> -->
-      <!-- <div id="rateYo"></div> -->
-      <!-- <p>Comment</p>
-      <input type="text" name="comment"></input>
-      <button>Submit</button> -->
-    <!-- </div> -->
-  </div>
-</div>
-<footer class="footer">
-  <div class="container-fluid">
-    <div class="row">
-      <div class="col-md-10 col-md-offset-1">
-        <p class="pull-right">
-          <a href="#">Back to top</a>
-          
-          <br/>
-          
-<div id="sourcelink">
-  <a href="git@github.com:twitter/distributedlog.git/tree/master/docs/configuration/core.rst"
-     rel="nofollow">Source</a>
-  
-  <a href="../_sources/configuration/core.txt"
-     rel="nofollow">Raw</a>
-  <a href="../__docbird-build.log"
-     rel="nofollow">Build Log</a>
-  <a href="/report/stats/distributedlog:distributedlog"
-     rel="nofollow">Stats</a>
-</div>
-        </p>
-        <p>
-          Built and hosted by <a href="/">DocBird</a>. 
-        </p>
-      </div>
-    </div>
-  </div>
-</footer>
-<script type="text/javascript" src="../_static/js/docbird.js"></script>
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-30775-8']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-<!-- <script type="text/javascript" src="//s/d41d8cd98f00b204e9800998ecf8427e/en_US-tbnx1s-1988229788/6163/97/1.4.3/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=e62237fc"></script>
--->
-
-<script type="text/javascript">
-  $(document).ready(function () {
-    // track user activity time (from https://github.com/jasonzissman/TimeMe.js)
-    TimeMe.setIdleDurationInSeconds(30);
-    TimeMe.setCurrentPageName("my-home-page");
-    TimeMe.initialize();
-
-    // record page visit event when user leaves the page
-    window.onbeforeunload = function (event) {
-      xmlhttp=new XMLHttpRequest();
-      xmlhttp.withCredentials = true;
-      xmlhttp.open("POST", "/event/distributedlog:distributedlog/visit", false);
-      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-      var event_data = {
-        total_time_reading: TimeMe.getTimeOnCurrentPageInSeconds(),
-        page: window.location.href
-      };
-      //alert("send: " + $.param(event_data));
-      xmlhttp.send($.param(event_data));
-    };
-
-    // ask user for page rating after 20 seconds
-    // setTimeout(function(){
-    //   alert("Rate this page!");
-    // }, 20000);
-  });
-</script>
-<!-- <style>
-#slidebox{
-  width: 250px;
-  height: 90px;
-  padding: 10px;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  position: fixed;
-  bottom: 3px;
-  right: -280px;
-  z-index: 1;
-}
-#slidebox .close{
-  margin-top: -5px;
-  opacity: 0.5;
-}
-#slidebox .close:hover{
-  opacity: 0.7;
-}
-</style> -->
-<script type="text/javascript">
-$(function() {
-  // $(window).scroll(function(){
-  //   var distanceTop = $('#last').offset().top - $(window).height();
-
-  //   if  ($(window).scrollTop() > distanceTop)
-  //     $('#slidebox').animate({'right':'3px'},300);
-  //   else
-  //     $('#slidebox').stop(true).animate({'right':'-280px'},100);
-  // });
-
-  // $('#slidebox .close').bind('click',function(){
-  //   $(this).parent().remove();
-  // });
-
-  $("#rateYo").rateYo({
-    normalFill: "#A0A0A0",
-    halfStar: true,
-    rating: (Cookies.get('docbird.rating.distributedlog.distributedlog') || 0.0)
-  }).on("rateyo.set", function (e, data) {
-      var event_data = {
-        comment: '', // see todo note below
-        rating: data.rating,
-        page: window.location.href
-      };
-      Cookies.get('docbird.rating.distributedlog.distributedlog', data.rating)
-      $.post('/event/distributedlog:distributedlog/rating', event_data)
-      // xmlhttp=new XMLHttpRequest();
-      // xmlhttp.withCredentials = true;
-      // var event_data = {
-      //   comment: '', // see todo note below
-      //   rating: data.rating,
-      //   page: window.location.href
-      // };
-      // xmlhttp.open("GET", "/event/distributedlog/rating?" + $.param(event_data), false);
-      // xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-      // // todo: implement comment form in rating slide out,
-      // // and instead of hooking this event, include a submit button,
-      // // and read the rating with rating() method
-
-      // // alert("send: " + $.param(event_data));
-      // xmlhttp.send();
-
-  });
-
-});
-</script>
-<script src="_static/js/selection-sharer.js"></script>
-<script>
-$('.db-content-body').selectionSharer();
-</script>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/configuration/main.html
----------------------------------------------------------------------
diff --git a/configuration/main.html b/configuration/main.html
deleted file mode 100644
index 09a1b1b..0000000
--- a/configuration/main.html
+++ /dev/null
@@ -1,550 +0,0 @@
-<!DOCTYPE html>
-
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Configuration &mdash; DistributedLog 1.0 documentation</title>
-    
-    <link rel="stylesheet" href="../_static/override.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/bootstrap-3.1.0/css/bootstrap.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/bootstrap-3.1.0/css/bootstrap-theme.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/featherlight.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/docbird.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/docbird-xs.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/jquery.rateyo.min.css" type="text/css" />
-    <link rel="stylesheet" href="../_static/css/selection-sharer.css" type="text/css" />
-    
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '../',
-        VERSION:     '1.0',
-        COLLAPSE_INDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="../_static/jquery.js"></script>
-    <script type="text/javascript" src="../_static/underscore.js"></script>
-    <script type="text/javascript" src="../_static/doctools.js"></script>
-    <script type="text/javascript" src="../_static/bootstrap-3.1.0/js/bootstrap.min.js"></script>
-    <script type="text/javascript" src="../_static/js/bootstrap-docbird.js"></script>
-    <script type="text/javascript" src="../_static/js/jquery-1.11.0.min.js"></script>
-    <script type="text/javascript" src="../_static/js/jquery-fix.js"></script>
-    <script type="text/javascript" src="../_static/js/featherlight.min.js"></script>
-    <script type="text/javascript" src="../_static/js/ifvisible.js"></script>
-    <script type="text/javascript" src="../_static/js/timeme.js"></script>
-    <script type="text/javascript" src="../_static/js/jquery.rateyo.min.js"></script>
-    <script type="text/javascript" src="../_static/js/js.cookie.js"></script>
-    <link rel="shortcut icon" href="../_static/docbird.ico"/>
-    <link rel="top" title="DistributedLog 1.0 documentation" href="../index.html" />
-    <link rel="next" title="Core Library Configuration" href="core.html" />
-    <link rel="prev" title="Best Practices" href="../api/practice.html" />
-<meta charset='utf-8'>
-<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
-<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
-<meta name="apple-mobile-web-app-capable" content="yes">
-
-<meta property="docbird:project" content="DistributedLog" />
-
-  </head>
-  <body>
-<div class="navbar navbar-default navbar-fixed-top" role="navigation">
-  <div class="container-fluid">
-    <div class="row db-header">
-      <div class="col-sm-3 col-md-3 col-lg-3 hidden-xs db-header-controls">
-        <a href="/" alt="Back to Docbird">
-  <div class="db-home-button">
-    <span class="glyphicon glyphicon-home"></span>
-  </div>
-</a>
-        
-<form action="../search.html" method="get" class="db-searchbox-form">
- <div class="form-group">
-  <input type="text" name="q" class="form-control db-searchbox-input" placeholder="Search DistributedLog" />
- </div>
-  <input type="hidden" name="check_keywords" value="yes" />
-  <input type="hidden" name="area" value="default" />
-</form>
-
-      </div>
-      <div class="col-sm-7 col-md-7 col-lg-7 col-xs-12 db-header-info">
-        <div class="visible-xs">
-          <a href="/" alt="Back to Docbird">
-  <div class="db-home-button">
-    <span class="glyphicon glyphicon-home"></span>
-  </div>
-</a>
-        </div>
-        <div class="visible-xs db-xs-menu-button">
-          <div class="navbar-header">
-  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#db-xs-menu">
-    <span class="sr-only">Toggle navigation</span>
-    <span class="icon-bar"></span>
-    <span class="icon-bar"></span>
-    <span class="icon-bar"></span>
-  </button>
-</div>
-        </div>
-        <div class="db-header-projectname">
-          <h1><a href="../index.html">DistributedLog</a></h1>
-        </div>
-      </div>
-    </div>
-    <div class="row db-xs-menu hidden-sm hidden-md hidden-lg
-    collapse" id="db-xs-menu">
-      
-<form action="../search.html" method="get" class="db-searchbox-form">
- <div class="form-group">
-  <input type="text" name="q" class="form-control db-searchbox-input" placeholder="Search DistributedLog" />
- </div>
-  <input type="hidden" name="check_keywords" value="yes" />
-  <input type="hidden" name="area" value="default" />
-</form>
-
-      <div class="db-toc" role="complementary">
-        <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="../download.html">Releases</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc1">0.3.51-RC1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc0">0.3.51-RC0</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../basics/main.html">Getting Started</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../basics/introduction.html">Introduction</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../basics/quickstart.html">Quick Start</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../api/main.html">API</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../api/core.html">Core Library API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/proxy.html">Write Proxy Client API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/practice.html">Best Practices</a></li>
-</ul>
-</li>
-<li class="toctree-l1 current"><a class="current reference internal" href="">Configuration</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="core.html">Core Library Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="proxy.html">Write Proxy Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="client.html">Client Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="perlog.html">Per Stream Configuration</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../considerations/main.html">Considerations</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#consistency-durability-and-ordering">Consistency, Durability and Ordering</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#partitioning">Partitioning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#processing-semantics">Processing Semantics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../architecture/main.html">Architecture</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#data-model">Data Model</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#software-stack">Software Stack</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#lifecyle-of-records">Lifecyle of records</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../design/main.html">Detail Design</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#consistency">Consistency</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#streaming-reads">Streaming Reads</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#logsegment-lifecycle">LogSegment Lifecycle</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../globalreplicatedlog/main.html">Global Replicated Log</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#region-aware-data-placement-policy">Region Aware Data Placement Policy</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#cross-region-speculative-reads">Cross Region Speculative Reads</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../implementation/main.html">Implementation</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../implementation/storage.html">Storage</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../operations/main.html">Deployment &amp; Administration</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../operations/deployment.html">Cluster Setup &amp; Deployment</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/operations.html">DistributedLog Operations</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/performance.html">Performance Tuning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/hardware.html">Hardware</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/monitoring.html">Monitoring</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/zookeeper.html">ZooKeeper</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/bookkeeper.html">BookKeeper</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../performance/main.html">Performance</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../references/main.html">References</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../references/configuration.html">Configuration Settings</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/metrics.html">Metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/features.html">Features</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../tutorials/main.html">Tutorials</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#basic">Basic</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#messaging">Messaging</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#replicated-state-machines">Replicated State Machines</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#analytics">Analytics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../developer/main.html">Developer</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../developer/release.html">Release</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
-</ul>
-
-      </div>
-    </div>
-  </div>
-</div>
-<div class="container">
-  <div class="row">
-    <div style="z-index: 1" class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
-      <style>
-  .overflow-container {
-    display: none;
-  }
-  .overflow-toggle {
-    text-decoration: none;
-    border-bottom: none;
-    border-radius: 4px;
-    border: 1px solid #eee;
-    padding: 1px 3px 3px;
-    color: #888;
-    font-weight: normal;
-    background-color: linen;
-    line-height: 1.85em;
-    cursor: pointer;
-  }
-  .overflow-toggle:hover {
-    color: #333;
-    border-color: #ccc;
-    background-color: beige;
-  }
-</style>
-<script>
-$(function(){
-  $('.overflow-toggle').on('click', function(){
-    $(this).next().toggle();
-  });
-});
-</script>
-<div class="db-project-header-container">
-  <div class="row">
-    
-    <div class="db-project-info col-lg-12 col-md-12 col-sm-12 col-xs-12">
-      <h1>
-        <a href="../index.html">DistributedLog</a>
-        
-      </h1>
-        
-      <div class="db-code-link">
-        <a href="git@github.com:twitter/distributedlog.git/tree/master/" target="_blank">git@github.com:twitter/distributedlog.git/tree/master/</a>
-      </div>
-      
-      
-    </div>
-  </div>
-  
-  <div class="row db-project-links-row">
-    <div class=" col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <div class="db-hashtag-container">
-        
-        <span class="db-project-link-label">OWNERS</span>
-          
-            <em>None</em>
-          
-          
-      </div>
-    </div>
-    <div class="col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <div class="db-hashtag-container">
-        
-        <span class="db-project-link-label">TAGS</span>
-        
-          <em><a class="db-hashtag" href="/?q=tags:%23uses_maven">#uses_maven</a></em>
-        
-        
-      </div>
-    </div>
-    <div class="col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <span class="db-project-link-label">HEALTH</span>
-        
-        <h3 style="margin-top: 0">
-<!--        <a href="/techdocs/checklist.html" class="label label-success">-->
-        <a href="/report/distributedlog" class="">
-          9.0 / 10
-          <span style="margin-left: .25em" class="glyphicon glyphicon-ok"></span>
-        </a>
-        
-      </h3>
-    </div>
-    <div class="col-sm-3 col-md-3 col-lg-3 db-project-link-column">
-      <span class="db-project-link-label">RATING</span>
-      <div id="rateYo"></div>
-    </div>
-  </div>
-  
-</div>
-    </div>
-    <div class="col-xs-12 col-sm-8 col-md-8 col-lg-8">
-      <div class="db-content-body">
-        
-  <div class="section" id="configuration">
-<h1>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">�</a></h1>
-<p>DistributedLog uses key-value pairs in the <a class="reference external" href="http://en.wikipedia.org/wiki/.properties">property file format</a> for configuration. These values can be supplied either from a file, jvm system properties, or programmatically.</p>
-<p>In DistributedLog, we only put non-environment related settings in the configuration.
-Those environment related settings, such as zookeeper connect string, bookkeeper
-ledgers path, should not be loaded from configuration. They should be added in <cite>namespace binding</cite>.</p>
-<div class="toctree-wrapper compound">
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="core.html">Core Library Configuration</a></li>
-<li class="toctree-l1"><a class="reference internal" href="proxy.html">Write Proxy Configuration</a></li>
-<li class="toctree-l1"><a class="reference internal" href="client.html">Client Configuration</a></li>
-<li class="toctree-l1"><a class="reference internal" href="perlog.html">Per Stream Configuration</a></li>
-</ul>
-</div>
-</div>
-
-
-      </div>
-    </div>
-    <div class="hidden-xs col-sm-3 col-md-3 col-md-offset-1 col-lg-3 db-sidebar">
-      
-        <div class="db-toc" role="complementary">
-          <ul class="current">
-            <li class="toctree-l0 current"><a class="current reference internal" href="../index.html">DistributedLog</a></li>
-          </ul>
-          <ul class="current">
-<li class="toctree-l1"><a class="reference internal" href="../download.html">Releases</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc1">0.3.51-RC1</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../download.html#rc0">0.3.51-RC0</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../basics/main.html">Getting Started</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../basics/introduction.html">Introduction</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../basics/quickstart.html">Quick Start</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../api/main.html">API</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../api/core.html">Core Library API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/proxy.html">Write Proxy Client API</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../api/practice.html">Best Practices</a></li>
-</ul>
-</li>
-<li class="toctree-l1 current"><a class="current reference internal" href="">Configuration</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="core.html">Core Library Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="proxy.html">Write Proxy Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="client.html">Client Configuration</a></li>
-<li class="toctree-l2"><a class="reference internal" href="perlog.html">Per Stream Configuration</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../considerations/main.html">Considerations</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#consistency-durability-and-ordering">Consistency, Durability and Ordering</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#partitioning">Partitioning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../considerations/main.html#processing-semantics">Processing Semantics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../architecture/main.html">Architecture</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#data-model">Data Model</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#software-stack">Software Stack</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../architecture/main.html#lifecyle-of-records">Lifecyle of records</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../design/main.html">Detail Design</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#consistency">Consistency</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#streaming-reads">Streaming Reads</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../design/main.html#logsegment-lifecycle">LogSegment Lifecycle</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../globalreplicatedlog/main.html">Global Replicated Log</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#region-aware-data-placement-policy">Region Aware Data Placement Policy</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../globalreplicatedlog/main.html#cross-region-speculative-reads">Cross Region Speculative Reads</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../implementation/main.html">Implementation</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../implementation/storage.html">Storage</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../operations/main.html">Deployment &amp; Administration</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../operations/deployment.html">Cluster Setup &amp; Deployment</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/operations.html">DistributedLog Operations</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/performance.html">Performance Tuning</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/hardware.html">Hardware</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/monitoring.html">Monitoring</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/zookeeper.html">ZooKeeper</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../operations/bookkeeper.html">BookKeeper</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../performance/main.html">Performance</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../references/main.html">References</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../references/configuration.html">Configuration Settings</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/metrics.html">Metrics</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../references/features.html">Features</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../tutorials/main.html">Tutorials</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#basic">Basic</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#messaging">Messaging</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#replicated-state-machines">Replicated State Machines</a></li>
-<li class="toctree-l2"><a class="reference internal" href="../tutorials/main.html#analytics">Analytics</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../developer/main.html">Developer</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="../developer/release.html">Release</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
-</ul>
-
-          <span id="last"></span>
-        </div>
-      
-    </div>
-    <!-- <div id="slidebox"> -->
-      <!-- <button id="slidebox_close" type="button" class="close">&times;</button> -->
-      <!-- <p>Rate This Page</p> -->
-      <!-- <div id="rateYo"></div> -->
-      <!-- <p>Comment</p>
-      <input type="text" name="comment"></input>
-      <button>Submit</button> -->
-    <!-- </div> -->
-  </div>
-</div>
-<footer class="footer">
-  <div class="container-fluid">
-    <div class="row">
-      <div class="col-md-10 col-md-offset-1">
-        <p class="pull-right">
-          <a href="#">Back to top</a>
-          
-          <br/>
-          
-<div id="sourcelink">
-  <a href="git@github.com:twitter/distributedlog.git/tree/master/docs/configuration/main.rst"
-     rel="nofollow">Source</a>
-  
-  <a href="../_sources/configuration/main.txt"
-     rel="nofollow">Raw</a>
-  <a href="../__docbird-build.log"
-     rel="nofollow">Build Log</a>
-  <a href="/report/stats/distributedlog:distributedlog"
-     rel="nofollow">Stats</a>
-</div>
-        </p>
-        <p>
-          Built and hosted by <a href="/">DocBird</a>. 
-        </p>
-      </div>
-    </div>
-  </div>
-</footer>
-<script type="text/javascript" src="../_static/js/docbird.js"></script>
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-30775-8']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-</script>
-<!-- <script type="text/javascript" src="//s/d41d8cd98f00b204e9800998ecf8427e/en_US-tbnx1s-1988229788/6163/97/1.4.3/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=e62237fc"></script>
--->
-
-<script type="text/javascript">
-  $(document).ready(function () {
-    // track user activity time (from https://github.com/jasonzissman/TimeMe.js)
-    TimeMe.setIdleDurationInSeconds(30);
-    TimeMe.setCurrentPageName("my-home-page");
-    TimeMe.initialize();
-
-    // record page visit event when user leaves the page
-    window.onbeforeunload = function (event) {
-      xmlhttp=new XMLHttpRequest();
-      xmlhttp.withCredentials = true;
-      xmlhttp.open("POST", "/event/distributedlog:distributedlog/visit", false);
-      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-      var event_data = {
-        total_time_reading: TimeMe.getTimeOnCurrentPageInSeconds(),
-        page: window.location.href
-      };
-      //alert("send: " + $.param(event_data));
-      xmlhttp.send($.param(event_data));
-    };
-
-    // ask user for page rating after 20 seconds
-    // setTimeout(function(){
-    //   alert("Rate this page!");
-    // }, 20000);
-  });
-</script>
-<!-- <style>
-#slidebox{
-  width: 250px;
-  height: 90px;
-  padding: 10px;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  position: fixed;
-  bottom: 3px;
-  right: -280px;
-  z-index: 1;
-}
-#slidebox .close{
-  margin-top: -5px;
-  opacity: 0.5;
-}
-#slidebox .close:hover{
-  opacity: 0.7;
-}
-</style> -->
-<script type="text/javascript">
-$(function() {
-  // $(window).scroll(function(){
-  //   var distanceTop = $('#last').offset().top - $(window).height();
-
-  //   if  ($(window).scrollTop() > distanceTop)
-  //     $('#slidebox').animate({'right':'3px'},300);
-  //   else
-  //     $('#slidebox').stop(true).animate({'right':'-280px'},100);
-  // });
-
-  // $('#slidebox .close').bind('click',function(){
-  //   $(this).parent().remove();
-  // });
-
-  $("#rateYo").rateYo({
-    normalFill: "#A0A0A0",
-    halfStar: true,
-    rating: (Cookies.get('docbird.rating.distributedlog.distributedlog') || 0.0)
-  }).on("rateyo.set", function (e, data) {
-      var event_data = {
-        comment: '', // see todo note below
-        rating: data.rating,
-        page: window.location.href
-      };
-      Cookies.get('docbird.rating.distributedlog.distributedlog', data.rating)
-      $.post('/event/distributedlog:distributedlog/rating', event_data)
-      // xmlhttp=new XMLHttpRequest();
-      // xmlhttp.withCredentials = true;
-      // var event_data = {
-      //   comment: '', // see todo note below
-      //   rating: data.rating,
-      //   page: window.location.href
-      // };
-      // xmlhttp.open("GET", "/event/distributedlog/rating?" + $.param(event_data), false);
-      // xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-      // // todo: implement comment form in rating slide out,
-      // // and instead of hooking this event, include a submit button,
-      // // and read the rating with rating() method
-
-      // // alert("send: " + $.param(event_data));
-      // xmlhttp.send();
-
-  });
-
-});
-</script>
-<script src="_static/js/selection-sharer.js"></script>
-<script>
-$('.db-content-body').selectionSharer();
-</script>
-  </body>
-</html>