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>


Reply via email to