distributedlog-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From si...@apache.org
Subject [28/64] [partial] incubator-distributedlog git commit: delete the content from old site
Date Tue, 13 Sep 2016 09:00:07 GMT
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/content/contribute/index.html
----------------------------------------------------------------------
diff --git a/content/contribute/index.html b/content/contribute/index.html
new file mode 100644
index 0000000..c269f5e
--- /dev/null
+++ b/content/contribute/index.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Contributions</title>
+  <meta name="description" content="Apache DistributedLog is an high performance replicated log.
+">
+
+  <link rel="stylesheet" href="http://distributedlog.incubator.apache.org/styles/site.css">
+  <link rel="stylesheet" href="http://distributedlog.incubator.apache.org/css/theme.css">
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
+  <script src="http://distributedlog.incubator.apache.org/js/bootstrap.min.js"></script>
+  <link rel="canonical" href="http://distributedlog.incubator.apache.orghttp://distributedlog.incubator.apache.org/contribute/" data-proofer-ignore>
+  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog (incubating)" href="http://distributedlog.incubator.apache.orghttp://distributedlog.incubator.apache.org/feed.xml">
+  <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-83870961-1', 'auto');
+  ga('send', 'pageview');
+
+  </script> 
+  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
+</head>
+
+
+  <body role="document">
+
+    <nav class="navbar navbar-default navbar-fixed-top">
+  <div class="container">
+    <div class="navbar-header">
+      <a href="/" class="navbar-brand" >
+        <img alt="Brand" style="height: 28px" src="http://distributedlog.incubator.apache.org/images/distributedlog_logo_navbar.png">
+      </a>
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+        <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 id="navbar" class="navbar-collapse collapse">
+      <ul class="nav navbar-nav">
+        <!-- Overview -->
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction">Overview</a></li>
+        <!-- Downloads -->
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/start/download">Downloads</a></li>
+        <!-- Quick Start -->
+        <li class="dropdown">
+          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Quick Start<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/start/quickstart">Setup & Run Example</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Tutorials</li>
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/main#id3">
+              <small><span class="glyphicon glyphicon-pencil"></span></small>
+              Basic
+              </a>
+            </li>
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/main#id4">
+              <small><span class="glyphicon glyphicon-envelope"></span></small>
+              Messaging
+              </a>
+            </li>
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/main#id6">
+              <small><span class="glyphicon glyphicon-stats"></span></small>
+              Analytics
+              </a>
+            </li>
+          </ul>
+        </li>
+        <!-- Documentation -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li class="dropdown-header">Snapshot (Developement)</li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest">Latest</a></li>
+            <li role="separator" class="divider"></li>
+            <li>
+              <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Project Ideas
+              </a>
+            </li>
+          </ul>
+        </li>
+        <!-- FAQ -->
+        <li><a href="http://distributedlog.incubator.apache.org/faq">FAQ</a></li>
+      </ul>
+      <!-- Right Side -->
+      <ul class="nav navbar-nav navbar-right">
+        <!-- Blog -->
+        <li><a href="http://distributedlog.incubator.apache.org/blog">Blog</a></li>
+        <!-- Community -->
+        <li class="dropdown">
+          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li class="dropdown-header">Community</li>
+            <li><a href="http://distributedlog.incubator.apache.org/community/#mailing-lists">Mailing Lists</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/community/#source-code">Source Code</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/community/#issue-tracker">Issue Tracking</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/community/team/">Team</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header">Contribute</li>
+            <li><a href="https://cwiki.apache.org/confluence/display/DL/Developer+Setup">Developer Setup</a></li>
+            <li><a href="https://cwiki.apache.org/confluence/display/DL/Contributing+to+DistributedLog">Contributing to DistributedLog</a></li>
+            <li><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65867477">Coding Guide</a></li>
+          </ul>
+        </li>
+        <!-- Project -->
+        <li class="dropdown">
+          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Project<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+			      <li class="dropdown-header">Project</li>
+            <li><a href="http://distributedlog.incubator.apache.org/project/presentations/">Presentations</a></li>
+            <li>
+              <a href="https://twitter.com/distributedlog">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Twitter
+              </a>
+            </li>
+            <li>
+              <a href="https://github.com/apache/incubator-distributedlog">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Github
+              </a>
+            </li>
+            <li>
+              <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
+                <small><span class="glyphicon glyphicon-new-window"></span></small>
+                Wiki
+              </a>
+            </li>
+          </ul>
+        </li>
+      </ul>
+    </div><!--/.nav-collapse -->
+  </div>
+</nav>
+
+
+<link rel="stylesheet" href="">
+
+
+    <div class="container" role="main">
+
+      <div class="row">
+        <h1 id="contributions">Contributions</h1>
+
+<p>Apache DistributedLog is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache DistributedLog. There are several ways to interact with the community and to contribute to DistributedLog including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.</p>
+
+<h2 id="ask-questions">Ask questions!</h2>
+
+<p>The Apache DistributedLog community is eager to help and to answer your questions. We have a <a href="http://distributedlog.incubator.apache.org/community">mailing list</a>.</p>
+
+<hr />
+
+<h2 id="file-a-bug-report">File a bug report</h2>
+
+<p>Please let us know if you experienced a problem with DistributedLog and file a bug report. Open <a href="https://issues.apache.org/jira/browse/DL">DistributedLog’s JIRA</a> and click on the blue <strong>Create</strong> button at the top. Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem. Thank you very much.</p>
+
+<hr />
+
+<h2 id="propose-an-improvement-or-a-new-feature">Propose an improvement or a new feature</h2>
+
+<p>Our community is constantly looking for feedback to improve Apache DistributedLog. If you have an idea how to improve DistributedLog or have a new feature in mind that would be beneficial for DistributedLog users, please open an issue in <a href="https://issues.apache.org/jira/browse/DL">DistributedLog’s JIRA</a>. The improvement or new feature should be described in appropriate detail and include the scope and its requirements if possible. Detailed information is important for a few reasons:</p>
+
+<ul>
+  <li>It ensures your requirements are met when the improvement or feature is implemented.</li>
+  <li>It helps to estimate the effort and to design a solution that addresses your needs.</li>
+  <li>It allow for constructive discussions that might arise around this issue.</li>
+</ul>
+
+<p>Detailed information is also required, if you plan to contribute the improvement or feature you proposed yourself. Please read the <a href="/contribute-code">Contribute code</a> guide in this case as well.</p>
+
+<p>We recommend to first reach consensus with the community on whether a new feature is required and how to implement a new feature, before starting with the implementation. Some features might be out of scope of the project, and it’s best to discover this early.</p>
+
+<hr />
+
+<h2 id="help-others-and-join-the-discussions">Help others and join the discussions</h2>
+
+<p>Most communication in the Apache DistributedLog community happens on the mailing list:</p>
+
+<ul>
+  <li>The mailing list <code class="highlighter-rouge">dev@distributedlog.incubator.apache.org</code> is the place where DistributedLog developers exchange ideas and discuss new features, upcoming releases, and the development process in general. If you are interested in contributing code to DistributedLog, you should join this mailing list.</li>
+</ul>
+
+<p>You are very welcome to <a href="http://distributedlog.incubator.apache.org/community">subscribe to mailing lists</a>.</p>
+
+<hr />
+
+<h2 id="test-a-release-candidate">Test a release candidate</h2>
+
+<p>Apache DistributedLog is continuously improved by its active community. Every few weeks, we release a new version of Apache DistributedLog with bug fixes, improvements, and new features. The process of releasing a new version consists of the following steps:</p>
+
+<ol>
+  <li>Building a new release candidate and starting a vote (usually for 72 hours).</li>
+  <li>Testing the release candidate and voting (<code class="highlighter-rouge">+1</code> if no issues were found, <code class="highlighter-rouge">-1</code> if the release candidate has issues).</li>
+  <li>Going back to step 1 if the release candidate had issues otherwise we publish the release.</li>
+</ol>
+
+<p>Release testing is a big effort if done by a small group of people but can be easily scaled out to more people. The DistributedLog community encourages everybody to participate in the testing of a release candidate. By testing a release candidate, you can ensure that the next DistributedLog release is working properly for your setup and help to improve the quality of releases.</p>
+
+<hr />
+
+<h2 id="contribute-code">Contribute code</h2>
+
+<p>Apache DistributedLog is maintained, improved, and extended by code contributions of volunteers. The Apache DistributedLog community encourages anybody to contribute source code. In order to ensure a pleasant contribution experience for contributors and reviewers and to preserve the high quality of the code base, we follow a contribution process that is explained in our <a href="/contribute-code">Contribute code</a> guide. The guide does also include instructions to setup a development environment, our coding guidelines and code style, and explains how to submit a code contribution.</p>
+
+<p><strong>Please read the <a href="/contribute-code">Contribute code</a> guide before you start to work on a code contribution.</strong></p>
+
+<h3 class="no_toc" id="looking-for-an-issue-to-work-on">Looking for an issue to work on?</h3>
+
+<p>We maintain a list of all known bugs, proposed improvements and suggested features in <a href="https://issues.apache.org/jira/browse/DL">DistributedLog’s JIRA</a>.</p>
+
+<p>Also, <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">Project Ideas</a> is also a good page to check out for big ideas.</p>
+
+<hr />
+
+<h2 id="contribute-documentation">Contribute documentation</h2>
+
+<p>[TBD]</p>
+
+<hr />
+
+<h2 id="improve-the-website">Improve the website</h2>
+
+<p>[TBD]</p>
+
+<hr />
+
+<h2 id="more-ways-to-contribute">More ways to contribute…</h2>
+
+<p>There are many more ways to contribute to the DistributedLog community. For example you can</p>
+
+<ul>
+  <li>give a talk about DistributedLog and tell others how you use it.</li>
+  <li>organize a local Meetup or user group.</li>
+  <li>talk to people about DistributedLog.</li>
+  <li>…</li>
+</ul>
+
+      </div>
+
+
+    <hr>
+  <div class="row">
+      <div class="col-xs-12">
+          <footer>
+              <p class="text-center">&copy; Copyright 2016
+                  <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.
+              </p>
+              <p class="text-center">
+                  <a href="http://distributedlog.incubator.apache.org/feed.xml">RSS Feed</a>
+              </p>
+          </footer>
+      </div>
+  </div>
+  <!-- container div end -->
+</div>
+
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/content/css/main.css
----------------------------------------------------------------------
diff --git a/content/css/main.css b/content/css/main.css
new file mode 100644
index 0000000..1fb1692
--- /dev/null
+++ b/content/css/main.css
@@ -0,0 +1,457 @@
+/**
+ * Reset some basic elements
+ */
+body, h1, h2, h3, h4, h5, h6,
+p, blockquote, pre, hr,
+dl, dd, ol, ul, figure {
+  margin: 0;
+  padding: 0; }
+
+/**
+ * Basic styling
+ */
+body {
+  font: 400 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
+  color: #111;
+  background-color: #fdfdfd;
+  -webkit-text-size-adjust: 100%;
+  -webkit-font-feature-settings: "kern" 1;
+  -moz-font-feature-settings: "kern" 1;
+  -o-font-feature-settings: "kern" 1;
+  font-feature-settings: "kern" 1;
+  font-kerning: normal; }
+
+/**
+ * Set `margin-bottom` to maintain vertical rhythm
+ */
+h1, h2, h3, h4, h5, h6,
+p, blockquote, pre,
+ul, ol, dl, figure,
+.highlight {
+  margin-bottom: 15px; }
+
+/**
+ * Images
+ */
+img {
+  max-width: 100%;
+  vertical-align: middle; }
+
+/**
+ * Figures
+ */
+figure > img {
+  display: block; }
+
+figcaption {
+  font-size: 14px; }
+
+/**
+ * Lists
+ */
+ul, ol {
+  margin-left: 30px; }
+
+li > ul,
+li > ol {
+  margin-bottom: 0; }
+
+/**
+ * Headings
+ */
+h1, h2, h3, h4, h5, h6 {
+  font-weight: 400; }
+
+/**
+ * Links
+ */
+a {
+  color: #2a7ae2;
+  text-decoration: none; }
+  a:visited {
+    color: #1756a9; }
+  a:hover {
+    color: #111;
+    text-decoration: underline; }
+
+/**
+ * Blockquotes
+ */
+blockquote {
+  color: #828282;
+  border-left: 4px solid #e8e8e8;
+  padding-left: 15px;
+  font-size: 18px;
+  letter-spacing: -1px;
+  font-style: italic; }
+  blockquote > :last-child {
+    margin-bottom: 0; }
+
+/**
+ * Code formatting
+ */
+pre,
+code {
+  font-size: 15px;
+  border: 1px solid #e8e8e8;
+  border-radius: 3px;
+  background-color: #eef; }
+
+code {
+  padding: 1px 5px; }
+
+pre {
+  padding: 8px 12px;
+  overflow-x: auto; }
+  pre > code {
+    border: 0;
+    padding-right: 0;
+    padding-left: 0; }
+
+/**
+ * Wrapper
+ */
+.wrapper {
+  max-width: -webkit-calc(800px - (30px * 2));
+  max-width: calc(800px - (30px * 2));
+  margin-right: auto;
+  margin-left: auto;
+  padding-right: 30px;
+  padding-left: 30px; }
+  @media screen and (max-width: 800px) {
+    .wrapper {
+      max-width: -webkit-calc(800px - (30px));
+      max-width: calc(800px - (30px));
+      padding-right: 15px;
+      padding-left: 15px; } }
+
+/**
+ * Clearfix
+ */
+.wrapper:after, .footer-col-wrapper:after {
+  content: "";
+  display: table;
+  clear: both; }
+
+/**
+ * Icons
+ */
+.icon > svg {
+  display: inline-block;
+  width: 16px;
+  height: 16px;
+  vertical-align: middle; }
+  .icon > svg path {
+    fill: #828282; }
+
+/**
+ * Site header
+ */
+.site-header {
+  border-top: 5px solid #424242;
+  border-bottom: 1px solid #e8e8e8;
+  min-height: 56px;
+  position: relative; }
+
+.site-title {
+  font-size: 26px;
+  font-weight: 300;
+  line-height: 56px;
+  letter-spacing: -1px;
+  margin-bottom: 0;
+  float: left; }
+  .site-title, .site-title:visited {
+    color: #424242; }
+
+.site-nav {
+  float: right;
+  line-height: 56px; }
+  .site-nav .menu-icon {
+    display: none; }
+  .site-nav .page-link {
+    color: #111;
+    line-height: 1.5; }
+    .site-nav .page-link:not(:last-child) {
+      margin-right: 20px; }
+  @media screen and (max-width: 600px) {
+    .site-nav {
+      position: absolute;
+      top: 9px;
+      right: 15px;
+      background-color: #fdfdfd;
+      border: 1px solid #e8e8e8;
+      border-radius: 5px;
+      text-align: right; }
+      .site-nav .menu-icon {
+        display: block;
+        float: right;
+        width: 36px;
+        height: 26px;
+        line-height: 0;
+        padding-top: 10px;
+        text-align: center; }
+        .site-nav .menu-icon > svg {
+          width: 18px;
+          height: 15px; }
+          .site-nav .menu-icon > svg path {
+            fill: #424242; }
+      .site-nav .trigger {
+        clear: both;
+        display: none; }
+      .site-nav:hover .trigger {
+        display: block;
+        padding-bottom: 5px; }
+      .site-nav .page-link {
+        display: block;
+        padding: 5px 10px;
+        margin-left: 20px; }
+        .site-nav .page-link:not(:last-child) {
+          margin-right: 0; } }
+
+/**
+ * Site footer
+ */
+.site-footer {
+  border-top: 1px solid #e8e8e8;
+  padding: 30px 0; }
+
+.footer-heading {
+  font-size: 18px;
+  margin-bottom: 15px; }
+
+.contact-list,
+.social-media-list {
+  list-style: none;
+  margin-left: 0; }
+
+.footer-col-wrapper {
+  font-size: 15px;
+  color: #828282;
+  margin-left: -15px; }
+
+.footer-col {
+  float: left;
+  margin-bottom: 15px;
+  padding-left: 15px; }
+
+.footer-col-1 {
+  width: -webkit-calc(35% - (30px / 2));
+  width: calc(35% - (30px / 2)); }
+
+.footer-col-2 {
+  width: -webkit-calc(20% - (30px / 2));
+  width: calc(20% - (30px / 2)); }
+
+.footer-col-3 {
+  width: -webkit-calc(45% - (30px / 2));
+  width: calc(45% - (30px / 2)); }
+
+@media screen and (max-width: 800px) {
+  .footer-col-1,
+  .footer-col-2 {
+    width: -webkit-calc(50% - (30px / 2));
+    width: calc(50% - (30px / 2)); }
+
+  .footer-col-3 {
+    width: -webkit-calc(100% - (30px / 2));
+    width: calc(100% - (30px / 2)); } }
+@media screen and (max-width: 600px) {
+  .footer-col {
+    float: none;
+    width: -webkit-calc(100% - (30px / 2));
+    width: calc(100% - (30px / 2)); } }
+/**
+ * Page content
+ */
+.page-content {
+  padding: 30px 0; }
+
+.page-heading {
+  font-size: 20px; }
+
+.post-list {
+  margin-left: 0;
+  list-style: none; }
+  .post-list > li {
+    margin-bottom: 30px; }
+
+.post-meta {
+  font-size: 14px;
+  color: #828282; }
+
+.post-link {
+  display: block;
+  font-size: 24px; }
+
+/**
+ * Posts
+ */
+.post-header {
+  margin-bottom: 30px; }
+
+.post-title {
+  font-size: 42px;
+  letter-spacing: -1px;
+  line-height: 1; }
+  @media screen and (max-width: 800px) {
+    .post-title {
+      font-size: 36px; } }
+
+.post-content {
+  margin-bottom: 30px; }
+  .post-content h2 {
+    font-size: 32px; }
+    @media screen and (max-width: 800px) {
+      .post-content h2 {
+        font-size: 28px; } }
+  .post-content h3 {
+    font-size: 26px; }
+    @media screen and (max-width: 800px) {
+      .post-content h3 {
+        font-size: 22px; } }
+  .post-content h4 {
+    font-size: 20px; }
+    @media screen and (max-width: 800px) {
+      .post-content h4 {
+        font-size: 18px; } }
+
+/**
+ * Syntax highlighting styles
+ */
+.highlight {
+  background: #fff; }
+  .highlighter-rouge .highlight {
+    background: #eef; }
+  .highlight .c {
+    color: #998;
+    font-style: italic; }
+  .highlight .err {
+    color: #a61717;
+    background-color: #e3d2d2; }
+  .highlight .k {
+    font-weight: bold; }
+  .highlight .o {
+    font-weight: bold; }
+  .highlight .cm {
+    color: #998;
+    font-style: italic; }
+  .highlight .cp {
+    color: #999;
+    font-weight: bold; }
+  .highlight .c1 {
+    color: #998;
+    font-style: italic; }
+  .highlight .cs {
+    color: #999;
+    font-weight: bold;
+    font-style: italic; }
+  .highlight .gd {
+    color: #000;
+    background-color: #fdd; }
+  .highlight .gd .x {
+    color: #000;
+    background-color: #faa; }
+  .highlight .ge {
+    font-style: italic; }
+  .highlight .gr {
+    color: #a00; }
+  .highlight .gh {
+    color: #999; }
+  .highlight .gi {
+    color: #000;
+    background-color: #dfd; }
+  .highlight .gi .x {
+    color: #000;
+    background-color: #afa; }
+  .highlight .go {
+    color: #888; }
+  .highlight .gp {
+    color: #555; }
+  .highlight .gs {
+    font-weight: bold; }
+  .highlight .gu {
+    color: #aaa; }
+  .highlight .gt {
+    color: #a00; }
+  .highlight .kc {
+    font-weight: bold; }
+  .highlight .kd {
+    font-weight: bold; }
+  .highlight .kp {
+    font-weight: bold; }
+  .highlight .kr {
+    font-weight: bold; }
+  .highlight .kt {
+    color: #458;
+    font-weight: bold; }
+  .highlight .m {
+    color: #099; }
+  .highlight .s {
+    color: #d14; }
+  .highlight .na {
+    color: #008080; }
+  .highlight .nb {
+    color: #0086B3; }
+  .highlight .nc {
+    color: #458;
+    font-weight: bold; }
+  .highlight .no {
+    color: #008080; }
+  .highlight .ni {
+    color: #800080; }
+  .highlight .ne {
+    color: #900;
+    font-weight: bold; }
+  .highlight .nf {
+    color: #900;
+    font-weight: bold; }
+  .highlight .nn {
+    color: #555; }
+  .highlight .nt {
+    color: #000080; }
+  .highlight .nv {
+    color: #008080; }
+  .highlight .ow {
+    font-weight: bold; }
+  .highlight .w {
+    color: #bbb; }
+  .highlight .mf {
+    color: #099; }
+  .highlight .mh {
+    color: #099; }
+  .highlight .mi {
+    color: #099; }
+  .highlight .mo {
+    color: #099; }
+  .highlight .sb {
+    color: #d14; }
+  .highlight .sc {
+    color: #d14; }
+  .highlight .sd {
+    color: #d14; }
+  .highlight .s2 {
+    color: #d14; }
+  .highlight .se {
+    color: #d14; }
+  .highlight .sh {
+    color: #d14; }
+  .highlight .si {
+    color: #d14; }
+  .highlight .sx {
+    color: #d14; }
+  .highlight .sr {
+    color: #009926; }
+  .highlight .s1 {
+    color: #d14; }
+  .highlight .ss {
+    color: #990073; }
+  .highlight .bp {
+    color: #999; }
+  .highlight .vc {
+    color: #008080; }
+  .highlight .vg {
+    color: #008080; }
+  .highlight .vi {
+    color: #008080; }
+  .highlight .il {
+    color: #099; }

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/content/css/theme.css
----------------------------------------------------------------------
diff --git a/content/css/theme.css b/content/css/theme.css
new file mode 100644
index 0000000..c0dd5a4
--- /dev/null
+++ b/content/css/theme.css
@@ -0,0 +1,21 @@
+body {
+  padding-top: 70px;
+  padding-bottom: 30px;
+  font-family: 'Roboto', sans-serif;
+}
+
+.theme-dropdown .dropdown-menu {
+  position: static;
+  display: block;
+  margin-bottom: 20px;
+}
+
+.theme-showcase > p > .btn {
+  margin: 5px 0;
+}
+
+.theme-showcase .navbar .container {
+  width: auto;
+}
+
+@import url(https://fonts.googleapis.com/css?family=Roboto:400,300);

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/content/docs/latest/admin_guide/bookkeeper.html
----------------------------------------------------------------------
diff --git a/content/docs/latest/admin_guide/bookkeeper.html b/content/docs/latest/admin_guide/bookkeeper.html
new file mode 100644
index 0000000..3782cc0
--- /dev/null
+++ b/content/docs/latest/admin_guide/bookkeeper.html
@@ -0,0 +1,666 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Apache DistributedLog (incubating)</title>
+  <meta name="description" content="Apache DistributedLog is an high performance replicated log.
+">
+
+  <link rel="stylesheet" href="http://distributedlog.incubator.apache.org/docs/latest/styles/site.css">
+  <link rel="stylesheet" href="http://distributedlog.incubator.apache.org/docs/latest/css/theme.css">
+  <!-- JQuery -->
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
+  <script src="http://distributedlog.incubator.apache.org/docs/latest/js/bootstrap.min.js"></script>
+  <link rel="canonical" href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/bookkeeper.html" data-proofer-ignore>
+  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog (incubating)" href="http://distributedlog.incubator.apache.org/docs/latest/feed.xml">
+  <!-- Font Awesome -->
+  <script src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/3.2.0/anchor.min.js"></script>
+  <!-- Google Analytics -->
+  <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-83870961-1', 'auto');
+  ga('send', 'pageview');
+  </script>
+  <!-- End Google Analytics -->
+  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
+</head>
+
+
+  <body role="document">
+
+    
+<nav class="navbar navbar-default navbar-fixed-top">
+  <div class="container">
+    <div class="navbar-header">
+      <a href="/" class="navbar-brand" >
+        <img alt="Brand" style="height: 28px" src="http://distributedlog.incubator.apache.org/docs/latest/images/distributedlog_logo_navbar.png">
+      </a>
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+        <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 id="navbar" class="navbar-collapse collapse">
+      <ul class="nav navbar-nav">
+        <!-- Overview -->
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/">V0.4.0</a></li>
+        <!-- Concepts -->
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction">Concepts</a></li>
+        <!-- Quick Start -->
+        <li>
+          <a href="http://distributedlog.incubator.apache.org/docs/latest/start" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Start<span class="caret"></span></a>
+          <ul class="dropdown-menu" role="menu">
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/start/building.html">
+                Build DistributedLog from Source
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/start/download.html">
+                Download Releases
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Quickstart</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/start/quickstart.html">
+                Setup & Run Example
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-1.html">
+                API - Write Records (via core library)
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-2.html">
+                API - Write Records (via write proxy)
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-5.html">
+                API - Read Records
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Deployment</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/cluster.html">
+                Cluster Setup
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/docker.html">
+                Docker
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- User Guide -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">User Guide<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction.html">
+                Introduction
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/considerations/main.html">
+                Considerations
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/architecture/main.html">
+                Architecture
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/main.html">
+                API
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/main.html">
+                Configuration
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/design/main.html">
+                Detail Design
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/globalreplicatedlog/main.html">
+                Global Replicated Log
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/implementation/main.html">
+                Implementation
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/main.html">
+                References
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- Admin Guide -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin Guide<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/cluster">Cluster Setup</a></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/operations.html">
+                Operations
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/performance.html">
+                Performance Tuning
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/hardware.html">
+                Hardware
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/monitoring.html">
+                Monitoring
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/zookeeper.html">
+                ZooKeeper
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/bookkeeper.html">
+                BookKeeper
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- Tutorials -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Tutorials<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li class="dropdown-header"><strong>Basic</strong></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-1">Write Records (via Core Library)</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-2">Write Records (via Write Proxy)</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-3">Write Records to multiple streams</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-4">Atomic Write Records</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-5">Tailing Read Records</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-6">Rewind Read Records</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Messaging</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-1.html">
+                Write records to partitioned streams
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-2.html">
+                Write records to multiple streams (load balancer)
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-3.html">
+                At-least-once Processing
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-4.html">
+                Exact-Once Processing
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-5.html">
+                Implement a kafka-like pub/sub system
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Replicated State Machines</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/replicatedstatemachines.html">
+                Build replicated state machines
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Analytics</strong></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/analytics-mapreduce">Process log streams using MapReduce</a></li>
+          </ul>
+        </li>
+      </ul>
+    </div><!--/.nav-collapse -->
+  </div>
+</nav>
+
+
+<link rel="stylesheet" href="">
+
+
+    <div class="container" role="main">
+
+      <div class="row">
+        
+        <!--
+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.
+-->
+
+
+<div class="row">
+  <!-- Sub Navigation -->
+  <div class="col-sm-3">
+    <ul id="sub-nav">
+      
+      
+      
+        
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/main.html" class="">Admin Guide</a>
+          
+          <ul>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/operations.html" class="">
+                  Operations
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/cluster.html" class="">
+                  Cluster Setup
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/performance.html" class="">
+                  Performance Tuning
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/hardware.html" class="">
+                  Hardware
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/monitoring.html" class="">
+                  Monitoring
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/zookeeper.html" class="">
+                  ZooKeeper
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/bookkeeper.html" class="active">
+                  BookKeeper
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+          </ul>
+          
+        </li>
+      
+    </ul>
+  </div>
+  <!-- Main -->
+  <div class="col-sm-9">
+    <!-- Top anchor -->
+    <a href="#top"></a>
+
+    <!-- Breadcrumbs above the main heading -->
+    <ol class="breadcrumb">
+
+      
+      
+      
+
+      
+      
+
+      
+
+      
+
+      <li><a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/main.html">Admin Guide</a></li>
+      
+      
+      <li class="active">BookKeeper</li>
+    </ol>
+
+    <div class="text">
+      <!-- Content -->
+      <div class="contents topic" id="bookkeeper">
+<p class="topic-title first">BookKeeper</p>
+<ul class="simple">
+<li><a class="reference internal" href="#id1" id="id3">BookKeeper</a><ul>
+<li><a class="reference internal" href="#run-from-bookkeeper-source" id="id4">Run from bookkeeper source</a></li>
+<li><a class="reference internal" href="#run-from-distributedlog-source" id="id5">Run from distributedlog source</a><ul>
+<li><a class="reference internal" href="#build" id="id6">Build</a></li>
+<li><a class="reference internal" href="#configuration" id="id7">Configuration</a><ul>
+<li><a class="reference internal" href="#port" id="id8">Port</a></li>
+<li><a class="reference internal" href="#disks" id="id9">Disks</a></li>
+<li><a class="reference internal" href="#zookeeper" id="id10">ZooKeeper</a></li>
+<li><a class="reference internal" href="#stats-provider" id="id11">Stats Provider</a></li>
+<li><a class="reference internal" href="#index-settings" id="id12">Index Settings</a></li>
+<li><a class="reference internal" href="#journal-settings" id="id13">Journal Settings</a></li>
+<li><a class="reference internal" href="#thread-settings" id="id14">Thread Settings</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#run" id="id15">Run</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="id1">
+<h2><a class="toc-backref" href="#id3">BookKeeper</a></h2>
+<p>For reliable BookKeeper service, you should deploy BookKeeper in a cluster.</p>
+<div class="section" id="run-from-bookkeeper-source">
+<h3><a class="toc-backref" href="#id4">Run from bookkeeper source</a></h3>
+<p>The version of BookKeeper that DistributedLog depends on is not the official opensource version.
+It is twitter's production version <cite>4.3.4-TWTTR</cite>, which is available in <cite>https://github.com/twitter/bookkeeper</cite>.
+We are working actively with BookKeeper community to merge all twitter's changes back to the community.</p>
+<p>The major changes in Twitter's bookkeeper includes:</p>
+<ul class="simple">
+<li><a class="reference external" href="https://issues.apache.org/jira/browse/BOOKKEEPER-670">BOOKKEEPER-670</a>: Long poll reads and LastAddConfirmed piggyback. It is to reduce the tailing read latency.</li>
+<li><a class="reference external" href="https://issues.apache.org/jira/browse/BOOKKEEPER-759">BOOKKEEPER-759</a>: Delay ensemble change if it doesn't break ack quorum constraint. It is to reduce the write latency on bookie failures.</li>
+<li><a class="reference external" href="https://issues.apache.org/jira/browse/BOOKKEEPER-757">BOOKKEEPER-757</a>: Ledger recovery improvements, to reduce the latency on ledger recovery.</li>
+<li>Misc improvements on bookie recovery and bookie storage.</li>
+</ul>
+<p>To build bookkeeper, run:</p>
+<ol class="arabic simple">
+<li>First checkout the bookkeeper source code from twitter's branch.</li>
+</ol>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ git clone https://github.com/twitter/bookkeeper.git bookkeeper
+</span></code></pre></td></tr></table></div></figure><ol class="arabic simple" start="2">
+<li>Build the bookkeeper package:</li>
+</ol>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+<span class="line-number">2</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ <span class="nb">cd</span> bookkeeper
+</span><span class="line">$ mvn clean package assembly:single -DskipTests
+</span></code></pre></td></tr></table></div></figure><p>However, since <cite>bookkeeper-server</cite> is one of the dependency of <cite>distributedlog-service</cite>.
+You could simply run bookkeeper using same set of scripts provided in <cite>distributedlog-service</cite>.
+In the following sections, we will describe how to run bookkeeper using the scripts provided in
+<cite>distributedlog-service</cite>.</p>
+</div>
+<div class="section" id="run-from-distributedlog-source">
+<h3><a class="toc-backref" href="#id5">Run from distributedlog source</a></h3>
+<div class="section" id="build">
+<h4><a class="toc-backref" href="#id6">Build</a></h4>
+<p>First of all, build DistributedLog:</p>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ mvn clean install -DskipTests
+</span></code></pre></td></tr></table></div></figure></div>
+<div class="section" id="configuration">
+<h4><a class="toc-backref" href="#id7">Configuration</a></h4>
+<p>The configuration file <cite>bookie.conf</cite> under <cite>distributedlog-service/conf</cite> is a template of production
+configuration to run a bookie node. Most of the configuration settings are good for production usage.
+You might need to configure following settings according to your environment and hardware platform.</p>
+<div class="section" id="port">
+<h5><a class="toc-backref" href="#id8">Port</a></h5>
+<p>By default, the service port is <cite>3181</cite>, where the bookie server listens on. You can change the port
+to whatever port you like by modifying the following setting.</p>
+<pre class="literal-block">
+bookiePort=3181
+</pre>
+</div>
+<div class="section" id="disks">
+<h5><a class="toc-backref" href="#id9">Disks</a></h5>
+<p>You need to configure following settings according to the disk layout of your hardware. It is recommended
+to put <cite>journalDirectory</cite> under a separated disk from others for performance. It is okay to set
+<cite>indexDirectories</cite> to be same as <cite>ledgerDirectories</cite>. However, it is recommended to put <cite>indexDirectories</cite>
+to a SSD driver for better performance.</p>
+<pre class="literal-block">
+# Directory Bookkeeper outputs its write ahead log
+journalDirectory=/tmp/data/bk/journal
+
+# Directory Bookkeeper outputs ledger snapshots
+ledgerDirectories=/tmp/data/bk/ledgers
+
+# Directory in which index files will be stored.
+indexDirectories=/tmp/data/bk/ledgers
+</pre>
+<p>To better understand how bookie nodes work, please check <a class="reference external" href="http://bookkeeper.apache.org/">bookkeeper</a> website for more details.</p>
+</div>
+<div class="section" id="zookeeper">
+<h5><a class="toc-backref" href="#id10">ZooKeeper</a></h5>
+<p>You need to configure following settings to point the bookie to the zookeeper server that it is using.
+You need to make sure <cite>zkLedgersRootPath</cite> exists before starting the bookies.</p>
+<pre class="literal-block">
+# Root zookeeper path to store ledger metadata
+# This parameter is used by zookeeper-based ledger manager as a root znode to
+# store all ledgers.
+zkLedgersRootPath=/messaging/bookkeeper/ledgers
+# A list of one of more servers on which zookeeper is running.
+zkServers=localhost:2181
+</pre>
+</div>
+<div class="section" id="stats-provider">
+<h5><a class="toc-backref" href="#id11">Stats Provider</a></h5>
+<p>Bookies use <cite>StatsProvider</cite> to expose its metrics. The <cite>StatsProvider</cite> is a pluggable library to
+adopt to various stats collecting systems. Please check <a class="reference external" href="./monitoring">monitoring</a> for more details.</p>
+<pre class="literal-block">
+# stats provide - use `codahale` metrics library
+statsProviderClass=org.apache.bookkeeper.stats.CodahaleMetricsServletProvider
+
+### Following settings are stats provider related settings
+
+# Exporting codahale stats in http port `9001`
+codahaleStatsHttpPort=9001
+</pre>
+</div>
+<div class="section" id="index-settings">
+<h5><a class="toc-backref" href="#id12">Index Settings</a></h5>
+<ul class="simple">
+<li><cite>pageSize</cite>: size of a index page in ledger cache, in bytes. If there are large number
+of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.</li>
+<li><cite>pageLimit</cite>: The maximum number of index pages in ledger cache. If nummber of index pages
+reaches the limitation, bookie server starts to swap some ledgers from memory to disk.
+Increase this value when swap becomes more frequent. But make sure <cite>pageLimit*pageSize</cite>
+should not be more than JVM max memory limitation.</li>
+</ul>
+</div>
+<div class="section" id="journal-settings">
+<h5><a class="toc-backref" href="#id13">Journal Settings</a></h5>
+<ul class="simple">
+<li><cite>journalMaxGroupWaitMSec</cite>: The maximum wait time for group commit. It is valid only when
+<cite>journalFlushWhenQueueEmpty</cite> is false.</li>
+<li><cite>journalFlushWhenQueueEmpty</cite>: Flag indicates whether to flush/sync journal. If it is <cite>true</cite>,
+bookie server will sync journal when there is no other writes in the journal queue.</li>
+<li><cite>journalBufferedWritesThreshold</cite>: The maximum buffered writes for group commit, in bytes.
+It is valid only when <cite>journalFlushWhenQueueEmpty</cite> is false.</li>
+<li><cite>journalBufferedEntriesThreshold</cite>: The maximum buffered writes for group commit, in entries.
+It is valid only when <cite>journalFlushWhenQueueEmpty</cite> is false.</li>
+</ul>
+<p>Setting <cite>journalFlushWhenQueueEmpty</cite> to <cite>true</cite> will produce low latency when the traffic is low.
+However, the latency varies a lost when the traffic is increased. So it is recommended to set
+<cite>journalMaxGroupWaitMSec</cite>, <cite>journalBufferedEntriesThreshold</cite> and <cite>journalBufferedWritesThreshold</cite>
+to reduce the number of fsyncs made to journal disk, to achieve sustained low latency.</p>
+</div>
+<div class="section" id="thread-settings">
+<h5><a class="toc-backref" href="#id14">Thread Settings</a></h5>
+<p>It is recommended to configure following settings to align with the cpu cores of the hardware.</p>
+<pre class="literal-block">
+numAddWorkerThreads=4
+numJournalCallbackThreads=4
+numReadWorkerThreads=4
+numLongPollWorkerThreads=4
+</pre>
+</div>
+</div>
+<div class="section" id="run">
+<h4><a class="toc-backref" href="#id15">Run</a></h4>
+<p>As <cite>bookkeeper-server</cite> is shipped as part of <cite>distributedlog-service</cite>, you could use the <cite>dlog-daemon.sh</cite>
+script to start <cite>bookie</cite> as daemon thread.</p>
+<p>Start the bookie:</p>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ ./distributedlog-service/bin/dlog-daemon.sh start bookie --conf /path/to/bookie/conf
+</span></code></pre></td></tr></table></div></figure><p>Stop the bookie:</p>
+<figure class="code"><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
+</pre></td><td class="code"><pre><code class="bash"><span class="line"><span></span>$ ./distributedlog-service/bin/dlog-daemon.sh stop bookie
+</span></code></pre></td></tr></table></div></figure><p>Please check <a class="reference external" href="http://bookkeeper.apache.org/">bookkeeper</a> website for more details.</p>
+</div>
+</div>
+</div>
+
+
+    </div>
+  </div>
+</div>
+
+
+
+      </div>
+
+
+    <hr>
+  <div class="row">
+      <div class="col-xs-12">
+          <footer>
+              <p class="text-center">&copy; Copyright 2016
+                  <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.
+              </p>
+              <p class="text-center">
+                  <a href="http://distributedlog.incubator.apache.org/docs/latest/feed.xml">RSS Feed</a>
+              </p>
+          </footer>
+      </div>
+  </div>
+  <!-- container div end -->
+</div>
+
+
+    <script>
+  (function () {
+    'use strict';
+    anchors.options.placement = 'right';
+    anchors.add();
+  })();
+</script>
+
+  </body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/content/docs/latest/admin_guide/hardware.html
----------------------------------------------------------------------
diff --git a/content/docs/latest/admin_guide/hardware.html b/content/docs/latest/admin_guide/hardware.html
new file mode 100644
index 0000000..de96237
--- /dev/null
+++ b/content/docs/latest/admin_guide/hardware.html
@@ -0,0 +1,601 @@
+<!DOCTYPE html>
+<html lang="en">
+
+  <head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Apache DistributedLog (incubating)</title>
+  <meta name="description" content="Apache DistributedLog is an high performance replicated log.
+">
+
+  <link rel="stylesheet" href="http://distributedlog.incubator.apache.org/docs/latest/styles/site.css">
+  <link rel="stylesheet" href="http://distributedlog.incubator.apache.org/docs/latest/css/theme.css">
+  <!-- JQuery -->
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
+  <script src="http://distributedlog.incubator.apache.org/docs/latest/js/bootstrap.min.js"></script>
+  <link rel="canonical" href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/hardware.html" data-proofer-ignore>
+  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog (incubating)" href="http://distributedlog.incubator.apache.org/docs/latest/feed.xml">
+  <!-- Font Awesome -->
+  <script src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/3.2.0/anchor.min.js"></script>
+  <!-- Google Analytics -->
+  <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-83870961-1', 'auto');
+  ga('send', 'pageview');
+  </script>
+  <!-- End Google Analytics -->
+  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
+</head>
+
+
+  <body role="document">
+
+    
+<nav class="navbar navbar-default navbar-fixed-top">
+  <div class="container">
+    <div class="navbar-header">
+      <a href="/" class="navbar-brand" >
+        <img alt="Brand" style="height: 28px" src="http://distributedlog.incubator.apache.org/docs/latest/images/distributedlog_logo_navbar.png">
+      </a>
+      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+        <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 id="navbar" class="navbar-collapse collapse">
+      <ul class="nav navbar-nav">
+        <!-- Overview -->
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/">V0.4.0</a></li>
+        <!-- Concepts -->
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction">Concepts</a></li>
+        <!-- Quick Start -->
+        <li>
+          <a href="http://distributedlog.incubator.apache.org/docs/latest/start" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Start<span class="caret"></span></a>
+          <ul class="dropdown-menu" role="menu">
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/start/building.html">
+                Build DistributedLog from Source
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/start/download.html">
+                Download Releases
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Quickstart</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/start/quickstart.html">
+                Setup & Run Example
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-1.html">
+                API - Write Records (via core library)
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-2.html">
+                API - Write Records (via write proxy)
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-5.html">
+                API - Read Records
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Deployment</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/cluster.html">
+                Cluster Setup
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/docker.html">
+                Docker
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- User Guide -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">User Guide<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction.html">
+                Introduction
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/considerations/main.html">
+                Considerations
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/architecture/main.html">
+                Architecture
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/main.html">
+                API
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/main.html">
+                Configuration
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/design/main.html">
+                Detail Design
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/globalreplicatedlog/main.html">
+                Global Replicated Log
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/implementation/main.html">
+                Implementation
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/main.html">
+                References
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- Admin Guide -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin Guide<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/cluster">Cluster Setup</a></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/operations.html">
+                Operations
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/performance.html">
+                Performance Tuning
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/hardware.html">
+                Hardware
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/monitoring.html">
+                Monitoring
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/zookeeper.html">
+                ZooKeeper
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/bookkeeper.html">
+                BookKeeper
+              </a>
+            </li>
+            
+          </ul>
+        </li>
+        <!-- Tutorials -->
+        <li class="dropdown">
+		      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Tutorials<span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li class="dropdown-header"><strong>Basic</strong></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-1">Write Records (via Core Library)</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-2">Write Records (via Write Proxy)</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-3">Write Records to multiple streams</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-4">Atomic Write Records</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-5">Tailing Read Records</a></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/basic-6">Rewind Read Records</a></li>
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Messaging</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-1.html">
+                Write records to partitioned streams
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-2.html">
+                Write records to multiple streams (load balancer)
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-3.html">
+                At-least-once Processing
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-4.html">
+                Exact-Once Processing
+              </a>
+            </li>
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/messaging-5.html">
+                Implement a kafka-like pub/sub system
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Replicated State Machines</strong></li>
+            
+            
+            <li>
+              <a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/replicatedstatemachines.html">
+                Build replicated state machines
+              </a>
+            </li>
+            
+            <li role="separator" class="divider"></li>
+            <li class="dropdown-header"><strong>Analytics</strong></li>
+            <li><a href="http://distributedlog.incubator.apache.org/docs/latest/tutorials/analytics-mapreduce">Process log streams using MapReduce</a></li>
+          </ul>
+        </li>
+      </ul>
+    </div><!--/.nav-collapse -->
+  </div>
+</nav>
+
+
+<link rel="stylesheet" href="">
+
+
+    <div class="container" role="main">
+
+      <div class="row">
+        
+        <!--
+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.
+-->
+
+
+<div class="row">
+  <!-- Sub Navigation -->
+  <div class="col-sm-3">
+    <ul id="sub-nav">
+      
+      
+      
+        
+        <li><a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/main.html" class="">Admin Guide</a>
+          
+          <ul>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/operations.html" class="">
+                  Operations
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/deployment/cluster.html" class="">
+                  Cluster Setup
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/performance.html" class="">
+                  Performance Tuning
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/hardware.html" class="active">
+                  Hardware
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/monitoring.html" class="">
+                  Monitoring
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/zookeeper.html" class="">
+                  ZooKeeper
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+              
+              <li>
+                <a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/bookkeeper.html" class="">
+                  BookKeeper
+                </a>
+                
+                <ul>
+                  
+                </ul>
+                
+              </li>
+            
+          </ul>
+          
+        </li>
+      
+    </ul>
+  </div>
+  <!-- Main -->
+  <div class="col-sm-9">
+    <!-- Top anchor -->
+    <a href="#top"></a>
+
+    <!-- Breadcrumbs above the main heading -->
+    <ol class="breadcrumb">
+
+      
+      
+      
+
+      
+      
+
+      
+
+      
+
+      <li><a href="http://distributedlog.incubator.apache.org/docs/latest/admin_guide/main.html">Admin Guide</a></li>
+      
+      
+      <li class="active">Hardware</li>
+    </ol>
+
+    <div class="text">
+      <!-- Content -->
+      <div class="contents topic" id="hardware">
+<p class="topic-title first">Hardware</p>
+<ul class="simple">
+<li><a class="reference internal" href="#id1" id="id2">Hardware</a><ul>
+<li><a class="reference internal" href="#metrics" id="id3">Metrics</a></li>
+<li><a class="reference internal" href="#write-proxy" id="id4">Write Proxy</a><ul>
+<li><a class="reference internal" href="#cpus" id="id5">CPUs</a></li>
+<li><a class="reference internal" href="#memories" id="id6">Memories</a></li>
+<li><a class="reference internal" href="#disks" id="id7">Disks</a></li>
+<li><a class="reference internal" href="#network" id="id8">Network</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#bookkeeper" id="id9">BookKeeper</a></li>
+<li><a class="reference internal" href="#read-proxy" id="id10">Read Proxy</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="id1">
+<h2><a class="toc-backref" href="#id2">Hardware</a></h2>
+<p>Figure 1 describes the data flow of DistributedLog. Write traffic comes to <cite>Write Proxy</cite>
+and the data is replicated in <cite>RF</cite> (replication factor) ways to <cite>BookKeeper</cite>. BookKeeper
+stores the replicated data and keeps the data for a given retention period. The data is
+read by <cite>Read Proxy</cite> and fanout to readers.</p>
+<p>In such layered architecture, each layer has its own responsibilities and different resource
+requirements. It makes the capacity and cost model much clear and users could scale
+different layers independently.</p>
+<div class="figure align-center">
+<img alt="../images/costmodel.png" src="../images/costmodel.png" />
+<p class="caption">Figure 1. DistributedLog Cost Model</p>
+</div>
+<div class="section" id="metrics">
+<h3><a class="toc-backref" href="#id3">Metrics</a></h3>
+<p>There are different metrics measuring the capability of a service instance in each layer
+(e.g a <cite>write proxy</cite> node, a <cite>bookie</cite> storage node, a <cite>read proxy</cite> node and such). These metrics
+can be <cite>rps</cite> (requests per second), <cite>bps</cite> (bits per second), <cite>number of streams</cite> that a instance
+can support, and latency requirements. <cite>bps</cite> is the best and simple factor on measuring the
+capability of current distributedlog architecture.</p>
+</div>
+<div class="section" id="write-proxy">
+<h3><a class="toc-backref" href="#id4">Write Proxy</a></h3>
+<p>Write Proxy (WP) is a stateless serving service that writes and replicates fan-in traffic into BookKeeper.
+The capability of a write proxy instance is purely dominated by the <em>OUTBOUND</em> network bandwidth,
+which is reflected as incoming <cite>Write Throughput</cite> and <cite>Replication Factor</cite>.</p>
+<p>Calculating the capacity of Write Proxy (number of instances of write proxies) is pretty straightforward.
+The formula is listed as below.</p>
+<pre class="literal-block">
+Number of Write Proxies = (Write Throughput) * (Replication Factor) / (Write Proxy Outbound Bandwidth)
+</pre>
+<p>As it is bandwidth bound, we'd recommend using machines that have high network bandwith (e.g 10Gb NIC).</p>
+<p>The cost estimation is also straightforward.</p>
+<pre class="literal-block">
+Bandwidth TCO ($/day/MB) = (Write Proxy TCO) / (Write Proxy Outbound Bandwidth)
+Cost of write proxies = (Write Throughput) * (Replication Factor) / (Bandwidth TCO)
+</pre>
+<div class="section" id="cpus">
+<h4><a class="toc-backref" href="#id5">CPUs</a></h4>
+<p>DistributedLog is not CPU bound. You can run an instance with 8 or 12 cores just fine.</p>
+</div>
+<div class="section" id="memories">
+<h4><a class="toc-backref" href="#id6">Memories</a></h4>
+<p>There's a fair bit of caching. Consider running with at least 8GB of memory.</p>
+</div>
+<div class="section" id="disks">
+<h4><a class="toc-backref" href="#id7">Disks</a></h4>
+<p>This is a stateless process, disk performances are not relevant.</p>
+</div>
+<div class="section" id="network">
+<h4><a class="toc-backref" href="#id8">Network</a></h4>
+<p>Depending on your throughput, you might be better off running this with 10Gb NIC. In this scenario, you can easily achieves 350MBps of writes.</p>
+</div>
+</div>
+<div class="section" id="bookkeeper">
+<h3><a class="toc-backref" href="#id9">BookKeeper</a></h3>
+<p>BookKeeper is the log segment store, which is a stateful service. There are two factors to measure the
+capability of a Bookie instance: <cite>bandwidth</cite> and <cite>storage</cite>. The bandwidth is majorly dominated by the
+outbound traffic from write proxy, which is <cite>(Write Throughput) * (Replication Factor)</cite>. The storage is
+majorly dominated by the traffic and also <cite>Retention Period</cite>.</p>
+<p>Calculating the capacity of BookKeeper (number of instances of bookies) is a bit more complicated than Write
+Proxy. The total number of instances is the maximum number of the instances of bookies calculated using
+<cite>bandwidth</cite> and <cite>storage</cite>.</p>
+<pre class="literal-block">
+Number of bookies based on bandwidth = (Write Throughput) * (Replication Factor) / (Bookie Inbound Bandwidth)
+Number of bookies based on storage = (Write Throughput) * (Replication Factor) * (Replication Factor) / (Bookie disk space)
+Number of bookies = maximum((number of bookies based on bandwidth), (number of bookies based on storage))
+</pre>
+<p>We should consider both bandwidth and storage when choosing the hardware for bookies. There are several rules to follow:
+- A bookie should have multiple disks.
+- The number of disks used as journal disks should have similar I/O bandwidth as its <em>INBOUND</em> network bandwidth. For example, if you plan to use a disk for journal which I/O bandwidth is around 100MBps, a 1Gb NIC is a better choice than 10Gb NIC.
+- The number of disks used as ledger disks should be large enough to hold data if retention period is typical long.</p>
+<p>The cost estimation is straightforward based on the number of bookies estimated above.</p>
+<pre class="literal-block">
+Cost of bookies = (Number of bookies) * (Bookie TCO)
+</pre>
+</div>
+<div class="section" id="read-proxy">
+<h3><a class="toc-backref" href="#id10">Read Proxy</a></h3>
+<p>Similar as Write Proxy, Read Proxy is also dominated by <em>OUTBOUND</em> bandwidth, which is reflected as incoming <cite>Write Throughput</cite> and <cite>Fanout Factor</cite>.</p>
+<p>Calculating the capacity of Read Proxy (number of instances of read proxies) is also pretty straightforward.
+The formula is listed as below.</p>
+<pre class="literal-block">
+Number of Read Proxies = (Write Throughput) * (Fanout Factor) / (Read Proxy Outbound Bandwidth)
+</pre>
+<p>As it is bandwidth bound, we'd recommend using machines that have high network bandwith (e.g 10Gb NIC).</p>
+<p>The cost estimation is also straightforward.</p>
+<pre class="literal-block">
+Bandwidth TCO ($/day/MB) = (Read Proxy TCO) / (Read Proxy Outbound Bandwidth)
+Cost of read proxies = (Write Throughput) * (Fanout Factor) / (Bandwidth TCO)
+</pre>
+</div>
+</div>
+
+
+    </div>
+  </div>
+</div>
+
+
+
+      </div>
+
+
+    <hr>
+  <div class="row">
+      <div class="col-xs-12">
+          <footer>
+              <p class="text-center">&copy; Copyright 2016
+                  <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.
+              </p>
+              <p class="text-center">
+                  <a href="http://distributedlog.incubator.apache.org/docs/latest/feed.xml">RSS Feed</a>
+              </p>
+          </footer>
+      </div>
+  </div>
+  <!-- container div end -->
+</div>
+
+
+    <script>
+  (function () {
+    'use strict';
+    anchors.options.placement = 'right';
+    anchors.add();
+  })();
+</script>
+
+  </body>
+
+</html>


Mime
View raw message