http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/1bd00e9a/content/docs/latest/user_guide/globalreplicatedlog/main.html ---------------------------------------------------------------------- diff --git a/content/docs/latest/user_guide/globalreplicatedlog/main.html b/content/docs/latest/user_guide/globalreplicatedlog/main.html new file mode 100644 index 0000000..7ca670e --- /dev/null +++ b/content/docs/latest/user_guide/globalreplicatedlog/main.html @@ -0,0 +1,677 @@ +<!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/user_guide/globalreplicatedlog/main.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/user_guide/main.html" class="">User Guide</a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction.html" class=""> + Introduction + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/considerations/main.html" class=""> + Considerations + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/architecture/main.html" class=""> + Architecture + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/main.html" class=""> + API + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/core.html" class="active"> + Core Library API + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/proxy.html" class="active"> + Proxy Client API + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/practice.html" class="active"> + Best Practise + </a> + </li> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/main.html" class=""> + Configuration + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/core.html" class="active"> + Core Library Configuration + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/proxy.html" class="active"> + Write Proxy Configuration + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/client.html" class="active"> + Client Configuration + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/perlog.html" class="active"> + Per Stream Configuration + </a> + </li> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/design/main.html" class=""> + Detail Design + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/globalreplicatedlog/main.html" class="active"> + Global Replicated Log + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/implementation/main.html" class=""> + Implementation + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/implementation/storage.html" class="active"> + Storage + </a> + </li> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/main.html" class=""> + References + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/metrics.html" class="active"> + Metrics + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/features.html" class="active"> + Available Features + </a> + </li> + + </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/user_guide/main.html">User Guide</a></li> + + + <li class="active">Global Replicated Log</li> + </ol> + + <div class="text"> + <!-- Content --> + <div class="contents topic" id="global-replicated-log"> +<p class="topic-title first">Global Replicated Log</p> +<ul class="simple"> +<li><a class="reference internal" href="#id1" id="id2">Global Replicated Log</a><ul> +<li><a class="reference internal" href="#region-aware-data-placement-policy" id="id3">Region Aware Data Placement Policy</a></li> +<li><a class="reference internal" href="#cross-region-speculative-reads" id="id4">Cross Region Speculative Reads</a></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="id1"> +<h2><a class="toc-backref" href="#id2">Global Replicated Log</a></h2> +<p>A typical setup for DistributedLog is within a datacenter. But a global setup is required for +providing global replicated logs for distributed key/value store to achieve strong consistency +across multiple datacenters. <cite>Global</cite> here means across datacenters, which is different from +<cite>Local</cite> meaning within a datacenter.</p> +<p>A global setup of DistributedLog is organized as a set of <cite>regions</cite>, where each region is the +rough analog of a local setup. Regions are the unit of administrative deployment. The set of +regions is also the set of locations across which data can be replicated. Regions can be added +to or removed from a running system as new datacenters are brought into service and old ones +are turned off, respectively. Regions are also the unit of physical isolation: there may be one +or more regions in a datacenter if they have isolated power or network supplies.</p> +<div class="figure align-center"> +<img alt="../../images/globalreplicatedlog.png" src="../../images/globalreplicatedlog.png" style="width: 600px;" /> +<p class="caption">Figure 1. Global Replicated Log</p> +</div> +<p>Figure 1 illustrates the servers in a <cite>Global Replicated Log</cite> setup. There is no inter datacenter +communication between write proxies or log segment storage nodes. The only component that does +inter datacenters communications within its hosts is the 'Global' metadata store, which is a global +setup of ZooKeeper. Write clients will talk to the write proxies in its local region to bootstrap +the ownership cache and redirect to correct write proxies in other regions through direct TCP +connections. While readers will identify the regions of the log segment storage nodes according to +the <cite>region aware</cite> placement policy, and try reading from local region at most of the time and +speculatively try on remote regions.</p> +<div class="section" id="region-aware-data-placement-policy"> +<h3><a class="toc-backref" href="#id3">Region Aware Data Placement Policy</a></h3> +<p>Region aware placement policy uses hierarchical allocation where-in nodes are allocated so that data +is spread uniformly across the available regions and within each region it uses the <cite>rack-aware</cite> +placement policy to spread the data uniformly across the available racks.</p> +<p>Region aware placement policy is governed by a parameter ensures that the ack quorum covers at least +<em>minRegionsForDurability</em> distinct regions. This ensures that the system can survive the failure of +<cite>(totalRegions - minRegionsForDurability)</cite> regions without loss of availability. For example if we +have bookie nodes in <em>5</em> regions and if the <em>minRegionsForDurability</em> is <em>3</em> then we can survive the +failure of <cite>(5 - 3) = 2</cite> regions.</p> +<p>The placement algorithm follows the following simple invariant:</p> +<pre class="literal-block"> +There is no combination of nodes that would satisfy the ack quorum with +less than "minRegionsForDurability" responses. +</pre> +<p>This invariant ensures that enforcing ack quorum is sufficient to enforce that the entry has been made durable +in <em>minRegionsForDurability</em> regions.</p> +<p>The <em>minRegionsForDurability</em> requirement enforces constraints on the minimum ack quorum as we want to ensure +that when we run in degraded mode - <em>i.e. when only a subset of the regions are available</em> - we would still not +be able to allocate nodes in such a way that the ack quorum would be satisfied by fewer than <em>minRegionsForDurability</em> +regions.</p> +<p>For instance consider the following scenario with three regions each containing 20 bookie nodes:</p> +<pre class="literal-block"> +minRegionsForDurability = 2 +ensemble size = write quorum = 15 +ack quorum = 8 +</pre> +<p>Let's say that one of the regions is currently unavailable and we want to still ensure that writes can continue. +The ensemble placement may then have to choose bookies from the two available regions. Given that <em>15</em> bookies have +to be allocated, we will have to allocate at least <em>8</em> bookies from one of the remaining regions - but with ack quorum +of <em>8</em> we run the risk of satisfying ack quorum with bookies from a single region. Therefore we must require that +the ack quorum is greater than <em>8</em>.</p> +</div> +<div class="section" id="cross-region-speculative-reads"> +<h3><a class="toc-backref" href="#id4">Cross Region Speculative Reads</a></h3> +<p>As discussed before, read requests can be satisfied by any replica of the data, however for high availability +speculative requests are sent to multiple copies to ensure that at least one of the requests returns within +the time specified by the <em>SLA</em>. The reader consults the data placement policy to get the list of replicas that +can satisfy the request in the order of preference. This order is decided as follows:</p> +<ul class="simple"> +<li>The first node in the list is always the bookie node that is closest to the client - if more than one such nodes exist, one is chosen at random.</li> +<li>The second node is usually the closest node in a different failure domain. In the case of a two level hierarchy that would be a node in a different rack.</li> +<li>The third node is chosen from a different region</li> +</ul> +<p>The delay between successive speculative read requests ensures that the probability of sending the <em>nth</em> +speculative read request decays exponentially with <em>n</em>. This ensures that the number of requests that go to +farther nodes is still kept at a minimum. However by making sure that we cross failure domains in the first +few speculative requests improves fault-tolerance of the reader. Transient node failures are transparently +handled by the reader by this simple and generalizable speculative read policy. This can be thought of as +the most granular form of failover where each request essentially fails-over to an alternate node if the +primary node it attempted to access is unavailable. In practice we have found this to also better handle +network congestion where routes between specific pairs of nodes may become unavailable without necessarily +making the nodes completely inaccessible.</p> +<p>In addition to static decisions based on the location of the bookie nodes, we can also make dynamic decisions +based on observed latency or failure rates from specific bookies. These statistics are tracked by the bookie +client and are used to influence the order in which speculative read requests are scheduled. This again is +able to capture partial network outages that affect specific routes within the network.</p> +</div> +</div> + + + </div> + </div> +</div> + + + + </div> + + + <hr> + <div class="row"> + <div class="col-xs-12"> + <footer> + <p class="text-center">© 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/user_guide/implementation/core.html ---------------------------------------------------------------------- diff --git a/content/docs/latest/user_guide/implementation/core.html b/content/docs/latest/user_guide/implementation/core.html new file mode 100644 index 0000000..afe8779 --- /dev/null +++ b/content/docs/latest/user_guide/implementation/core.html @@ -0,0 +1,359 @@ +<!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/user_guide/implementation/core.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="col-md-8 col-md-offset-2"> + + +</div> + + + + </div> + + + <hr> + <div class="row"> + <div class="col-xs-12"> + <footer> + <p class="text-center">© 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/user_guide/implementation/main.html ---------------------------------------------------------------------- diff --git a/content/docs/latest/user_guide/implementation/main.html b/content/docs/latest/user_guide/implementation/main.html new file mode 100644 index 0000000..9692ef8 --- /dev/null +++ b/content/docs/latest/user_guide/implementation/main.html @@ -0,0 +1,588 @@ +<!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/user_guide/implementation/main.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/user_guide/main.html" class="">User Guide</a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/basics/introduction.html" class=""> + Introduction + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/considerations/main.html" class=""> + Considerations + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/architecture/main.html" class=""> + Architecture + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/main.html" class=""> + API + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/core.html" class="active"> + Core Library API + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/proxy.html" class="active"> + Proxy Client API + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/api/practice.html" class="active"> + Best Practise + </a> + </li> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/main.html" class=""> + Configuration + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/core.html" class="active"> + Core Library Configuration + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/proxy.html" class="active"> + Write Proxy Configuration + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/client.html" class="active"> + Client Configuration + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/configuration/perlog.html" class="active"> + Per Stream Configuration + </a> + </li> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/design/main.html" class=""> + Detail Design + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/globalreplicatedlog/main.html" class=""> + Global Replicated Log + </a> + + <ul> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/implementation/main.html" class="active"> + Implementation + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/implementation/storage.html" class="active"> + Storage + </a> + </li> + + </ul> + + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/main.html" class=""> + References + </a> + + <ul> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/metrics.html" class="active"> + Metrics + </a> + </li> + + + <li> + <a href="http://distributedlog.incubator.apache.org/docs/latest/user_guide/references/features.html" class="active"> + Available Features + </a> + </li> + + </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/user_guide/main.html">User Guide</a></li> + + + <li class="active">Implementation</li> + </ol> + + <div class="text"> + <!-- Content --> + <p>This page covers the implementation details for <cite>DistributedLog</cite>.</p> +<ul class="simple"> +<li><a class="reference external" href="./storage">Storage</a></li> +</ul> + + + </div> + </div> +</div> + + + + </div> + + + <hr> + <div class="row"> + <div class="col-xs-12"> + <footer> + <p class="text-center">© 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>
