bookkeeper-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r988319 [37/40] - in /websites/staging/bookkeeper/trunk/content: ./ docs/master/ docs/r4.0.0/ docs/r4.1.0/ docs/r4.2.0/ docs/r4.2.1/ docs/r4.2.2/ docs/r4.2.3/ docs/r4.2.4/ docs/r4.3.0/ docs/r4.3.1/ docs/r4.3.2/ docs/r4.4.0/ docs/r4.4.0/apid...
Date Sun, 15 May 2016 21:40:28 GMT
Added: websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookieConfigParams.html
==============================================================================
--- websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookieConfigParams.html (added)
+++ websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookieConfigParams.html Sun May 15 21:40:24 2016
@@ -0,0 +1,182 @@
+<!DOCTYPE html>
+<!--
+
+    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.
+-->
+<html>
+  <head>
+    <title>Apache BookKeeper - Bookie Configuration Parameters</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet">
+    <link href="/css/bootstrap-responsive.min.css" rel="stylesheet">
+    <link href="/css/styles.css" rel="stylesheet">
+  </head>
+  <body>
+    <header class="navbar navbar-inverse navbar-static-top" role="banner">
+      <div class="container">
+    	<div class="navbar-header hidden-xs hidden-sm">
+    	  <a class="navbar-brand navbar-logo" href="/"><img class="img-responsive" src="/img/bookkeeper_blk40.png" alt="Bookkeeper Logo" /></a>
+    	</div>
+    	<div class="navbar-header">
+    	  <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+    	  </button>
+    	  <a class="navbar-brand" href="/">Apache BookKeeper</a>
+    	</div>
+    	<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
+    	  <ul class="nav navbar-nav">
+    	    <li><a href="/releases.html">Download</a></li>
+
+    	    <li class="dropdown">
+    	      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
+    	      <ul class="dropdown-menu" role="menu">
+		<li><a href="/docs/master">Latest (master)</a></li>
+		<li><ul>
+		    <li><a href="/docs/master/apidocs">Java API docs</a></li>
+		    <li><a href="/docs/master/bookkeeperTutorial.html">Tutorial</a></li>
+		    <li><a href="/docs/master/bookkeeperConfig.html">Admin guide</a></li>
+		</ul><li>
+                <li><a href="/docs/r4.4.0">Release 4.4.0</a></li>
+                <li class="divider"></li>
+                <li>Older releases</li>
+                <li><a href="/docs/r4.3.2">Release 4.3.2</a></li>
+                <li><a href="/docs/r4.3.1">Release 4.3.1</a></li>
+                <li><a href="/docs/r4.3.0">Release 4.3.0</a></li>
+                <li><a href="/docs/r4.2.4">Release 4.2.4</a></li>
+                <li><a href="/docs/r4.2.3">Release 4.2.3</a></li>
+                <li><a href="/docs/r4.2.2">Release 4.2.2</a></li>
+                <li><a href="/docs/r4.2.1">Release 4.2.1</a></li>
+                <li><a href="/docs/r4.2.0">Release 4.2.0</a></li>
+                <li><a href="/docs/r4.1.0">Release 4.1.0</a></li>
+                <li><a href="/docs/r4.0.0">Release 4.0.0</a></li>
+              </ul>
+            </li>
+            
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Get Involved<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/lists.html">Mailing Lists</a></li>
+                <li><a href="/irc.html">IRC</a></li>
+                <li><a href="/svn.html">Version Control</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/BOOKKEEPER">Issue Tracker</a></li>
+              </ul>
+            </li>
+
+            <li><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/Index">Wiki</a></li>
+            <!--<li><a href="#">Hedwig</a></li>//-->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project Info<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/credits.html">Who are we?</a></li>
+                <li><a href="/bylaws.html">Bylaws</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li class="divider"></li>
+                <li><a href="/privacy.html">Privacy Policy</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsership</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+              </ul>
+            </li>
+          </ul>
+          <script>
+            (function() {
+            var cx = '017580107654524087317:iqnsyimpydg';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+            '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+            })();
+          </script>
+          
+          <div class="navbar-form navbar-right visible-lg" id="googlebox">
+            <gcse:searchbox-only></gcse:searchbox-only>
+          </div>
+        </nav>
+      </div>
+    </header>
+    <div class="container">
+
+ <h1>Bookie Configuration Parameters</h1>
+
+<p>This page contains detailed information about configuration parameters used for configuring a bookie server. There is an example in "bookkeeper-server/conf/bk_server.conf". </p>
+
+<h2>Server parameters</h2>
+
+<table><tr><td><code>bookiePort</code></td><td>Port that bookie server listens on. The default value is 3181.</td></tr><tr><td><code>journalDirectory</code></td><td>Directory to which Bookkeeper outputs its write ahead log, ideally on a dedicated device. The default value is "/tmp/bk-txn".</td></tr><tr><td><code>ledgerDirectories</code></td><td>Directory to which Bookkeeper outputs ledger snapshots.  Multiple directories can be defined, separated by comma, e.g. /tmp/bk1-data,/tmp/bk2-data. Ideally ledger dirs and journal dir are each on a different device, which reduces the contention between random I/O and sequential writes. It is possible to run with a single disk,  but performance will be significantly lower.</td></tr><tr><td><code>indexDirectories</code></td><td>Directories to store index files. If not specified, bookie will use ledgerDirectories to store index files.</td></tr><tr><td><code>bookieDeathWatchInterval</code></td><td>Interval to check whether a bookie is dead or not
 , in milliseconds.</td></tr><tr><td><code>gcWaitTime</code></td><td>Interval to trigger next garbage collection, in milliseconds. Since garbage collection is running in the background, running the garbage collector too frequently hurts performance. It is best to set its value high enough if there is sufficient disk capacity.</td></tr><tr><td><code>flushInterval</code></td><td>Interval to flush ledger index pages to disk, in milliseconds. Flushing index files will introduce random disk I/O. Consequently, it is important to have journal dir and ledger dirs each on different devices. However,  if it necessary to have journal dir and ledger dirs on the same device, one option is to increment the flush interval to get higher performance. Upon a failure, the bookie will take longer to recover.</td></tr><tr><td><code>numAddWorkerThreads</code></td><td>Number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.</td></tr><tr><td><code>
 numReadWorkerThreads</code></td><td>Number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.</td></tr></table>
+
+<h2><span class="caps">NIO </span>server settings</h2>
+
+<table><tr><td><code>serverTcpNoDelay</code></td><td>This settings is used to enabled/disabled Nagle's algorithm, which is a means of improving the efficiency of <span class="caps">TCP</span>/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance. Default value is true.</td></tr></table>
+
+<h2>Journal settings</h2>
+
+<table><tr><td><code>journalMaxSizeMB</code></td><td>Maximum file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation. The default value is 2kB.</td></tr><tr><td><code>journalMaxBackups</code></td><td>Max number of old journal file to keep. Keeping a number of old journal files might help data recovery in some special cases. The default value is 5.</td></tr><tr><td><code>journalPreAllocSizeMB</code></td><td>The space that bookie pre-allocate at a time in the journal.</td></tr><tr><td><code>journalWriteBufferSizeKB</code></td><td>Size of the write buffers used for the journal.</td></tr><tr><td><code>journalRemoveFromPageCache</code></td><td>Whether bookie removes pages from page cache after force write. Used to avoid journal pollute os page cache.</td></tr><tr><td><code>journalAdaptiveGroupWrites</code></td><td>Whether to group journal force writes, which optimize group commit for higher throughput.</td></tr><tr><td
 ><code>journalMaxGroupWaitMSec</code></td><td>Maximum latency to impose on a journal write to achieve grouping.</td></tr><tr><td><code>journalBufferedWritesThreshold</code></td><td>Maximum writes to buffer to achieve grouping.</td></tr><tr><td><code>journalFlushWhenQueueEmpty</code></td><td>Whether to flush the journal when journal queue is empty. Disabling it would provide sustained journal adds throughput.</td></tr><tr><td><code>numJournalCallbackThreads</code></td><td>The number of threads that should handle journal callbacks.</td></tr></table>
+
+<h2>Ledger cache settings</h2>
+
+<table><tr><td><code>openFileLimit</code></td><td>Maximum number of ledger index files that can be opened in a bookie. If the number of ledger index files reaches this limit, the bookie starts to flush some ledger indexes from memory to disk. If flushing happens too frequently, then performance is affected. You can tune this number to improve performance according.</td></tr><tr><td><code>pageSize</code></td><td>Size of an index page in ledger cache, in bytes. A larger index page can improve performance when writing page to disk, which is efficient when you have small number of ledgers and these ledgers have a similar number of entries. With a large number of ledgers and a few entries per ledger, a smaller index page would improves memory usage.</td></tr><tr><td><code>pageLimit</code></td><td>Maximum number of index pages to store in the ledger cache. If the number of index pages reaches this limit, bookie server starts to flush ledger indexes from memory to disk. Incrementing this v
 alue is an option when flushing becomes frequent. It is important to make sure, though, that pageLimit*pageSize is not more than <span class="caps">JVM </span>max memory limit; otherwise it will raise an OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in the case of a large number of ledgers with few entries per ledger. If pageLimit is -1, a bookie uses 1/3 of the <span class="caps">JVM </span>memory to compute the maximum number of index pages.</td></tr></table>
+
+<h2>Ledger manager settings</h2>
+
+<table><tr><td><code>ledgerManagerType</code></td><td>What kind of ledger manager is used to manage how ledgers are stored, managed and garbage collected. See <a href="./bookkeeperInternals.html">BookKeeper Internals</a> for detailed info. Default is flat.</td></tr><tr><td><code>zkLedgersRootPath</code></td><td>Root zookeeper path to store ledger metadata. Default is /ledgers.</td></tr></table>
+
+<h2>Entry Log settings</h2>
+
+<table><tr><td><code>logSizeLimit</code></td><td>Maximum file size of entry logger, in bytes. A new entry log file will be created when the old one reaches the file size limitation. The default value is 2GB.</td></tr><tr><td><code>entryLogFilePreallocationEnabled</code></td><td>Enable/Disable entry logger preallocation. Enable this would provide sustained higher throughput and reduce latency impaction.</td></tr><tr><td><code>readBufferSizeBytes</code></td><td>The number of bytes used as capacity for BufferedReadChannel. Default is 512 bytes.</td></tr><tr><td><code>writeBufferSizeBytes</code></td><td>The number of bytes used as capacity for the write buffer. Default is 64KB.</td></tr></table>
+
+<h2>Entry Log compaction settings</h2>
+
+<table><tr><td><code>minorCompactionInterval</code></td><td>Interval to run minor compaction, in seconds. If it is set to less than or equal to zero, then minor compaction is disabled. Default is 1 hour.</td></tr><tr><td><code>minorCompactionThreshold</code></td><td>Entry log files with remaining size under this threshold value will be compacted in a minor compaction. If it is set to less than or equal to zero, the minor compaction is disabled. Default is 0.2</td></tr><tr><td><code>majorCompactionInterval</code></td><td>Interval to run major compaction, in seconds. If it is set to less than or equal to zero, then major compaction is disabled. Default is 1 day.</td></tr><tr><td><code>majorCompactionThreshold</code></td><td>Entry log files with remaining size below this threshold value will be compacted in a major compaction. Those entry log files whose remaining size percentage is still higher than the threshold value will never be compacted. If it is set to less than or equal to zer
 o, the major compaction is disabled. Default is 0.8.</td></tr><tr><td><code>compactionMaxOutstandingRequests</code></td><td>The maximum number of entries which can be compacted without flushing. When compacting, the entries are written to the entrylog and the new offsets are cached in memory. Once the entrylog is flushed the index is updated with the new offsets. This parameter controls the number of entries added to the entrylog before a flush is forced. A higher value for this parameter means more memory will be used for offsets. Each offset consist of 3<br />
+longs. This parameter should <em>not</em> be modified unless you know what you're doing.</td></tr><tr><td><code>compactionRate</code></td><td>The rate at which compaction will re-add entries. The unit is adds per second.</td></tr></table>
+
+<h2>Statistics</h2>
+
+<table><tr><td><code>enableStatistics</code></td><td>Enables the collection of statistics. Default is on.</td></tr></table>
+
+<h2>Auto-replication</h2>
+
+<table><tr><td><code>openLedgerRereplicationGracePeriod</code></td><td>This is the grace period which the rereplication worker waits before fencing and replicating a ledger fragment which is still being written to upon a bookie failure. The default is 30s.</td></tr></table>
+
+<h2>Read-only mode support</h2>
+
+<table><tr><td><code>readOnlyModeEnabled</code></td><td>Enables/disables the read-only Bookie feature. A bookie goes into read-only mode when it finds integrity issues with stored data. If <code>readOnlyModeEnabled</code> is false, the bookie shuts down if it finds integrity issues. By default it is enabled.</td></tr></table>
+
+<h2>Disk utilization</h2>
+
+<table><tr><td><code>diskUsageThreshold</code></td><td>Fraction of the total utilized usable disk space to declare the disk full. The total available disk space is obtained with File.getUsableSpace(). Default is 0.95.</td></tr><tr><td><code>diskCheckInterval</code></td><td>Interval between consecutive checks of disk utilization. Default is 10s.</td></tr></table>
+
+<h2>ZooKeeper parameters</h2>
+
+<table><tr><td><code>zkServers</code></td><td>A list of one or more servers on which zookeeper is running. The server list is comma separated, e.g., zk1:2181,zk2:2181,zk3:2181</td></tr><tr><td><code>zkTimeout</code></td><td>ZooKeeper client session timeout in milliseconds. Bookie server will exit if it received <span class="caps">SESSION</span>_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout. <span class="caps">JVM </span>garbage collection or disk I/O can cause <span class="caps">SESSION</span>_EXPIRED. Increment this value could help avoiding this issue. The default value is 10,000.</td></tr></table>
+
+    </div>
+    <footer class="footer">
+      <div class="container">
+        <p class="text-muted">Copyright &copy; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br/>
+	Apache BookKeeper, BookKeeper, Apache, Apache ZooKeeper, ZooKeeper, the Apache feather logo, and the Apache BookKeeper project logo are trademarks of The Apache Software Foundation.</p>
+      </div>
+    </footer>
+
+    <script src="http://code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+  </body>
+</html>

Added: websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookieRecovery.html
==============================================================================
--- websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookieRecovery.html (added)
+++ websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookieRecovery.html Sun May 15 21:40:24 2016
@@ -0,0 +1,202 @@
+<!DOCTYPE html>
+<!--
+
+    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.
+-->
+<html>
+  <head>
+    <title>Apache BookKeeper - BookKeeper Bookie Recovery</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet">
+    <link href="/css/bootstrap-responsive.min.css" rel="stylesheet">
+    <link href="/css/styles.css" rel="stylesheet">
+  </head>
+  <body>
+    <header class="navbar navbar-inverse navbar-static-top" role="banner">
+      <div class="container">
+    	<div class="navbar-header hidden-xs hidden-sm">
+    	  <a class="navbar-brand navbar-logo" href="/"><img class="img-responsive" src="/img/bookkeeper_blk40.png" alt="Bookkeeper Logo" /></a>
+    	</div>
+    	<div class="navbar-header">
+    	  <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+    	  </button>
+    	  <a class="navbar-brand" href="/">Apache BookKeeper</a>
+    	</div>
+    	<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
+    	  <ul class="nav navbar-nav">
+    	    <li><a href="/releases.html">Download</a></li>
+
+    	    <li class="dropdown">
+    	      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
+    	      <ul class="dropdown-menu" role="menu">
+		<li><a href="/docs/master">Latest (master)</a></li>
+		<li><ul>
+		    <li><a href="/docs/master/apidocs">Java API docs</a></li>
+		    <li><a href="/docs/master/bookkeeperTutorial.html">Tutorial</a></li>
+		    <li><a href="/docs/master/bookkeeperConfig.html">Admin guide</a></li>
+		</ul><li>
+                <li><a href="/docs/r4.4.0">Release 4.4.0</a></li>
+                <li class="divider"></li>
+                <li>Older releases</li>
+                <li><a href="/docs/r4.3.2">Release 4.3.2</a></li>
+                <li><a href="/docs/r4.3.1">Release 4.3.1</a></li>
+                <li><a href="/docs/r4.3.0">Release 4.3.0</a></li>
+                <li><a href="/docs/r4.2.4">Release 4.2.4</a></li>
+                <li><a href="/docs/r4.2.3">Release 4.2.3</a></li>
+                <li><a href="/docs/r4.2.2">Release 4.2.2</a></li>
+                <li><a href="/docs/r4.2.1">Release 4.2.1</a></li>
+                <li><a href="/docs/r4.2.0">Release 4.2.0</a></li>
+                <li><a href="/docs/r4.1.0">Release 4.1.0</a></li>
+                <li><a href="/docs/r4.0.0">Release 4.0.0</a></li>
+              </ul>
+            </li>
+            
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Get Involved<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/lists.html">Mailing Lists</a></li>
+                <li><a href="/irc.html">IRC</a></li>
+                <li><a href="/svn.html">Version Control</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/BOOKKEEPER">Issue Tracker</a></li>
+              </ul>
+            </li>
+
+            <li><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/Index">Wiki</a></li>
+            <!--<li><a href="#">Hedwig</a></li>//-->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project Info<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/credits.html">Who are we?</a></li>
+                <li><a href="/bylaws.html">Bylaws</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li class="divider"></li>
+                <li><a href="/privacy.html">Privacy Policy</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsership</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+              </ul>
+            </li>
+          </ul>
+          <script>
+            (function() {
+            var cx = '017580107654524087317:iqnsyimpydg';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+            '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+            })();
+          </script>
+          
+          <div class="navbar-form navbar-right visible-lg" id="googlebox">
+            <gcse:searchbox-only></gcse:searchbox-only>
+          </div>
+        </nav>
+      </div>
+    </header>
+    <div class="container">
+
+ <h1>Bookie Ledger Recovery</h1>
+
+<p>When a Bookie crashes, any ledgers with data on that Bookie become underreplicated. There are two options for bringing the ledgers back to full replication, Autorecovery and Manual Bookie Recovery.</p>
+
+<h2>Autorecovery</h2>
+
+<p>Autorecovery runs as a daemon alongside the Bookie daemon on each Bookie. Autorecovery detects when a bookie in the cluster has become unavailable, and rereplicates all the ledgers which were on that bookie, so that those ledgers are brough back to full replication. See the <a href="./bookkeeperConfig.html">Admin Guide</a> for instructions on how to start autorecovery.</p>
+
+<h2>Manual Bookie Recovery</h2>
+
+<p>If autorecovery is not enabled, it is possible for the adminisatrator to manually rereplicate the data from the failed bookie.</p>
+
+<p>To run recovery, with zk1.example.com as the zookeeper ensemble, and 192.168.1.10 as the failed bookie, do the following:</p>
+
+<p><code>bookkeeper-server/bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools zk1.example.com:2181 192.168.1.10:3181</code></p>
+
+<p>It is necessary to specify the host and port portion of failed bookie, as this is how it identifies itself to zookeeper. It is possible to specify a third argument, which is the bookie to replicate to. If this is omitted, as in our example, a random bookie is chosen for each ledger segment. A ledger segment is a continuous sequence of entries in a bookie, which share the same ensemble.</p>
+
+<h2>AutoRecovery Internals</h2>
+
+<p>Auto-Recovery has two components:</p>
+
+<ul>
+<li><strong>Auditor</strong>, a singleton node which watches for bookie failure, and creates rereplication tasks for the ledgers on failed bookies.</li>
+<li><strong>ReplicationWorker</strong>, runs on each Bookie, takes rereplication tasks and executes them.</li>
+</ul>
+
+<p>Both the components run as threads in the the <strong>AutoRecoveryMain</strong> process. The <strong>AutoRecoveryMain</strong> process runs on each Bookie in the cluster. All recovery nodes will participate in leader election to decide which node becomes the auditor. Those which fail to become the auditor will watch the elected auditor, and will run election again if they see that it has failed.</p>
+
+<h3>Auditor</h3>
+
+<p>The auditor watches the the list of bookies registered with ZooKeeper in the cluster. A Bookie registers with ZooKeeper during startup. If the bookie crashes or is killed, the bookie's registration disappears. The auditor is notified of changes in the registered bookies list.</p>
+
+<p>When the auditor sees that a bookie has disappeared from the list, it immediately scans the complete ledger list to find ledgers which have stored data on the failed bookie. Once it has a list of ledgers which need to be rereplicated, it will publish a rereplication task for each ledger under the /underreplicated/ znode in ZooKeeeper.</p>
+
+<h3>ReplicationWorker</h3>
+
+<p>Each replication worker watches for tasks being published in the /underreplicated/ znode. When a new task appears, it will try to get a lock on it. If it cannot acquire the lock, it tries the next entry. The locks are implemented using ZooKeeper ephemeral znodes.</p>
+
+<p>The replication worker will scan through the rereplication task's ledger for segments of which its local bookie is not a member. When it finds segments matching this criteria it will replicate the entries of that segment to the local bookie.  If, after this process, the ledger is fully replicated, the ledgers entry under /underreplicated/ is deleted, and the lock is released. If there is a problem replicating, or there are still segments in the ledger which are still underreplicated (due to the local bookie already being part of the ensemble for the segment), then the lock is simply released.</p>
+
+<p>If the replication worker finds a segment which needs rereplication, but does not have a defined endpoint (i.e. the final segment of a ledger currently being written to), it will wait for a grace period before attempting rereplication. If the segment needing rereplciation still does not have a defined endpoint, the ledger is fenced and rereplication then takes place. This avoids the case where a client is writing to a ledger, and one of the bookies goes down, but the client has not written an entry to that bookie before rereplication takes place. The client could continue writing to the old segment, even though the ensemble for the segment had changed. This could lead to data loss. Fencing prevents this scenario from happening. In the normal case, the client will try to write to the failed bookie within the grace period, and will have started a new segment before rereplication starts. See the <a href="./bookkeeperConfig.html">Admin Guide</a> for how to configure this grace period
 .</p>
+
+<h2>The Rereplication process</h2>
+
+<p>The ledger rereplication process is as follows.</p>
+
+<ol>
+<li>The client goes through all ledger segments in the ledger, selecting those which contain the failed bookie;</li>
+<li>A recovery process is initiated for each ledger segment in this list;<ol>
+<li>The client selects a bookie to which all entries in the ledger segment will be replicated; In the case of autorecovery, this will always be the local bookie;</li>
+<li>the client reads entries that belong to the ledger segment from other bookies in the ensemble and writes them to the selected bookie;</li>
+<li>Once all entries have been replicated, the zookeeper metadata for the segment is updated to reflect the new ensemble;</li>
+<li>The segment is marked as fully replicated in the recovery tool;</li>
+</ol>
+</li>
+<li>Once all ledger segments are marked as fully replicated, the ledger is marked as fully replicated.</li>
+</ol>
+
+<h2>The Manual Bookie Recovery process</h2>
+
+<p>The manual bookie recovery process is as follows.</p>
+
+<ol>
+<li>The client reads the metadata of active ledgers from zookeeper;</li>
+<li>From this, the ledgers which contain segments using the failed bookie in their ensemble are selected;</li>
+<li>A recovery process is initiated for each ledger in this list;<ol>
+<li>The Ledger rereplication process is run for each ledger;</li>
+</ol>
+</li>
+<li>Once all ledgers are marked as fully replicated, bookie recovery is finished.</li>
+</ol>
+
+    </div>
+    <footer class="footer">
+      <div class="container">
+        <p class="text-muted">Copyright &copy; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br/>
+	Apache BookKeeper, BookKeeper, Apache, Apache ZooKeeper, ZooKeeper, the Apache feather logo, and the Apache BookKeeper project logo are trademarks of The Apache Software Foundation.</p>
+      </div>
+    </footer>
+
+    <script src="http://code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+  </body>
+</html>

Added: websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperConfig.html
==============================================================================
--- websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperConfig.html (added)
+++ websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperConfig.html Sun May 15 21:40:24 2016
@@ -0,0 +1,304 @@
+<!DOCTYPE html>
+<!--
+
+    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.
+-->
+<html>
+  <head>
+    <title>Apache BookKeeper - BookKeeper Administrator&#39;s Guide</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet">
+    <link href="/css/bootstrap-responsive.min.css" rel="stylesheet">
+    <link href="/css/styles.css" rel="stylesheet">
+  </head>
+  <body>
+    <header class="navbar navbar-inverse navbar-static-top" role="banner">
+      <div class="container">
+    	<div class="navbar-header hidden-xs hidden-sm">
+    	  <a class="navbar-brand navbar-logo" href="/"><img class="img-responsive" src="/img/bookkeeper_blk40.png" alt="Bookkeeper Logo" /></a>
+    	</div>
+    	<div class="navbar-header">
+    	  <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+    	  </button>
+    	  <a class="navbar-brand" href="/">Apache BookKeeper</a>
+    	</div>
+    	<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
+    	  <ul class="nav navbar-nav">
+    	    <li><a href="/releases.html">Download</a></li>
+
+    	    <li class="dropdown">
+    	      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
+    	      <ul class="dropdown-menu" role="menu">
+		<li><a href="/docs/master">Latest (master)</a></li>
+		<li><ul>
+		    <li><a href="/docs/master/apidocs">Java API docs</a></li>
+		    <li><a href="/docs/master/bookkeeperTutorial.html">Tutorial</a></li>
+		    <li><a href="/docs/master/bookkeeperConfig.html">Admin guide</a></li>
+		</ul><li>
+                <li><a href="/docs/r4.4.0">Release 4.4.0</a></li>
+                <li class="divider"></li>
+                <li>Older releases</li>
+                <li><a href="/docs/r4.3.2">Release 4.3.2</a></li>
+                <li><a href="/docs/r4.3.1">Release 4.3.1</a></li>
+                <li><a href="/docs/r4.3.0">Release 4.3.0</a></li>
+                <li><a href="/docs/r4.2.4">Release 4.2.4</a></li>
+                <li><a href="/docs/r4.2.3">Release 4.2.3</a></li>
+                <li><a href="/docs/r4.2.2">Release 4.2.2</a></li>
+                <li><a href="/docs/r4.2.1">Release 4.2.1</a></li>
+                <li><a href="/docs/r4.2.0">Release 4.2.0</a></li>
+                <li><a href="/docs/r4.1.0">Release 4.1.0</a></li>
+                <li><a href="/docs/r4.0.0">Release 4.0.0</a></li>
+              </ul>
+            </li>
+            
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Get Involved<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/lists.html">Mailing Lists</a></li>
+                <li><a href="/irc.html">IRC</a></li>
+                <li><a href="/svn.html">Version Control</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/BOOKKEEPER">Issue Tracker</a></li>
+              </ul>
+            </li>
+
+            <li><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/Index">Wiki</a></li>
+            <!--<li><a href="#">Hedwig</a></li>//-->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project Info<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/credits.html">Who are we?</a></li>
+                <li><a href="/bylaws.html">Bylaws</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li class="divider"></li>
+                <li><a href="/privacy.html">Privacy Policy</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsership</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+              </ul>
+            </li>
+          </ul>
+          <script>
+            (function() {
+            var cx = '017580107654524087317:iqnsyimpydg';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+            '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+            })();
+          </script>
+          
+          <div class="navbar-form navbar-right visible-lg" id="googlebox">
+            <gcse:searchbox-only></gcse:searchbox-only>
+          </div>
+        </nav>
+      </div>
+    </header>
+    <div class="container">
+
+ <h1>Abstract</h1>
+
+<p>This document contains information about deploying, administering and maintaining BookKeeper. It also discusses best practices and common problems. </p>
+
+<h1>Running a BookKeeper instance</h1>
+
+<h2>System requirements</h2>
+
+<p>A typical BookKeeper installation comprises a set of bookies and a set of ZooKeeper replicas. The exact number of bookies depends on the quorum mode, desired throughput, and number of clients using this installation simultaneously. The minimum number of bookies is three for self-verifying (stores a message authentication code along with each entry) and four for generic (does not store a message authentication code with each entry), and there is no upper limit on the number of bookies. Increasing the number of bookies will, in fact, enable higher throughput.</p>
+
+<p>For performance, we require each server to have at least two disks. It is possible to run a bookie with a single disk, but performance will be significantly lower in this case.</p>
+
+<p>For ZooKeeper, there is no constraint with respect to the number of replicas. Having a single machine running ZooKeeper in standalone mode is sufficient for BookKeeper. For resilience purposes, it might be a good idea to run ZooKeeper in quorum mode with multiple servers. Please refer to the ZooKeeper documentation for detail on how to configure ZooKeeper with multiple replicas.</p>
+
+<h2>Starting and Stopping Bookies</h2>
+
+<p>To <strong>start</strong> a bookie, execute the following command:</p>
+
+<ul>
+<li>To run a bookie in the foreground:<br />
+<code>bookkeeper-server/bin/bookkeeper bookie</code></li>
+</ul>
+
+<ul>
+<li>To run a bookie in the background:<br />
+<code>bookkeeper-server/bin/bookkeeper-daemon.sh start bookie</code></li>
+</ul>
+
+<p>The configuration parameters can be set in bookkeeper-server/conf/bk_server.conf.</p>
+
+<p>The important parameters are:</p>
+
+<ul>
+<li><code>bookiePort</code>, Port number that the bookie listens on; </li>
+<li><code>zkServers</code>, Comma separated list of ZooKeeper servers with a hostname:port format; </li>
+<li><code>journalDir</code>, Path for Log Device (stores bookie write-ahead log); </li>
+<li><code>ledgerDir</code>, Path for Ledger Device (stores ledger entries); </li>
+</ul>
+
+<p>Ideally, <code>journalDir</code> and <code>ledgerDir</code> are each in a different device. See <a href="./bookieConfigParams.html">Bookie Configuration Parameters</a> for a full list of configuration parameters.</p>
+
+<p>To <strong>stop</strong> a bookie running in the background, execute the following command:</p>
+
+<p><code>bookkeeper-server/bin/bookkeeper-daemon.sh stop bookie [-force]</code><br />
+<code>-force</code> is optional, which is used to stop the bookie forcefully, if the bookie server is not stopped gracefully within the <em><span class="caps">BOOKIE</span>_STOP_TIMEOUT</em> (environment variable), which is 30 seconds, by default.</p>
+
+<h3>Upgrading</h3>
+
+<p>From time to time, we may make changes to the filesystem layout of the bookie, which are incompatible with previous versions of bookkeeper and require that directories used with previous versions are upgraded. If you upgrade your bookkeeper software, and an upgrade is required, then the bookie will fail to start and print an error such as:</p>
+
+<p><code>2012-05-25 10:41:50,494 - ERROR - [main:Bookie@246] - Directory layout version is less than 3, upgrade needed</code></p>
+
+<p>BookKeeper provides a utility for upgrading the filesystem.<br />
+<code>bookkeeper-server/bin/bookkeeper upgrade</code></p>
+
+<p>The upgrade application takes 3 possible switches, <code>--upgrade</code>, <code>--rollback</code> or <code>--finalize</code>. A normal upgrade process looks like.</p>
+
+<ol>
+<li><code>bookkeeper-server/bin/bookkeeper upgrade --upgrade</code></li>
+<li><code>bookkeeper-server/bin/bookkeeper bookie</code></li>
+<li>Check everything is working. Kill bookie, ^C</li>
+<li>If everything is ok, <code>bookkeeper-server/bin/bookkeeper upgrade --finalize</code></li>
+<li>Start bookie again <code>bookkeeper-server/bin/bookkeeper bookie</code></li>
+<li>If something is amiss, you can roll back the upgrade <code>bookkeeper-server/bin/bookkeeper upgrade --rollback</code></li>
+</ol>
+
+<h3>Formatting</h3>
+
+<p>To format the bookie metadata in Zookeeper, execute the following command once:</p>
+
+<p><code>bookkeeper-server/bin/bookkeeper shell metaformat [-nonInteractive] [-force]</code></p>
+
+<p>To format the bookie local filesystem data, execute the following command on each bookie node:</p>
+
+<p><code>bookkeeper-server/bin/bookkeeper shell bookieformat [-nonInteractive] [-force]</code></p>
+
+<p>The <code>-nonInteractive</code> and <code>-force</code> switches are optional.</p>
+
+<p>If <code>-nonInteractive</code> is set, the user will not be asked to confirm the format operation if old data exists. If it exists, the format operation will abort, unless the <code>-force</code> switch has been specified, in which case it will process.</p>
+
+<p>By default, the user will be prompted to confirm the format operation if old data exists.</p>
+
+<h3>Logging</h3>
+
+<p>BookKeeper uses <a href="http://www.slf4j.org">slf4j</a> for logging, with the log4j bindings enabled by default. To enable logging from a bookie, create a log4j.properties file and point the environment variable <span class="caps">BOOKIE</span>_LOG_CONF to the configuration file. The path to the log4j.properties file must be absolute.</p>
+
+<p><code>export BOOKIE_LOG_CONF=/tmp/log4j.properties</code><br />
+<code>bookkeeper-server/bin/bookkeeper bookie</code></p>
+
+<h3>Missing disks or directories</h3>
+
+<p>Replacing disks or removing directories accidentally can cause a bookie to fail while trying to read a ledger fragment which the ledger metadata has claimed exists on the bookie. For this reason, when a bookie is started for the first time, it's disk configuration is fixed for the lifetime of that bookie. Any change to the disk configuration of the bookie, such as a crashed disk or an accidental configuration change, will result in the bookie being unable to start with the following error:</p>
+
+<p><code>2012-05-29 18:19:13,790 - ERROR - [main:BookieServer@314] - Exception running bookie server : </code><br />
+<code>org.apache.bookkeeper.bookie.BookieException$InvalidCookieException</code><br />
+<code>.......at org.apache.bookkeeper.bookie.Cookie.verify(Cookie.java:82)</code><br />
+<code>.......at org.apache.bookkeeper.bookie.Bookie.checkEnvironment(Bookie.java:275)</code><br />
+<code>.......at org.apache.bookkeeper.bookie.Bookie.&lt;init&gt;(Bookie.java:351)</code></p>
+
+<p>If the change was the result of an accidental configuration change, the change can be reverted and the bookie can be restarted. However, if the change cannot be reverted, such as is the case when you want to add a new disk or replace a disk, the bookie must be wiped and then all its data re-replicated onto it. To do this, do the following:</p>
+
+<ol>
+<li>Increment the <em>bookiePort</em> in <em>bk_server.conf</em>.</li>
+<li>Ensure that all directories specified by <em>journalDirectory</em> and <em>ledgerDirectories</em> are empty.</li>
+<li>Start the bookie.</li>
+<li>Run <code>bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools &lt;zkserver&gt; &lt;oldbookie&gt; &lt;newbookie&gt;</code> to re-replicate data. <oldbookie> and <newbookie> are identified by their external IP and bookiePort. For example if this process is being run on a bookie with an external IP of 192.168.1.10, with an old <em>bookiePort</em> of 3181 and a new <em>bookiePort</em> of 3182, and with zookeeper running on <em>zk1.example.com</em>, the command to run would be <br/><code>bin/bookkeeper org.apache.bookkeeper.tools.BookKeeperTools zk1.example.com 192.168.1.10:3181 192.168.1.10:3182</code>. See <a href="./bookieRecovery.html">Bookie Recovery</a> for more details on the re-replication process.</li>
+</ol>
+
+<p>The mechanism to prevent the bookie from starting up in the case of configuration changes exists to prevent the following silent failures:</p>
+
+<ol>
+<li>A strict subset of the ledger devices (among multiple ledger devices) has been replaced, consequently making the content of the replaced devices unavailable;</li>
+<li>A strict subset of the ledger directories has been accidentally deleted.</li>
+</ol>
+
+<h3>Full or failing disks</h3>
+
+<p>A bookie can go into read-only mode if it detects problems with its disks. In read-only mode, the bookie will serve read requests, but will not allow any writes. Any ledger currently writing to the bookie will replace the bookie in its ensemble. No new ledgers will select the read-only bookie for writing.</p>
+
+<p>The bookie goes into read-only mode in the following conditions.</p>
+
+<ol>
+<li>All disks are full.</li>
+<li>An error occurred flushing to the ledger disks.</li>
+<li>An error occurred writing to the journal disk.</li>
+</ol>
+
+<p>Important parameters are:</p>
+
+<ul>
+<li><code>readOnlyModeEnabled</code>, whether read-only mode is enabled. If read-only mode is not enabled, the bookie will shutdown on encountering any of the above conditions. By default, read-only mode is disabled.</li>
+<li><code>diskUsageThreshold</code>, percentage threshold at which a disk will be considered full. This value must be between 0 and 1.0. By default, the value is 0.95.</li>
+<li><code>diskCheckInterval</code>, interval at which the disks are checked to see if they are full. Specified in milliseconds. By default the check occurs every 10000 milliseconds (10 seconds).</li>
+</ul>
+
+<h2>Running Autorecovery nodes</h2>
+
+<p>To run autorecovery nodes, we execute the following command in every Bookie node:<br />
+ <code>bookkeeper-server/bin/bookkeeper autorecovery</code></p>
+
+<p>Configuration parameters for autorecovery can be set in <strong>bookkeeper-server/conf/bk_server.conf</strong>.</p>
+
+<p>Important parameters are:</p>
+
+<ul>
+<li><code>auditorPeriodicCheckInterval</code>, interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.</li>
+</ul>
+
+<ul>
+<li><code>rereplicationEntryBatchSize</code> specifies the number of entries which a replication will rereplicate in parallel. The default value is 10. A larger value for this parameter will increase the speed at which autorecovery occurs but will increase the memory requirement of the autorecovery process, and create more load on the cluster.</li>
+</ul>
+
+<ul>
+<li><code>openLedgerRereplicationGracePeriod</code>, is the amount of time, in milliseconds, which a recovery worker will wait before recovering a ledger segment which has no defined ended, i.e. the client is still writing to that segment. If the client is still active, it should detect the bookie failure, and start writing to a new ledger segment, and a new ensemble, which doesn't include the failed bookie. Creating new ledger segment will define the end of the previous segment. If, after the grace period, the ledger segment's end has not been defined, we assume the writing client has crashed. The ledger is fenced and the client is blocked from writing any more entries to the ledger. The default value is 30000ms.</li>
+</ul>
+
+
+<h3>Disabling Autorecovery during maintenance</h3>
+
+<p>It is useful to disable autorecovery during maintenance, for example, to avoid a Bookie's data being unnecessarily rereplicated when it is only being taken down for a short period to update the software, or change the configuration.</p>
+
+<p>To disable autorecovery, run:<br />
+<code>bookkeeper-server/bin/bookkeeper shell autorecovery -disable</code></p>
+
+<p>To reenable, run:<br />
+<code>bookkeeper-server/bin/bookkeeper shell autorecovery -enable</code></p>
+
+<p>Autorecovery enable/disable only needs to be run once for the whole cluster, and not individually on each Bookie in the cluster.</p>
+
+<h2>Setting up a test ensemble</h2>
+
+<p>Sometimes it is useful to run a ensemble of bookies on your local machine for testing. We provide a utility for doing this. It will set up N bookies, and a zookeeper instance locally. The data on these bookies and of the zookeeper instance are not persisted over restarts, so obviously this should never be used in a production environment. To run a test ensemble of 10 bookies, do the following:</p>
+
+<p><code>bookkeeper-server/bin/bookkeeper localbookie 10</code></p>
+
+    </div>
+    <footer class="footer">
+      <div class="container">
+        <p class="text-muted">Copyright &copy; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br/>
+	Apache BookKeeper, BookKeeper, Apache, Apache ZooKeeper, ZooKeeper, the Apache feather logo, and the Apache BookKeeper project logo are trademarks of The Apache Software Foundation.</p>
+      </div>
+    </footer>
+
+    <script src="http://code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+  </body>
+</html>

Added: websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperConfigParams.html
==============================================================================
--- websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperConfigParams.html (added)
+++ websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperConfigParams.html Sun May 15 21:40:24 2016
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<!--
+
+    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.
+-->
+<html>
+  <head>
+    <title>Apache BookKeeper - BookKeeper Configuration Parameters</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet">
+    <link href="/css/bootstrap-responsive.min.css" rel="stylesheet">
+    <link href="/css/styles.css" rel="stylesheet">
+  </head>
+  <body>
+    <header class="navbar navbar-inverse navbar-static-top" role="banner">
+      <div class="container">
+    	<div class="navbar-header hidden-xs hidden-sm">
+    	  <a class="navbar-brand navbar-logo" href="/"><img class="img-responsive" src="/img/bookkeeper_blk40.png" alt="Bookkeeper Logo" /></a>
+    	</div>
+    	<div class="navbar-header">
+    	  <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+    	  </button>
+    	  <a class="navbar-brand" href="/">Apache BookKeeper</a>
+    	</div>
+    	<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
+    	  <ul class="nav navbar-nav">
+    	    <li><a href="/releases.html">Download</a></li>
+
+    	    <li class="dropdown">
+    	      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
+    	      <ul class="dropdown-menu" role="menu">
+		<li><a href="/docs/master">Latest (master)</a></li>
+		<li><ul>
+		    <li><a href="/docs/master/apidocs">Java API docs</a></li>
+		    <li><a href="/docs/master/bookkeeperTutorial.html">Tutorial</a></li>
+		    <li><a href="/docs/master/bookkeeperConfig.html">Admin guide</a></li>
+		</ul><li>
+                <li><a href="/docs/r4.4.0">Release 4.4.0</a></li>
+                <li class="divider"></li>
+                <li>Older releases</li>
+                <li><a href="/docs/r4.3.2">Release 4.3.2</a></li>
+                <li><a href="/docs/r4.3.1">Release 4.3.1</a></li>
+                <li><a href="/docs/r4.3.0">Release 4.3.0</a></li>
+                <li><a href="/docs/r4.2.4">Release 4.2.4</a></li>
+                <li><a href="/docs/r4.2.3">Release 4.2.3</a></li>
+                <li><a href="/docs/r4.2.2">Release 4.2.2</a></li>
+                <li><a href="/docs/r4.2.1">Release 4.2.1</a></li>
+                <li><a href="/docs/r4.2.0">Release 4.2.0</a></li>
+                <li><a href="/docs/r4.1.0">Release 4.1.0</a></li>
+                <li><a href="/docs/r4.0.0">Release 4.0.0</a></li>
+              </ul>
+            </li>
+            
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Get Involved<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/lists.html">Mailing Lists</a></li>
+                <li><a href="/irc.html">IRC</a></li>
+                <li><a href="/svn.html">Version Control</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/BOOKKEEPER">Issue Tracker</a></li>
+              </ul>
+            </li>
+
+            <li><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/Index">Wiki</a></li>
+            <!--<li><a href="#">Hedwig</a></li>//-->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project Info<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/credits.html">Who are we?</a></li>
+                <li><a href="/bylaws.html">Bylaws</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li class="divider"></li>
+                <li><a href="/privacy.html">Privacy Policy</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsership</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+              </ul>
+            </li>
+          </ul>
+          <script>
+            (function() {
+            var cx = '017580107654524087317:iqnsyimpydg';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+            '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+            })();
+          </script>
+          
+          <div class="navbar-form navbar-right visible-lg" id="googlebox">
+            <gcse:searchbox-only></gcse:searchbox-only>
+          </div>
+        </nav>
+      </div>
+    </header>
+    <div class="container">
+
+ <h1>BookKeeper Configuration Parameters</h1>
+
+<p>This page contains detailed information about configuration parameters used for configuring a BookKeeper client.</p>
+
+<h3>General parameters</h3>
+
+<table><tr><td><code>zkServers</code></td><td>A list of one of more servers on which zookeeper is running. The server list can be comma separated values, e.g., zk1:2181,zk2:2181,zk3:2181</td></tr><tr><td><code>zkTimeout</code></td><td>ZooKeeper client session timeout in milliseconds. The default value is 10,000.</td></tr><tr><td><code>throttle</code></td><td>A throttle value is used to prevent running out of memory when producing too many requests than the capability of bookie servers can handle. The default is 5,000.</td></tr><tr><td><code>readTimeout</code></td><td>This is the number of seconds bookkeeper client wait without hearing a response from a bookie before client consider it failed. The default is 5 seconds.</td></tr><tr><td><code>numWorkerThreads</code></td><td>This is the number of worker threads used by bookkeeper client to submit operations. The default value is the number of available processors.</td></tr></table>
+
+<h3><span class="caps">NIO </span>server settings</h3>
+
+<table><tr><td><code>clientTcpNoDelay</code></td><td>This settings is used to enabled/disabled Nagle's algorithm, which is a means of improving the efficiency of <span class="caps">TCP</span>/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance. Default value is true.</td></tr></table>
+
+<h3>Ledger manager settings</h3>
+
+<table><tr><td><code>ledgerManagerType</code></td><td>This parameter determines the type of ledger manager used to manage how ledgers are stored, manipulated, and garbage collected. See <a href="./bookkeeperInternals.html">BookKeeper Internals</a> for detailed info. Default value is flat.</td></tr><tr><td><code>zkLedgersRootPath</code></td><td>Root zookeeper path to store ledger metadata. Default is /ledgers.</td></tr></table>
+
+<h3>Bookie recovery settings</h3>
+
+<p>Currently bookie recovery tool needs a digest type and passwd to open ledgers to do recovery. Currently, bookkeeper assumes that all ledgers were created with the same DigestType and Password. In the future, it needs to know for each ledger, what was the DigestType and Password used to create it before opening it.</p>
+
+<table><tr><td><code>digestType</code></td><td>Digest type used to open ledgers from bookie recovery tool.</td></tr><tr><td><code>passwd</code></td><td>Password used to open ledgers from bookie recovery tool.</td></tr></table>
+
+    </div>
+    <footer class="footer">
+      <div class="container">
+        <p class="text-muted">Copyright &copy; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br/>
+	Apache BookKeeper, BookKeeper, Apache, Apache ZooKeeper, ZooKeeper, the Apache feather logo, and the Apache BookKeeper project logo are trademarks of The Apache Software Foundation.</p>
+      </div>
+    </footer>
+
+    <script src="http://code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+  </body>
+</html>

Added: websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperInternals.html
==============================================================================
--- websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperInternals.html (added)
+++ websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperInternals.html Sun May 15 21:40:24 2016
@@ -0,0 +1,209 @@
+<!DOCTYPE html>
+<!--
+
+    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.
+-->
+<html>
+  <head>
+    <title>Apache BookKeeper - BookKeeper Internals</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet">
+    <link href="/css/bootstrap-responsive.min.css" rel="stylesheet">
+    <link href="/css/styles.css" rel="stylesheet">
+  </head>
+  <body>
+    <header class="navbar navbar-inverse navbar-static-top" role="banner">
+      <div class="container">
+    	<div class="navbar-header hidden-xs hidden-sm">
+    	  <a class="navbar-brand navbar-logo" href="/"><img class="img-responsive" src="/img/bookkeeper_blk40.png" alt="Bookkeeper Logo" /></a>
+    	</div>
+    	<div class="navbar-header">
+    	  <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+    	  </button>
+    	  <a class="navbar-brand" href="/">Apache BookKeeper</a>
+    	</div>
+    	<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
+    	  <ul class="nav navbar-nav">
+    	    <li><a href="/releases.html">Download</a></li>
+
+    	    <li class="dropdown">
+    	      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
+    	      <ul class="dropdown-menu" role="menu">
+		<li><a href="/docs/master">Latest (master)</a></li>
+		<li><ul>
+		    <li><a href="/docs/master/apidocs">Java API docs</a></li>
+		    <li><a href="/docs/master/bookkeeperTutorial.html">Tutorial</a></li>
+		    <li><a href="/docs/master/bookkeeperConfig.html">Admin guide</a></li>
+		</ul><li>
+                <li><a href="/docs/r4.4.0">Release 4.4.0</a></li>
+                <li class="divider"></li>
+                <li>Older releases</li>
+                <li><a href="/docs/r4.3.2">Release 4.3.2</a></li>
+                <li><a href="/docs/r4.3.1">Release 4.3.1</a></li>
+                <li><a href="/docs/r4.3.0">Release 4.3.0</a></li>
+                <li><a href="/docs/r4.2.4">Release 4.2.4</a></li>
+                <li><a href="/docs/r4.2.3">Release 4.2.3</a></li>
+                <li><a href="/docs/r4.2.2">Release 4.2.2</a></li>
+                <li><a href="/docs/r4.2.1">Release 4.2.1</a></li>
+                <li><a href="/docs/r4.2.0">Release 4.2.0</a></li>
+                <li><a href="/docs/r4.1.0">Release 4.1.0</a></li>
+                <li><a href="/docs/r4.0.0">Release 4.0.0</a></li>
+              </ul>
+            </li>
+            
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Get Involved<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/lists.html">Mailing Lists</a></li>
+                <li><a href="/irc.html">IRC</a></li>
+                <li><a href="/svn.html">Version Control</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/BOOKKEEPER">Issue Tracker</a></li>
+              </ul>
+            </li>
+
+            <li><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/Index">Wiki</a></li>
+            <!--<li><a href="#">Hedwig</a></li>//-->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project Info<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/credits.html">Who are we?</a></li>
+                <li><a href="/bylaws.html">Bylaws</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li class="divider"></li>
+                <li><a href="/privacy.html">Privacy Policy</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsership</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+              </ul>
+            </li>
+          </ul>
+          <script>
+            (function() {
+            var cx = '017580107654524087317:iqnsyimpydg';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+            '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+            })();
+          </script>
+          
+          <div class="navbar-form navbar-right visible-lg" id="googlebox">
+            <gcse:searchbox-only></gcse:searchbox-only>
+          </div>
+        </nav>
+      </div>
+    </header>
+    <div class="container">
+
+ <h2>Bookie Internals</h2>
+
+<p>Bookie server stores its data in multiple ledger directories and its journal files in a journal directory. Ideally, storing journal files in a separate directory than data files would increase throughput and decrease latency</p>
+
+<h3>The Bookie Journal</h3>
+
+<p>Journal directory has one kind of file in it:</p>
+
+<ul>
+<li><code>{timestamp}.txn</code> - holds transactions executed in the bookie server.</li>
+</ul>
+
+<p>Before persisting ledger index and data to disk, a bookie ensures that the transaction that represents the update is written to a journal in non-volatile storage. A new journal file is created using current timestamp when a bookie starts or an old journal file reaches its maximum size.</p>
+
+<p>A bookie supports journal rolling to remove old journal files. In order to remove old journal files safely, bookie server records LastLogMark in Ledger Device, which indicates all updates (including index and data) before LastLogMark has been persisted to the Ledger Device.</p>
+
+<p>LastLogMark contains two parts:</p>
+
+<ul>
+<li><code>LastLogId</code> - indicates which journal file the transaction persisted.</li>
+<li><code>LastLogPos</code> - indicates the position the transaction persisted in LastLogId journal file.</li>
+</ul>
+
+<p>You may use following settings to further fine tune the behavior of journalling on bookies:</p>
+
+<table><tr><td><code>journalMaxSizeMB</code></td><td>journal file size limitation. when a journal reaches this limitation, it will be closed and new journal file be created.</td></tr><tr><td><code>journalMaxBackups</code></td><td>how many old journal files whose id is less than LastLogMark 's journal id.</td></tr></table>
+
+<blockquote><p><span class="caps">NOTE</span>: keeping number of old journal files would be useful for manually recovery in special case.</p></blockquote>
+
+<h1>ZooKeeper Metadata</h1>
+
+<p>For BookKeeper, we require a ZooKeeper installation to store metadata, and to pass the list of ZooKeeper servers as parameter to the constructor of the BookKeeper class (<code>org.apache.bookkeeper.client.BookKeeper</code>). To setup ZooKeeper, please check the <a href="http://zookeeper.apache.org/doc/trunk/index.html">ZooKeeper documentation</a>. </p>
+
+<p>BookKeeper provides two mechanisms to organize its metadata in ZooKeeper. By default, the <code>FlatLedgerManager</code> is used, and 99% of users should never need to look at anything else. However, in cases where there are a lot of active ledgers concurrently, (&gt; 50,000), <code>HierarchicalLedgerManager</code> should be used. For so many ledgers, a hierarchical approach is needed due to a limit ZooKeeper places on packet sizes <a href="https://issues.apache.org/jira/browse/BOOKKEEPER-39"><span class="caps">JIRA</span> Issue</a>.</p>
+
+<table><tr><td><code>FlatLedgerManager</code></td><td>All ledger metadata are placed as children in a single zookeeper path.</td></tr><tr><td><code>HierarchicalLedgerManager</code></td><td>All ledger metadata are partitioned into 2-level znodes.</td></tr></table>
+
+<h2>Flat Ledger Manager</h2>
+
+<p>All ledgers' metadata are put in a single zookeeper path, created using zookeeper sequential node, which can ensure uniqueness of ledger id. Each ledger node is prefixed with 'L'.</p>
+
+<p>Bookie server manages its owned active ledgers in a hash map. So it is easy for bookie server to find what ledgers are deleted from zookeeper and garbage collect them. And its garbage collection flow is described as below:</p>
+
+<ul>
+<li>Fetch all existing ledgers from zookeeper (<code>zkActiveLedgers</code>).</li>
+<li>Fetch all ledgers currently active within the Bookie (<code>bkActiveLedgers</code>).</li>
+<li>Loop over <code>bkActiveLedgers</code> to find those ledgers which do not exist in <code>zkActiveLedgers</code> and garbage collect them.</li>
+</ul>
+
+<h2>Hierarchical Ledger Manager</h2>
+
+<p><code>HierarchicalLedgerManager</code> first obtains a global unique id from ZooKeeper using a <span class="caps">EPHEMERAL</span>_SEQUENTIAL znode.</p>
+
+<p>Since ZooKeeper sequential counter has a format of %10d -- that is 10 digits with 0 (zero) padding, i.e. "&lt;path&gt;0000000001", <code>HierarchicalLedgerManager</code> splits the generated id into 3 parts :</p>
+
+<p><code>{level1 (2 digits)}{level2 (4 digits)}{level3 (4 digits)}</code></p>
+
+<p>These 3 parts are used to form the actual ledger node path used to store ledger metadata:</p>
+
+<p><code>{ledgers_root_path}/{level1}/{level2}/L{level3}</code></p>
+
+<p>E.g. Ledger 0000000001 is split into 3 parts 00, 0000, 00001, which is stored in znode /{ledgers_root_path}/00/0000/L0001. So each znode could have at most 10000 ledgers, which avoids the problem of the child list being larger than the maximum ZooKeeper packet size.</p>
+
+<p>Bookie server manages its active ledgers in a sorted map, which simplifies access to active ledgers in a particular (level1, level2) partition.</p>
+
+<p>Garbage collection in bookie server is processed node by node as follows:</p>
+
+<ul>
+<li>Fetching all level1 nodes, by calling zk#getChildren(ledgerRootPath).<ul>
+<li>For each level1 nodes, fetching their level2 nodes :</li>
+<li>For each partition (level1, level2) :<ul>
+<li>Fetch all existed ledgers from zookeeper belonging to partition (level1, level2) (<code>zkActiveLedgers</code>).</li>
+<li>Fetch all ledgers currently active in the bookie which belong to partition (level1, level2) (<code>bkActiveLedgers</code>).</li>
+<li>Loop over <code>bkActiveLedgers</code> to find those ledgers which do not exist in <code>zkActiveLedgers</code>, and garbage collect them.</li>
+</ul></li>
+</ul></li>
+</ul>
+
+<blockquote><p><span class="caps">NOTE</span>: Hierarchical Ledger Manager is more suitable to manage large number of ledgers existed in BookKeeper.</p></blockquote>
+
+    </div>
+    <footer class="footer">
+      <div class="container">
+        <p class="text-muted">Copyright &copy; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br/>
+	Apache BookKeeper, BookKeeper, Apache, Apache ZooKeeper, ZooKeeper, the Apache feather logo, and the Apache BookKeeper project logo are trademarks of The Apache Software Foundation.</p>
+      </div>
+    </footer>
+
+    <script src="http://code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+  </body>
+</html>

Added: websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperJMX.html
==============================================================================
--- websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperJMX.html (added)
+++ websites/staging/bookkeeper/trunk/content/docs/r4.4.0/bookkeeperJMX.html Sun May 15 21:40:24 2016
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<!--
+
+    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.
+-->
+<html>
+  <head>
+    <title>Apache BookKeeper - BookKeeper JMX</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="/css/bootstrap.min.css" rel="stylesheet">
+    <link href="/css/bootstrap-responsive.min.css" rel="stylesheet">
+    <link href="/css/styles.css" rel="stylesheet">
+  </head>
+  <body>
+    <header class="navbar navbar-inverse navbar-static-top" role="banner">
+      <div class="container">
+    	<div class="navbar-header hidden-xs hidden-sm">
+    	  <a class="navbar-brand navbar-logo" href="/"><img class="img-responsive" src="/img/bookkeeper_blk40.png" alt="Bookkeeper Logo" /></a>
+    	</div>
+    	<div class="navbar-header">
+    	  <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+    	  </button>
+    	  <a class="navbar-brand" href="/">Apache BookKeeper</a>
+    	</div>
+    	<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
+    	  <ul class="nav navbar-nav">
+    	    <li><a href="/releases.html">Download</a></li>
+
+    	    <li class="dropdown">
+    	      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
+    	      <ul class="dropdown-menu" role="menu">
+		<li><a href="/docs/master">Latest (master)</a></li>
+		<li><ul>
+		    <li><a href="/docs/master/apidocs">Java API docs</a></li>
+		    <li><a href="/docs/master/bookkeeperTutorial.html">Tutorial</a></li>
+		    <li><a href="/docs/master/bookkeeperConfig.html">Admin guide</a></li>
+		</ul><li>
+                <li><a href="/docs/r4.4.0">Release 4.4.0</a></li>
+                <li class="divider"></li>
+                <li>Older releases</li>
+                <li><a href="/docs/r4.3.2">Release 4.3.2</a></li>
+                <li><a href="/docs/r4.3.1">Release 4.3.1</a></li>
+                <li><a href="/docs/r4.3.0">Release 4.3.0</a></li>
+                <li><a href="/docs/r4.2.4">Release 4.2.4</a></li>
+                <li><a href="/docs/r4.2.3">Release 4.2.3</a></li>
+                <li><a href="/docs/r4.2.2">Release 4.2.2</a></li>
+                <li><a href="/docs/r4.2.1">Release 4.2.1</a></li>
+                <li><a href="/docs/r4.2.0">Release 4.2.0</a></li>
+                <li><a href="/docs/r4.1.0">Release 4.1.0</a></li>
+                <li><a href="/docs/r4.0.0">Release 4.0.0</a></li>
+              </ul>
+            </li>
+            
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Get Involved<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/lists.html">Mailing Lists</a></li>
+                <li><a href="/irc.html">IRC</a></li>
+                <li><a href="/svn.html">Version Control</a></li>
+                <li><a href="https://issues.apache.org/jira/browse/BOOKKEEPER">Issue Tracker</a></li>
+              </ul>
+            </li>
+
+            <li><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/Index">Wiki</a></li>
+            <!--<li><a href="#">Hedwig</a></li>//-->
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Project Info<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a href="/credits.html">Who are we?</a></li>
+                <li><a href="/bylaws.html">Bylaws</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li class="divider"></li>
+                <li><a href="/privacy.html">Privacy Policy</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsership</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+              </ul>
+            </li>
+          </ul>
+          <script>
+            (function() {
+            var cx = '017580107654524087317:iqnsyimpydg';
+            var gcse = document.createElement('script');
+            gcse.type = 'text/javascript';
+            gcse.async = true;
+            gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+            '//www.google.com/cse/cse.js?cx=' + cx;
+            var s = document.getElementsByTagName('script')[0];
+            s.parentNode.insertBefore(gcse, s);
+            })();
+          </script>
+          
+          <div class="navbar-form navbar-right visible-lg" id="googlebox">
+            <gcse:searchbox-only></gcse:searchbox-only>
+          </div>
+        </nav>
+      </div>
+    </header>
+    <div class="container">
+
+ <h1><span class="caps">JMX</span></h1>
+
+<p>Apache BookKeeper has extensive support for <span class="caps">JMX, </span>which allows viewing and managing a BookKeeper cluster.</p>
+
+<p>This document assumes that you have basic knowledge of <span class="caps">JMX.</span> See <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">Sun <span class="caps">JMX</span> Technology</a> page to get started with <span class="caps">JMX.</span></p>
+
+<p>See the <a href="http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html"><span class="caps">JMX</span> Management Guide</a> for details on setting up local and remote management of VM instances. By default the included <i>bookkeeper</i> script supports only local management - review the linked document to enable support for remote management (beyond the scope of this document).</p>
+
+<p><i>Bookie Server</i> is a <span class="caps">JMX </span>manageable server, which registers the proper MBeans during initialization to support <span class="caps">JMX </span>monitoring and management of the instance.</p>
+
+<h1>Bookie Server MBean Reference</h1>
+
+<p>This table details <span class="caps">JMX </span>for a bookie server.</p>
+
+<table><tr><td>_.MBean</td><td>_.MBean Object Name</td><td>_.Description</td></tr><tr><td>BookieServer</td><td>BookieServer_<port></td><td>Represents a bookie server. Note that the object name includes bookie port that the server listens on. It is the root MBean for bookie server, which includes statistics for a bookie server. E.g. number packets sent/received, and statistics for add/read operations.</td></tr><tr><td>Bookie</td><td>Bookie</td><td>Provide bookie statistics. Currently it just returns current journal queue length waiting to be committed.</td></tr><tr><td>LedgerCache</td><td>LedgerCache</td><td>Provide ledger cache statistics. E.g. number of page cached in page cache, number of files opened for ledger index files.</td></tr></table>
+
+    </div>
+    <footer class="footer">
+      <div class="container">
+        <p class="text-muted">Copyright &copy; 2014 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br/>
+	Apache BookKeeper, BookKeeper, Apache, Apache ZooKeeper, ZooKeeper, the Apache feather logo, and the Apache BookKeeper project logo are trademarks of The Apache Software Foundation.</p>
+      </div>
+    </footer>
+
+    <script src="http://code.jquery.com/jquery.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+  </body>
+</html>



Mime
View raw message