You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by bu...@apache.org on 2014/03/13 17:58:02 UTC

svn commit: r901459 [25/39] - in /websites/staging/zookeeper/trunk/content: ./ bookkeeper/docs/trunk/ doc/r3.4.6/ doc/r3.4.6/api/ doc/r3.4.6/api/org/ doc/r3.4.6/api/org/apache/ doc/r3.4.6/api/org/apache/zookeeper/ doc/r3.4.6/api/org/apache/zookeeper/cl...

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/overview-tree.html
==============================================================================
--- websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/overview-tree.html (added)
+++ websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/overview-tree.html Thu Mar 13 16:57:55 2014
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_51) on Thu Feb 20 10:14:20 GMT 2014 -->
+<title>Class Hierarchy (ZooKeeper 3.4.6 API)</title>
+<meta name="date" content="2014-02-20">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Class Hierarchy (ZooKeeper 3.4.6 API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/zookeeper/package-tree.html">org.apache.zookeeper</a>, </li>
+<li><a href="org/apache/zookeeper/client/package-tree.html">org.apache.zookeeper.client</a>, </li>
+<li><a href="org/apache/zookeeper/data/package-tree.html">org.apache.zookeeper.data</a>, </li>
+<li><a href="org/apache/zookeeper/server/package-tree.html">org.apache.zookeeper.server</a>, </li>
+<li><a href="org/apache/zookeeper/server/quorum/package-tree.html">org.apache.zookeeper.server.quorum</a>, </li>
+<li><a href="org/apache/zookeeper/server/upgrade/package-tree.html">org.apache.zookeeper.server.upgrade</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">org.apache.zookeeper.data.<a href="org/apache/zookeeper/data/ACL.html" title="class in org.apache.zookeeper.data"><span class="strong">ACL</span></a> (implements org.apache.jute.Record)</li>
+<li type="circle">org.apache.zookeeper.client.<a href="org/apache/zookeeper/client/FourLetterWordMain.html" title="class in org.apache.zookeeper.client"><span class="strong">FourLetterWordMain</span></a></li>
+<li type="circle">org.apache.zookeeper.data.<a href="org/apache/zookeeper/data/Id.html" title="class in org.apache.zookeeper.data"><span class="strong">Id</span></a> (implements org.apache.jute.Record)</li>
+<li type="circle">org.apache.zookeeper.server.<a href="org/apache/zookeeper/server/LogFormatter.html" title="class in org.apache.zookeeper.server"><span class="strong">LogFormatter</span></a></li>
+<li type="circle">org.apache.zookeeper.server.<a href="org/apache/zookeeper/server/PurgeTxnLog.html" title="class in org.apache.zookeeper.server"><span class="strong">PurgeTxnLog</span></a></li>
+<li type="circle">org.apache.zookeeper.server.quorum.<a href="org/apache/zookeeper/server/quorum/QuorumPeerMain.html" title="class in org.apache.zookeeper.server.quorum"><span class="strong">QuorumPeerMain</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ServerAdminClient.html" title="class in org.apache.zookeeper"><span class="strong">ServerAdminClient</span></a></li>
+<li type="circle">org.apache.zookeeper.server.<a href="org/apache/zookeeper/server/SnapshotFormatter.html" title="class in org.apache.zookeeper.server"><span class="strong">SnapshotFormatter</span></a></li>
+<li type="circle">org.apache.zookeeper.data.<a href="org/apache/zookeeper/data/Stat.html" title="class in org.apache.zookeeper.data"><span class="strong">Stat</span></a> (implements org.apache.jute.Record)</li>
+<li type="circle">org.apache.zookeeper.data.<a href="org/apache/zookeeper/data/StatPersisted.html" title="class in org.apache.zookeeper.data"><span class="strong">StatPersisted</span></a> (implements org.apache.jute.Record)</li>
+<li type="circle">org.apache.zookeeper.data.<a href="org/apache/zookeeper/data/StatPersistedV1.html" title="class in org.apache.zookeeper.data"><span class="strong">StatPersistedV1</span></a> (implements org.apache.jute.Record)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="strong">Exception</span></a>
+<ul>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException</span></a>
+<ul>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.APIErrorException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.APIErrorException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.AuthFailedException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.AuthFailedException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.BadArgumentsException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.BadArgumentsException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.BadVersionException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.BadVersionException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.ConnectionLossException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.ConnectionLossException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.DataInconsistencyException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.DataInconsistencyException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.InvalidACLException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.InvalidACLException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.InvalidCallbackException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.InvalidCallbackException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.MarshallingErrorException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.MarshallingErrorException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.NoAuthException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.NoAuthException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.NoChildrenForEphemeralsException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.NoChildrenForEphemeralsException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.NodeExistsException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.NodeExistsException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.NoNodeException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.NoNodeException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.NotEmptyException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.NotEmptyException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.NotReadOnlyException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.NotReadOnlyException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.OperationTimeoutException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.OperationTimeoutException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.RuntimeInconsistencyException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.RuntimeInconsistencyException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.SessionExpiredException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.SessionExpiredException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.SessionMovedException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.SessionMovedException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.SystemErrorException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.SystemErrorException</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.UnimplementedException.html" title="class in org.apache.zookeeper"><span class="strong">KeeperException.UnimplementedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.zookeeper.server.upgrade.<a href="org/apache/zookeeper/server/upgrade/UpgradeMain.html" title="class in org.apache.zookeeper.server.upgrade"><span class="strong">UpgradeMain</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/WatchedEvent.html" title="class in org.apache.zookeeper"><span class="strong">WatchedEvent</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooDefs.html" title="class in org.apache.zookeeper"><span class="strong">ZooDefs</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooKeeper.html" title="class in org.apache.zookeeper"><span class="strong">ZooKeeper</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooKeeperMain.html" title="class in org.apache.zookeeper"><span class="strong">ZooKeeperMain</span></a></li>
+<li type="circle">org.apache.zookeeper.server.<a href="org/apache/zookeeper/server/ZooKeeperServerMain.html" title="class in org.apache.zookeeper.server"><span class="strong">ZooKeeperServerMain</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback</span></a>
+<ul>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.ACLCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.ACLCallback</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.Children2Callback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.Children2Callback</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.ChildrenCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.ChildrenCallback</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.DataCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.DataCallback</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.StatCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.StatCallback</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.StringCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.StringCallback</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/AsyncCallback.VoidCallback.html" title="interface in org.apache.zookeeper"><span class="strong">AsyncCallback.VoidCallback</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.CodeDeprecated.html" title="interface in org.apache.zookeeper"><span class="strong">KeeperException.CodeDeprecated</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/Watcher.html" title="interface in org.apache.zookeeper"><span class="strong">Watcher</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/Watcher.Event.html" title="interface in org.apache.zookeeper"><span class="strong">Watcher.Event</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooDefs.Ids.html" title="interface in org.apache.zookeeper"><span class="strong">ZooDefs.Ids</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooDefs.OpCode.html" title="interface in org.apache.zookeeper"><span class="strong">ZooDefs.OpCode</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooDefs.Perms.html" title="interface in org.apache.zookeeper"><span class="strong">ZooDefs.Perms</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/CreateMode.html" title="enum in org.apache.zookeeper"><span class="strong">CreateMode</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.Code.html" title="enum in org.apache.zookeeper"><span class="strong">KeeperException.Code</span></a> (implements org.apache.zookeeper.<a href="org/apache/zookeeper/KeeperException.CodeDeprecated.html" title="interface in org.apache.zookeeper">KeeperException.CodeDeprecated</a>)</li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/Watcher.Event.KeeperState.html" title="enum in org.apache.zookeeper"><span class="strong">Watcher.Event.KeeperState</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/Watcher.Event.EventType.html" title="enum in org.apache.zookeeper"><span class="strong">Watcher.Event.EventType</span></a></li>
+<li type="circle">org.apache.zookeeper.<a href="org/apache/zookeeper/ZooKeeper.States.html" title="enum in org.apache.zookeeper"><span class="strong">ZooKeeper.States</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &copy; 2014 The Apache Software Foundation</small></p>
+</body>
+</html>

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/package-list
==============================================================================
--- websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/package-list (added)
+++ websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/package-list Thu Mar 13 16:57:55 2014
@@ -0,0 +1,6 @@
+org.apache.zookeeper
+org.apache.zookeeper.client
+org.apache.zookeeper.data
+org.apache.zookeeper.server
+org.apache.zookeeper.server.quorum
+org.apache.zookeeper.server.upgrade

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/background.gif
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/background.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/tab.gif
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/tab.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/titlebar.gif
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/titlebar.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/titlebar_end.gif
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/resources/titlebar_end.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/serialized-form.html
==============================================================================
--- websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/serialized-form.html (added)
+++ websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/serialized-form.html Thu Mar 13 16:57:55 2014
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_51) on Thu Feb 20 10:14:20 GMT 2014 -->
+<title>Serialized Form (ZooKeeper 3.4.6 API)</title>
+<meta name="date" content="2014-02-20">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Serialized Form (ZooKeeper 3.4.6 API)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.zookeeper</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException</a> extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>results</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">E</a>&gt; results</pre>
+<div class="block">All multi-requests that result in an exception retain the results
+ here so that it is possible to examine the problems in the catch
+ scope.  Non-multi requests will get a null if they try to access
+ these results.</div>
+</li>
+<li class="blockList">
+<h4>code</h4>
+<pre><a href="org/apache/zookeeper/KeeperException.Code.html" title="enum in org.apache.zookeeper">KeeperException.Code</a> code</pre>
+</li>
+<li class="blockListLast">
+<h4>path</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.APIErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.APIErrorException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.APIErrorException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.AuthFailedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.AuthFailedException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.AuthFailedException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.BadArgumentsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.BadArgumentsException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.BadArgumentsException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.BadVersionException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.BadVersionException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.BadVersionException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.ConnectionLossException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.ConnectionLossException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.ConnectionLossException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.DataInconsistencyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.DataInconsistencyException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.DataInconsistencyException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.InvalidACLException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.InvalidACLException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.InvalidACLException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.InvalidCallbackException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.InvalidCallbackException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.InvalidCallbackException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.MarshallingErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.MarshallingErrorException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.MarshallingErrorException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.NoAuthException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.NoAuthException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.NoAuthException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.NoChildrenForEphemeralsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.NoChildrenForEphemeralsException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.NoChildrenForEphemeralsException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.NodeExistsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.NodeExistsException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.NodeExistsException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.NoNodeException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.NoNodeException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.NoNodeException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.NotEmptyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.NotEmptyException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.NotEmptyException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.NotReadOnlyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.NotReadOnlyException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.NotReadOnlyException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.OperationTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.OperationTimeoutException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.OperationTimeoutException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.RuntimeInconsistencyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.RuntimeInconsistencyException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.RuntimeInconsistencyException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.SessionExpiredException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.SessionExpiredException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.SessionExpiredException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.SessionMovedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.SessionMovedException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.SessionMovedException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.SystemErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.SystemErrorException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.SystemErrorException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.KeeperException.UnimplementedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/zookeeper/KeeperException.UnimplementedException.html" title="class in org.apache.zookeeper">org.apache.zookeeper.KeeperException.UnimplementedException</a> extends <a href="org/apache/zookeeper/KeeperException.html" title="class in org.apache.zookeeper">KeeperException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.Shell.ExitCodeException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.Shell.ExitCodeException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>exitCode</h4>
+<pre>int exitCode</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.zookeeper.server</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.zookeeper.server.RequestProcessor.RequestProcessorException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.server.RequestProcessor.RequestProcessorException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.server.ServerCnxn.CloseRequestException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.server.ServerCnxn.CloseRequestException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-7854505709816442681L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.server.ServerCnxn.EndOfStreamException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.server.ServerCnxn.EndOfStreamException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-8255690282104294178L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.server.ZooKeeperServer.MissingSessionException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.server.ZooKeeperServer.MissingSessionException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>7467414635467261007L</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.zookeeper.server.quorum</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.zookeeper.server.quorum.Leader.XidRolloverException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.server.quorum.Leader.XidRolloverException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.zookeeper.server.quorum.QuorumPeerConfig.ConfigException">
+<!--   -->
+</a>
+<h3>Class org.apache.zookeeper.server.quorum.QuorumPeerConfig.ConfigException extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &copy; 2014 The Apache Software Foundation</small></p>
+</body>
+</html>

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/stylesheet.css
==============================================================================
--- websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/stylesheet.css (added)
+++ websites/staging/zookeeper/trunk/content/doc/r3.4.6/api/stylesheet.css Thu Mar 13 16:57:55 2014
@@ -0,0 +1,474 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:Arial, Helvetica, sans-serif;
+    font-size:76%;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-size:1.3em;
+}
+h1 {
+    font-size:1.8em;
+}
+h2 {
+    font-size:1.5em;
+}
+h3 {
+    font-size:1.4em;
+}
+h4 {
+    font-size:1.3em;
+}
+h5 {
+    font-size:1.2em;
+}
+h6 {
+    font-size:1.1em;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-size:1.2em;
+}
+dt code {
+    font-size:1.2em;
+}
+table tr td dt code {
+    font-size:1.2em;
+    vertical-align:top;
+}
+sup {
+    font-size:.6em;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:.8em;
+    z-index:200;
+    margin-top:-7px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    background-image:url(resources/titlebar.gif);
+    background-position:left top;
+    background-repeat:no-repeat;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:1em;
+    margin:0;
+}
+.topNav {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.bottomNav {
+    margin-top:10px;
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.subNav {
+    background-color:#dee3e9;
+    border-bottom:1px solid #9eadc0;
+    float:left;
+    width:100%;
+    overflow:hidden;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding:3px 6px;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+    font-size:90%;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+.navBarCell1Rev {
+    background-image:url(resources/tab.gif);
+    background-color:#a88834;
+    color:#FFFFFF;
+    margin: auto 5px;
+    border:1px solid #c9aa44;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader h1 {
+    font-size:1.3em;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 25px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:1.2em;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:1.0em;
+}
+.indexContainer h2 {
+    font-size:1.1em;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:1.1em;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:10px 0 10px 20px;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:25px;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #9eadc0;
+    background-color:#f9f9f9;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:1px solid #9eadc0;
+    border-top:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+    border-bottom:1px solid #9eadc0;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.contentContainer table, .classUseContainer table, .constantValuesContainer table {
+    border-bottom:1px solid #9eadc0;
+    width:100%;
+}
+.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
+    width:100%;
+}
+.contentContainer .description table, .contentContainer .details table {
+    border-bottom:none;
+}
+.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
+    vertical-align:top;
+    padding-right:20px;
+}
+.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
+.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
+.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
+.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
+    padding-right:3px;
+}
+.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#FFFFFF;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    margin:0px;
+}
+caption a:link, caption a:hover, caption a:active, caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
+    white-space:nowrap;
+    padding-top:8px;
+    padding-left:8px;
+    display:block;
+    float:left;
+    background-image:url(resources/titlebar.gif);
+    height:18px;
+}
+.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
+    width:10px;
+    background-image:url(resources/titlebar_end.gif);
+    background-repeat:no-repeat;
+    background-position:top right;
+    position:relative;
+    float:left;
+}
+ul.blockList ul.blockList li.blockList table {
+    margin:0 0 12px 0px;
+    width:100%;
+}
+.tableSubHeadingColor {
+    background-color: #EEEEFF;
+}
+.altColor {
+    background-color:#eeeeef;
+}
+.rowColor {
+    background-color:#ffffff;
+}
+.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
+    background:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+td.colFirst, th.colFirst {
+    border-left:1px solid #9eadc0;
+    white-space:nowrap;
+}
+td.colLast, th.colLast {
+    border-right:1px solid #9eadc0;
+}
+td.colOne, th.colOne {
+    border-right:1px solid #9eadc0;
+    border-left:1px solid #9eadc0;
+}
+table.overviewSummary  {
+    padding:0px;
+    margin-left:0px;
+}
+table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
+table.overviewSummary td.colOne, table.overviewSummary th.colOne {
+    width:25%;
+    vertical-align:middle;
+}
+table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
+    width:25%;
+    vertical-align:middle;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:.9em;
+}
+.block {
+    display:block;
+    margin:3px 0 0 0;
+}
+.strong {
+    font-weight:bold;
+}

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperConfig.html
==============================================================================
--- websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperConfig.html (added)
+++ websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperConfig.html Thu Mar 13 16:57:55 2014
@@ -0,0 +1,384 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-skin-name" content="pelt">
+<title>BookKeeper Administrator's Guide</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://zookeeper.apache.org/">ZooKeeper</a> &gt; <a href="http://zookeeper.apache.org/">ZooKeeper</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://zookeeper.apache.org/"><img class="logoImage" alt="ZooKeeper" src="images/zookeeper_small.gif" title="ZooKeeper: distributed coordination"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="zookeeper.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="http://zookeeper.apache.org/">Project</a>
+</li>
+<li>
+<a class="unselected" href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/">Wiki</a>
+</li>
+<li class="current">
+<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Overview</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="index.html">Welcome</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperOver.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperStarted.html">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="releasenotes.html">Release Notes</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Developer</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="api/index.html">API Docs</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperProgrammers.html">Programmer's Guide</a>
+</div>
+<div class="menuitem">
+<a href="javaExample.html">Java Example</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a>
+</div>
+<div class="menuitem">
+<a href="recipes.html">Recipes</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">BookKeeper</div>
+<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="bookkeeperStarted.html">Getting started</a>
+</div>
+<div class="menuitem">
+<a href="bookkeeperOverview.html">Overview</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Setup guide</div>
+</div>
+<div class="menuitem">
+<a href="bookkeeperProgrammer.html">Programmer's guide</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Admin &amp; Ops</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="zookeeperAdmin.html">Administrator's Guide</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperQuotas.html">Quota Guide</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperJMX.html">JMX</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperObservers.html">Observers Guide</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" class="menutitle">Contributor</div>
+<div id="menu_1.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="zookeeperInternals.html">ZooKeeper Internals</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.6', 'skin/')" id="menu_1.6Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.6" class="menuitemgroup">
+<div class="menuitem">
+<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER">Wiki</a>
+</div>
+<div class="menuitem">
+<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/FAQ">FAQ</a>
+</div>
+<div class="menuitem">
+<a href="http://zookeeper.apache.org/mailing_lists.html">Mailing Lists</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="bookkeeperConfig.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>BookKeeper Administrator's Guide</h1>
+<h3>Setup Guide</h3>
+<div id="front-matter">
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#bk_deployment">Deployment</a>
+<ul class="minitoc">
+<li>
+<a href="#bk_sysReq">System requirements</a>
+</li>
+<li>
+<a href="#bk_runningBookies">Running bookies</a>
+</li>
+<li>
+<a href="#bk_zkMetadata">ZooKeeper Metadata</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+  
+
+  
+
+  
+
+  
+<a name="bk_deployment"></a>
+<h2 class="h3">Deployment</h2>
+<div class="section">
+<p>This section contains information about deploying BookKeeper and
+    covers these topics:</p>
+<ul>
+      
+<li>
+        
+<p>
+<a href="#bk_sysReq">System requirements</a>
+</p>
+      
+</li>
+
+      
+<li>
+        
+<p>
+<a href="#bk_runningBookies">Running bookies</a>
+</p>
+      
+</li>
+
+      
+<li>
+        
+<p>
+<a href="#bk_zkMetadata">ZooKeeper Metadata</a>
+</p>
+      
+</li>
+    
+</ul>
+<p> The first section tells you how many machines you need. The second explains how to bootstrap bookies
+     (BookKeeper storage servers). The third section explains how we use ZooKeeper and our requirements with
+     respect to ZooKeeper.
+    </p>
+<a name="bk_sysReq"></a>
+<h3 class="h4">System requirements</h3>
+<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 codewith each entry), and there is no upper limit on the number of bookies. Increasing the number of 
+ 	   bookies, in fact, enables 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. Of course, it works with one disk, but performance is significantly lower. 
+ 	   </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>
+<a name="bk_runningBookies"></a>
+<h3 class="h4">Running bookies</h3>
+<p>
+ 	   To run a bookie, we execute the following command:
+ 	   </p>
+<p>
+<span class="codefrag computeroutput">
+		java -cp .:./zookeeper-&lt;version&gt;-bookkeeper.jar:./zookeeper-&lt;version&gt;.jar\
+		:../log4j/apache-log4j-1.2.15/log4j-1.2.15.jar -Dlog4j.configuration=log4j.properties\ 
+		org.apache.bookkeeper.proto.BookieServer 3181 127.0.0.1:2181 /path_to_log_device/\
+		/path_to_ledger_device/
+	   </span>
+</p>
+<p>
+ 	   The parameters are:
+ 	   </p>
+<ul>
+ 	   	
+<li>
+ 	   	
+<p>
+ 	   		Port number that the bookie listens on;
+ 	   	</p>
+ 	   	
+</li>
+ 	   	
+ 	   	
+<li>
+ 	   	
+<p>
+ 	   		Comma separated list of ZooKeeper servers with a hostname:port format;
+ 	   	</p>
+ 	   	
+</li>
+ 	   	
+ 	   	
+<li>
+ 	   	
+<p>
+ 	   		Path for Log Device (stores bookie write-ahead log);
+ 	   	</p>
+ 	   	
+</li>
+ 	   	
+ 	   	
+<li>
+ 	   	
+<p>
+ 	   		Path for Ledger Device (stores ledger entries);
+ 	   	</p>
+ 	   	
+</li>
+ 	   
+</ul>
+<p>
+ 	   Ideally, <span class="codefrag computeroutput">/path_to_log_device/ </span> and <span class="codefrag computeroutput">/path_to_ledger_device/ </span> are each
+ 	   in a different device. 
+ 	   </p>
+<a name="bk_zkMetadata"></a>
+<h3 class="h4">ZooKeeper Metadata</h3>
+<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 (<span class="codefrag computeroutput">
+ 	   org.apache.bookkeeper.client,BookKeeper</span>).
+ 	   To setup ZooKeeper, please check the <a href="index.html">
+          ZooKeeper documentation</a>.
+ 	   </p>
+</div>
+
+<p align="right">
+<font size="-2"></font>
+</p>
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2008-2013 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperConfig.pdf
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperConfig.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperOverview.html
==============================================================================
--- websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperOverview.html (added)
+++ websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperOverview.html Thu Mar 13 16:57:55 2014
@@ -0,0 +1,694 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-skin-name" content="pelt">
+<title>BookKeeper overview</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://zookeeper.apache.org/">ZooKeeper</a> &gt; <a href="http://zookeeper.apache.org/">ZooKeeper</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://zookeeper.apache.org/"><img class="logoImage" alt="ZooKeeper" src="images/zookeeper_small.gif" title="ZooKeeper: distributed coordination"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="zookeeper.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="http://zookeeper.apache.org/">Project</a>
+</li>
+<li>
+<a class="unselected" href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/">Wiki</a>
+</li>
+<li class="current">
+<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Overview</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="index.html">Welcome</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperOver.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperStarted.html">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="releasenotes.html">Release Notes</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Developer</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="api/index.html">API Docs</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperProgrammers.html">Programmer's Guide</a>
+</div>
+<div class="menuitem">
+<a href="javaExample.html">Java Example</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperTutorial.html">Barrier and Queue Tutorial</a>
+</div>
+<div class="menuitem">
+<a href="recipes.html">Recipes</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">BookKeeper</div>
+<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="bookkeeperStarted.html">Getting started</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Overview</div>
+</div>
+<div class="menuitem">
+<a href="bookkeeperConfig.html">Setup guide</a>
+</div>
+<div class="menuitem">
+<a href="bookkeeperProgrammer.html">Programmer's guide</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Admin &amp; Ops</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="zookeeperAdmin.html">Administrator's Guide</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperQuotas.html">Quota Guide</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperJMX.html">JMX</a>
+</div>
+<div class="menuitem">
+<a href="zookeeperObservers.html">Observers Guide</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" class="menutitle">Contributor</div>
+<div id="menu_1.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="zookeeperInternals.html">ZooKeeper Internals</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.6', 'skin/')" id="menu_1.6Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.6" class="menuitemgroup">
+<div class="menuitem">
+<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER">Wiki</a>
+</div>
+<div class="menuitem">
+<a href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/FAQ">FAQ</a>
+</div>
+<div class="menuitem">
+<a href="http://zookeeper.apache.org/mailing_lists.html">Mailing Lists</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="bookkeeperOverview.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>BookKeeper overview</h1>
+<div id="front-matter">
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#bk_Overview">BookKeeper overview</a>
+<ul class="minitoc">
+<li>
+<a href="#bk_Intro">BookKeeper introduction</a>
+</li>
+<li>
+<a href="#bk_moreDetail">In slightly more detail...</a>
+</li>
+<li>
+<a href="#bk_basicComponents">Bookkeeper elements and concepts</a>
+</li>
+<li>
+<a href="#bk_initialDesign">Bookkeeper initial design</a>
+</li>
+<li>
+<a href="#bk_metadata">Bookkeeper metadata management</a>
+</li>
+<li>
+<a href="#bk_closingOut">Closing out ledgers</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+  
+
+  
+  
+<a name="bk_Overview"></a>
+<h2 class="h3">BookKeeper overview</h2>
+<div class="section">
+<a name="bk_Intro"></a>
+<h3 class="h4">BookKeeper introduction</h3>
+<p>
+	BookKeeper is a replicated service to reliably log streams of records. In BookKeeper, 
+	servers are "bookies", log streams are "ledgers", and each unit of a log (aka record) is a 
+	"ledger entry". BookKeeper is designed to be reliable; bookies, the servers that store 
+	ledgers, can crash, corrupt data, discard data, but as long as there are enough bookies 
+	behaving correctly the service as a whole behaves correctly.
+	</p>
+<p>
+    The initial motivation for BookKeeper comes from the namenode of HDFS. Namenodes have to 
+    log operations in a reliable fashion so that recovery is possible in the case of crashes. 
+    We have found the applications for BookKeeper extend far beyond HDFS, however. Essentially, 
+    any application that requires an append storage can replace their implementations with
+    BookKeeper. BookKeeper has the advantage of scaling throughput with the number of servers. 
+    </p>
+<p>
+    At a high level, a bookkeeper client receives entries from a client application and stores it to
+    sets of bookies, and there are a few advantages in having such a service:
+	</p>
+<ul>
+    
+<li>
+    
+<p>
+    	We can use hardware that is optimized for such a service. We currently believe that such a
+      	system has to be optimized only for disk I/O;
+    </p>
+    
+</li>
+    
+    
+<li>
+    
+<p>
+    	We can have a pool of servers implementing such a log system, and shared among a number of servers;
+    </p>
+    
+</li>
+    
+    
+<li>
+    
+<p>
+    	We can have a higher degree of replication with such a pool, which makes sense if the hardware necessary for it is cheaper compared to the one the application uses. 
+	</p>
+	
+</li>
+	
+</ul>
+<a name="bk_moreDetail"></a>
+<h3 class="h4">In slightly more detail...</h3>
+<p> BookKeeper implements highly available logs, and it has been designed with write-ahead logging in mind. Besides high availability
+    due to the replicated nature of the service, it provides high throughput due to striping. As we write entries in a subset of bookies of an
+    ensemble and rotate writes across available quorums, we are able to increase throughput with the number of servers for both reads and writes. 
+    Scalability is a property that is possible to achieve in this case due to the use of quorums. Other replication techniques, such as 
+    state-machine replication, do not enable such a property. 
+    </p>
+<p> An application first creates a ledger before writing to bookies through a local BookKeeper client instance.   
+  	Upon creating a ledger, a BookKeeper client writes metadata about the ledger to ZooKeeper. Each ledger currently 
+  	has a single writer. This writer has to execute a close ledger operation before any other client can read from it. 
+  	If the writer of a ledger does not close a ledger properly because, for example, it has crashed before having the 
+  	opportunity of closing the ledger, then the next client that tries to open a ledger executes a procedure to recover
+  	it. As closing a ledger consists essentially of writing the last entry written to a ledger to ZooKeeper, the recovery
+  	procedure simply finds the last entry written correctly and writes it to ZooKeeper.	
+	</p>
+<p>
+	Note that currently this recovery procedure is executed automatically upon trying to open a ledger and no explicit action is necessary. 
+	Although two clients may try to recover a ledger concurrently, only one will succeed, the first one that is able to create the close znode
+	for the ledger.
+	</p>
+<a name="bk_basicComponents"></a>
+<h3 class="h4">Bookkeeper elements and concepts</h3>
+<p> 
+	BookKeeper uses four basic elements:
+	</p>
+<ul>
+      
+<li>
+      
+<p> 
+		
+<strong>Ledger</strong>: A ledger is a sequence of entries, and each entry is a sequence of bytes. Entries are
+		written sequentially to a ledger and at most once. Consequently, ledgers have an append-only semantics;
+	  </p>
+	  
+</li>
+	
+	  
+<li>
+	  
+<p> 
+		
+<strong>BookKeeper client</strong>: A client runs along with a BookKeeper application, and it enables applications
+		to execute operations on ledgers, such as creating a ledger and writing to it; 
+	  </p>
+	  
+</li> 
+	
+	  
+<li>
+	  
+<p>
+		
+<strong>Bookie</strong>: A bookie is a BookKeeper storage server. Bookies store the content of ledgers. For any given
+		ledger L, we call an <em>ensemble</em> the group of bookies storing the content of L. For performance, we store on
+		each bookie of an ensemble only a fragment of a ledger. That is, we stripe when writing entries to a ledger such that
+		each entry is written to sub-group of bookies of the ensemble.
+	  </p>
+	  
+</li>
+
+	  
+<li>
+	  
+<p> 	
+		
+<strong>Metadata storage service</strong>: BookKeeper requires a metadata storage service to store information related 
+		to ledgers and available bookies. We currently use ZooKeeper for such a task.     
+   	  </p>
+   	  
+</li>
+    
+</ul>
+<a name="bk_initialDesign"></a>
+<h3 class="h4">Bookkeeper initial design</h3>
+<p>
+    A set of bookies implements BookKeeper, and we use a quorum-based protocol to replicate data across the bookies. 
+    There are basically two operations to an existing ledger: read and append. Here is the complete API list 
+    (mode detail <a href="bookkeeperProgrammer.html">
+    	      here</a>):
+	</p>
+<ul>
+	
+<li>
+	
+<p>
+    	Create ledger: creates a new empty ledger; 
+    </p>
+    
+</li>
+    
+    
+<li>
+	
+<p>
+    	Open ledger: opens an existing ledger for reading;
+    </p>
+    
+</li>
+    
+    
+<li>
+	
+<p>
+    	Add entry: adds a record to a ledger either synchronously or asynchronously;
+    </p>
+    
+</li>
+    
+    
+<li>
+	
+<p>
+    Read entries: reads a sequence of entries from a ledger either synchronously or asynchronously 
+	</p>
+    
+</li>
+	
+</ul>
+<p>
+	There is only a single client that can write to a ledger. Once that ledger is closed or the client fails, 
+	no more entries can be added. (We take advantage of this behavior to provide our strong guarantees.) 
+	There will not be gaps in the ledger. Fingers get broken, people get roughed up or end up in prison when
+	books are manipulated, so there is no deleting or changing of entries.
+	</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+<tr>
+<td>BookKeeper Overview</td>
+</tr>
+<tr>
+<td>
+        
+            <img alt="" src="images/bk-overview.jpg">
+        
+        </td>
+</tr>
+</table>
+<p>
+    A simple use of BooKeeper is to implement a write-ahead transaction log. A server maintains an in-memory data structure
+    (with periodic snapshots for example) and logs changes to that structure before it applies the change. The application 
+    server creates a ledger at startup and store the ledger id and password in a well known place (ZooKeeper maybe). When 
+    it needs to make a change, the server adds an entry with the change information to a ledger and apply the change when 
+    BookKeeper adds the entry successfully. The server can even use asyncAddEntry to queue up many changes for high change
+    throughput. BooKeeper meticulously logs the changes in order and call the completion functions in order.
+	</p>
+<p>
+    When the application server dies, a backup server will come online, get the last snapshot and then it will open the 
+    ledger of the old server and read all the entries from the time the snapshot was taken. (Since it doesn't know the 
+    last entry number it will use MAX_INTEGER). Once all the entries have been processed, it will close the ledger and 
+    start a new one for its use. 
+	</p>
+<p>
+	A client library takes care of communicating with bookies and managing entry numbers. An entry has the following fields:
+	</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+<caption>Entry fields</caption>
+<title>Entry fields</title>
+	
+	
+<tr>
+  	
+<th>Field</th>
+  	<th>Type</th>
+  	<th>Description</th>
+	
+</tr>
+	
+	
+<tr>
+  	
+<td>Ledger number</td>
+  	<td>long</td>
+  	<td>The id of the ledger of this entry</td>
+	
+</tr>
+	
+<tr>
+  	
+<td>Entry number</td>
+  	<td>long</td>
+  	<td>The id of this entry</td>
+	
+</tr>
+	
+	
+<tr>
+  	
+<td>last confirmed (<em>LC</em>)</td>
+  	<td>long</td>
+  	<td>id of the last recorded entry</td>
+	
+</tr>
+	
+<tr>
+  	
+<td>data</td>
+  	<td>byte[]</td>
+  	<td>the entry data (supplied by application)</td>
+	
+</tr>
+	
+<tr>
+  	
+<td>authentication code</td>
+  	<td>byte[]</td>
+  	<td>Message authentication code that includes all other fields of the entry</td>
+	
+</tr>
+	
+	
+	
+</table>
+<p>
+	The client library generates a ledger entry. None of the fields are modified by the bookies and only the first three 
+	fields are interpreted by the bookies.
+	</p>
+<p>
+	To add to a ledger, the client generates the entry above using the ledger number. The entry number will be one more 
+	than the last entry generated. The <em>LC</em> field contains the last entry that has been successfully recorded by BookKeeper. 
+	If the client writes entries one at a time, <em>LC</em> is the last entry id. But, if the client is using asyncAddEntry, there 
+	may be many entries in flight. An entry is considered recorded when both of the following conditions are met:
+	</p>
+<ul>
+	
+<li>
+    
+<p>
+    	the entry has been accepted by a quorum of bookies
+    </p>
+    
+</li>
+    
+    
+<li>
+    
+<p>
+    	all entries with a lower entry id have been accepted by a quorum of bookies 
+	</p>
+	
+</li>
+    
+</ul>
+<p>
+	
+<em>LC</em> seems mysterious right now, but it is too early to explain how we use it; just smile and move on.
+	</p>
+<p>
+	Once all the other fields have been field in, the client generates an authentication code with all of the previous fields. 
+	The entry is then sent to a quorum of bookies to be recorded. Any failures will result in the entry being sent to a new
+	quorum of bookies.
+	</p>
+<p>
+	To read, the client library initially contacts a bookie and starts requesting entries. If an entry is missing or 
+	invalid (a bad MAC for example), the client will make a request to a different bookie. By using quorum writes, 
+	as long as enough bookies are up we are guaranteed to eventually be able to read an entry.
+	</p>
+<a name="bk_metadata"></a>
+<h3 class="h4">Bookkeeper metadata management</h3>
+<p>
+	There are some meta data that needs to be made available to BookKeeper clients:
+	</p>
+<ul>
+	
+<li>
+	
+<p>
+		The available bookies;
+	</p>
+	
+</li>
+	
+	
+<li>
+	
+<p>
+    	The list of ledgers;
+    </p>
+    
+</li>
+    
+    
+<li>
+	
+<p>
+    	The list of bookies that have been used for a given ledger;
+    </p>
+    
+</li>
+    
+    
+<li>
+	
+<p>
+    	The last entry of a ledger; 
+	</p>
+	
+</li>
+	
+</ul>
+<p>
+	We maintain this information in ZooKeeper. Bookies use ephemeral nodes to indicate their availability. Clients 
+	use znodes to track ledger creation and deletion and also to know the end of the ledger and the bookies that 
+	were used to store the ledger. Bookies also watch the ledger list so that they can cleanup ledgers that get deleted.
+	</p>
+<a name="bk_closingOut"></a>
+<h3 class="h4">Closing out ledgers</h3>
+<p>
+	The process of closing out the ledger and finding the last ledger is difficult due to the durability guarantees of BookKeeper:
+	</p>
+<ul>
+	
+<li>
+	
+<p>
+    	If an entry has been successfully recorded, it must be readable.
+    </p>
+    
+</li>
+    
+    
+<li>
+	
+<p>
+    	If an entry is read once, it must always be available to be read. 
+	</p>
+	
+</li>
+	
+</ul>
+<p>
+	If the ledger was closed gracefully, ZooKeeper will have the last entry and everything will work well. But, if the 
+	BookKeeper client that was writing the ledger dies, there is some recovery that needs to take place.
+	</p>
+<p>
+	The problematic entries are the ones at the end of the ledger. There can be entries in flight when a BookKeeper client 
+	dies. If the entry only gets to one bookie, the entry should not be readable since the entry will disappear if that bookie
+	fails. If the entry is only on one bookie, that doesn't mean that the entry has not been recorded successfully; the other
+	bookies that recorded the entry might have failed.
+	</p>
+<p>
+	The trick to making everything work is to have a correct idea of a last entry. We do it in roughly three steps:
+	</p>
+<ol>
+	
+<li>
+	
+<p>
+		Find the entry with the highest last recorded entry, <em>LC</em>;
+	</p>
+	
+</li>
+	
+	
+<li>
+	
+<p>
+		Find the highest consecutively recorded entry, <em>LR</em>;
+	</p>
+	
+</li>
+	
+	
+<li>
+	
+<p>
+		Make sure that all entries between <em>LC</em> and <em>LR</em> are on a quorum of bookies; 
+	</p>
+	
+</li>
+	
+	
+</ol>
+</div>  
+
+<p align="right">
+<font size="-2"></font>
+</p>
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2008-2013 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperOverview.pdf
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.6/bookkeeperOverview.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf