You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ma...@apache.org on 2011/07/07 09:32:07 UTC
svn commit: r1143688 [1/2] - in /zookeeper/trunk: ./ docs/ docs/skin/
src/docs/src/documentation/content/xdocs/
Author: mahadev
Date: Thu Jul 7 07:32:06 2011
New Revision: 1143688
URL: http://svn.apache.org/viewvc?rev=1143688&view=rev
Log:
ZOOKEEPER-1073. address a documentation issue in ZOOKEEPER-1030. (phunt via mahadev)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/docs/bookkeeperConfig.html
zookeeper/trunk/docs/bookkeeperConfig.pdf
zookeeper/trunk/docs/bookkeeperOverview.html
zookeeper/trunk/docs/bookkeeperOverview.pdf
zookeeper/trunk/docs/bookkeeperProgrammer.html
zookeeper/trunk/docs/bookkeeperProgrammer.pdf
zookeeper/trunk/docs/bookkeeperStarted.html
zookeeper/trunk/docs/bookkeeperStarted.pdf
zookeeper/trunk/docs/bookkeeperStream.html
zookeeper/trunk/docs/bookkeeperStream.pdf
zookeeper/trunk/docs/index.html
zookeeper/trunk/docs/index.pdf
zookeeper/trunk/docs/javaExample.html
zookeeper/trunk/docs/javaExample.pdf
zookeeper/trunk/docs/linkmap.html
zookeeper/trunk/docs/linkmap.pdf
zookeeper/trunk/docs/recipes.html
zookeeper/trunk/docs/recipes.pdf
zookeeper/trunk/docs/releasenotes.html
zookeeper/trunk/docs/releasenotes.pdf
zookeeper/trunk/docs/skin/basic.css
zookeeper/trunk/docs/skin/screen.css
zookeeper/trunk/docs/zookeeperAdmin.html
zookeeper/trunk/docs/zookeeperAdmin.pdf
zookeeper/trunk/docs/zookeeperHierarchicalQuorums.html
zookeeper/trunk/docs/zookeeperHierarchicalQuorums.pdf
zookeeper/trunk/docs/zookeeperInternals.html
zookeeper/trunk/docs/zookeeperInternals.pdf
zookeeper/trunk/docs/zookeeperJMX.html
zookeeper/trunk/docs/zookeeperJMX.pdf
zookeeper/trunk/docs/zookeeperObservers.html
zookeeper/trunk/docs/zookeeperObservers.pdf
zookeeper/trunk/docs/zookeeperOver.html
zookeeper/trunk/docs/zookeeperOver.pdf
zookeeper/trunk/docs/zookeeperProgrammers.html
zookeeper/trunk/docs/zookeeperProgrammers.pdf
zookeeper/trunk/docs/zookeeperQuotas.html
zookeeper/trunk/docs/zookeeperQuotas.pdf
zookeeper/trunk/docs/zookeeperStarted.html
zookeeper/trunk/docs/zookeeperStarted.pdf
zookeeper/trunk/docs/zookeeperTutorial.html
zookeeper/trunk/docs/zookeeperTutorial.pdf
zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Thu Jul 7 07:32:06 2011
@@ -327,6 +327,8 @@ IMPROVEMENTS:
ZOOKEEPER-965. Need a multi-update command to allow multiple znodes to be updated safely (Marshall McMullen and Ted Dunning via breed)
+ ZOOKEEPER-1073. address a documentation issue in ZOOKEEPER-1030. (phunt via mahadev)
+
NEW FEATURES:
ZOOKEEPER-729. Java client API to recursively delete a subtree.
(Kay Kay via henry)
Modified: zookeeper/trunk/docs/bookkeeperConfig.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperConfig.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/bookkeeperConfig.html (original)
+++ zookeeper/trunk/docs/bookkeeperConfig.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<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">
@@ -204,6 +204,7 @@ document.write("Last Published: " + docu
</div>
<h1>BookKeeper Administrator's Guide</h1>
<h3>Setup Guide</h3>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -222,6 +223,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
@@ -229,7 +231,7 @@ document.write("Last Published: " + docu
-<a name="N1000B"></a><a name="bk_deployment"></a>
+<a name="bk_deployment"></a>
<h2 class="h3">Deployment</h2>
<div class="section">
<p>This section contains information about deploying BookKeeper and
@@ -267,7 +269,7 @@ document.write("Last Published: " + docu
(BookKeeper storage servers). The third section explains how we use ZooKeeper and our requirements with
respect to ZooKeeper.
</p>
-<a name="N10032"></a><a name="bk_sysReq"></a>
+<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
@@ -283,7 +285,7 @@ document.write("Last Published: " + docu
mode with multiple servers. Please refer to the ZooKeeper documentation for detail on how to configure ZooKeeper with multiple
replicas
</p>
-<a name="N10042"></a><a name="bk_runningBookies"></a>
+<a name="bk_runningBookies"></a>
<h3 class="h4">Running bookies</h3>
<p>
To run a bookie, we execute the following command:
@@ -341,7 +343,7 @@ document.write("Last Published: " + docu
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="N1007A"></a><a name="bk_zkMetadata"></a>
+<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
Modified: zookeeper/trunk/docs/bookkeeperConfig.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperConfig.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/bookkeeperConfig.pdf (original) and zookeeper/trunk/docs/bookkeeperConfig.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/bookkeeperOverview.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperOverview.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/bookkeeperOverview.html (original)
+++ zookeeper/trunk/docs/bookkeeperOverview.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<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">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>BookKeeper overview</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -230,14 +231,15 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="bk_Overview"></a>
+<a name="bk_Overview"></a>
<h2 class="h3">BookKeeper overview</h2>
<div class="section">
-<a name="N1000F"></a><a name="bk_Intro"></a>
+<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,
@@ -287,7 +289,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N10034"></a><a name="bk_moreDetail"></a>
+<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
@@ -308,7 +310,7 @@ document.write("Last Published: " + docu
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="N10044"></a><a name="bk_basicComponents"></a>
+<a name="bk_basicComponents"></a>
<h3 class="h4">Bookkeeper elements and concepts</h3>
<p>
BookKeeper uses four basic elements:
@@ -361,7 +363,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N10078"></a><a name="bk_initialDesign"></a>
+<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.
@@ -544,7 +546,7 @@ document.write("Last Published: " + docu
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="N10132"></a><a name="bk_metadata"></a>
+<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:
@@ -592,7 +594,7 @@ document.write("Last Published: " + docu
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="N1015A"></a><a name="bk_closingOut"></a>
+<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:
Modified: zookeeper/trunk/docs/bookkeeperOverview.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperOverview.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/bookkeeperOverview.pdf (original) and zookeeper/trunk/docs/bookkeeperOverview.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/bookkeeperProgrammer.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperProgrammer.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/bookkeeperProgrammer.html (original)
+++ zookeeper/trunk/docs/bookkeeperProgrammer.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>BookKeeper Getting Started Guide</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>BookKeeper Getting Started Guide</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -233,11 +234,12 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="bk_GettingStarted"></a>
+<a name="bk_GettingStarted"></a>
<h2 class="h3">Programming with BookKeeper</h2>
<div class="section">
<ul>
@@ -306,7 +308,7 @@ document.write("Last Published: " + docu
</ul>
-<a name="N1004A"></a><a name="bk_instance"></a>
+<a name="bk_instance"></a>
<h3 class="h4"> Instantiating BookKeeper.</h3>
<p>
The first step to use BookKeeper is to instantiate a BookKeeper object:
@@ -403,7 +405,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N100B1"></a><a name="bk_createLedger"></a>
+<a name="bk_createLedger"></a>
<h3 class="h4"> Creating a ledger. </h3>
<p> Before writing entries to BookKeeper, it is necessary to create a ledger.
With the current BookKeeper API, it is possible to create a ledger both synchronously
@@ -549,7 +551,7 @@ document.write("Last Published: " + docu
The <span class="codefrag computeroutput">ctx</span> object passed as a parameter to the call to create a ledger
is the one same returned in the callback.
</p>
-<a name="N10166"></a><a name="bk_writeLedger"></a>
+<a name="bk_writeLedger"></a>
<h3 class="h4"> Adding entries to a ledger. </h3>
<p>
Once we have a ledger handle <span class="codefrag computeroutput">lh</span> obtained through a call to create a ledger, we
@@ -659,7 +661,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N10201"></a><a name="bk_closeLedger"></a>
+<a name="bk_closeLedger"></a>
<h3 class="h4"> Closing a ledger. </h3>
<p>
Once a client is done writing, it closes the ledger. The following methods belong
@@ -742,7 +744,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N10276"></a><a name="bk_openLedger"></a>
+<a name="bk_openLedger"></a>
<h3 class="h4"> Opening a ledger. </h3>
<p>
To read from a ledger, a client must open it first. The following methods belong
@@ -854,7 +856,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N1030D"></a><a name="bk_readLedger"></a>
+<a name="bk_readLedger"></a>
<h3 class="h4"> Reading from ledger </h3>
<p>
Read calls may request one or more consecutive entries. The following methods belong
@@ -968,7 +970,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N103A4"></a><a name="bk_deleteLedger"></a>
+<a name="bk_deleteLedger"></a>
<h3 class="h4"> Deleting a ledger </h3>
<p>
Once a client is done with a ledger and is sure that nobody will ever need to read from it again, they can delete the ledger.
Modified: zookeeper/trunk/docs/bookkeeperProgrammer.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperProgrammer.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/bookkeeperProgrammer.pdf (original) and zookeeper/trunk/docs/bookkeeperProgrammer.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/bookkeeperStarted.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperStarted.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/bookkeeperStarted.html (original)
+++ zookeeper/trunk/docs/bookkeeperStarted.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>BookKeeper Getting Started Guide</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>BookKeeper Getting Started Guide</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -230,11 +231,12 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="bk_GettingStarted"></a>
+<a name="bk_GettingStarted"></a>
<h2 class="h3">Getting Started: Setting up BookKeeper to write logs.</h2>
<div class="section">
<p>This document contains information to get you started quickly with
@@ -243,25 +245,25 @@ document.write("Last Published: " + docu
and a simple programming example. For further programming detail, please refer to
<a href="bookkeeperProgrammer.html">BookKeeper Programmer's Guide</a>.
</p>
-<a name="N10016"></a><a name="bk_Prerequisites"></a>
+<a name="bk_Prerequisites"></a>
<h3 class="h4">Pre-requisites</h3>
<p>See <a href="bookkeeperConfig.html#bk_sysReq">
System Requirements</a> in the Admin guide.</p>
-<a name="N10024"></a><a name="bk_Download"></a>
+<a name="bk_Download"></a>
<h3 class="h4">Download</h3>
<p> BookKeeper is distributed along with ZooKeeper. To get a ZooKeeper distribution,
download a recent
<a href="http://hadoop.apache.org/zookeeper/releases.html">
stable</a> release from one of the Apache Download
Mirrors.</p>
-<a name="N10032"></a><a name="bk_localBK"></a>
+<a name="bk_localBK"></a>
<h3 class="h4">LocalBookKeeper</h3>
<p> Under org.apache.bookkeeper.util, you'll find a java program
called LocalBookKeeper.java that sets you up to run BookKeeper on a
single machine. This is far from ideal from a performance perspective,
but the program is useful for both test and educational purposes.
</p>
-<a name="N1003C"></a><a name="bk_setupBookies"></a>
+<a name="bk_setupBookies"></a>
<h3 class="h4">Setting up bookies</h3>
<p> If you're bold and you want more than just running things locally, then
you'll need to run bookies in different servers. You'll need at least three bookies
@@ -284,7 +286,7 @@ document.write("Last Published: " + docu
If we had multiple ZooKeeper servers, this parameter would be a comma separated list of all the hostname:port
values corresponding to them.
</p>
-<a name="N10051"></a><a name="bk_setupZK"></a>
+<a name="bk_setupZK"></a>
<h3 class="h4">Setting up ZooKeeper</h3>
<p> ZooKeeper stores metadata on behalf of BookKeeper clients and bookies. To get a minimal
ZooKeeper installation to work with BookKeeper, we can set up one server running in
@@ -326,7 +328,7 @@ document.write("Last Published: " + docu
</li>
</ol>
-<a name="N10078"></a><a name="bk_example"></a>
+<a name="bk_example"></a>
<h3 class="h4">Example</h3>
<p>
In the following excerpt of code, we:
Modified: zookeeper/trunk/docs/bookkeeperStarted.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperStarted.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/bookkeeperStarted.pdf (original) and zookeeper/trunk/docs/bookkeeperStarted.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/bookkeeperStream.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperStream.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/bookkeeperStream.html (original)
+++ zookeeper/trunk/docs/bookkeeperStream.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>Streaming with BookKeeper</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>Streaming with BookKeeper</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -216,11 +217,12 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="bk_StreamSummary"></a>
+<a name="bk_StreamSummary"></a>
<h2 class="h3">Summary</h2>
<div class="section">
<p>
@@ -238,7 +240,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N10022"></a><a name="bk_LedgerOutputStream"></a>
+<a name="bk_LedgerOutputStream"></a>
<h2 class="h3">Writing a stream of bytes</h2>
<div class="section">
<p>
@@ -419,7 +421,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N100E7"></a><a name="bk_LedgerInputStream"></a>
+<a name="bk_LedgerInputStream"></a>
<h2 class="h3">Reading a stream of bytes</h2>
<div class="section">
<p>
Modified: zookeeper/trunk/docs/bookkeeperStream.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/bookkeeperStream.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/bookkeeperStream.pdf (original) and zookeeper/trunk/docs/bookkeeperStream.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/index.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/index.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/index.html (original)
+++ zookeeper/trunk/docs/index.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper: Because Coordinating Distributed Systems is a Zoo</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -206,6 +206,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper: Because Coordinating Distributed Systems is a Zoo</h1>
+<div id="front-matter"></div>
<p>ZooKeeper is a high-performance coordination service for
distributed applications. It exposes common services - such as
Modified: zookeeper/trunk/docs/index.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/index.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/javaExample.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/javaExample.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/javaExample.html (original)
+++ zookeeper/trunk/docs/javaExample.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Java Example</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper Java Example</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -227,18 +228,19 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_Introduction"></a>
+<a name="ch_Introduction"></a>
<h2 class="h3">A Simple Watch Client</h2>
<div class="section">
<p>To introduce you to the ZooKeeper Java API, we develop here a very simple
watch client. This ZooKeeper client watches a ZooKeeper node for changes
and responds to by starting or stopping a program.</p>
-<a name="N10012"></a><a name="sc_requirements"></a>
+<a name="sc_requirements"></a>
<h3 class="h4">Requirements</h3>
<p>The client has four requirements:</p>
<ul>
@@ -273,7 +275,7 @@ document.write("Last Published: " + docu
<p>If the znode disappears, the client kills the executable.</p>
</li>
</ul>
-<a name="N1003B"></a><a name="sc_design"></a>
+<a name="sc_design"></a>
<h3 class="h4">Program Design</h3>
<p>Conventionally, ZooKeeper applications are broken into two units, one which maintains the connection,
and the other which monitors data. In this application, the class called the <strong>Executor</strong>
@@ -285,7 +287,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N1004C"></a><a name="sc_executor"></a>
+<a name="sc_executor"></a>
<h2 class="h3">The Executor Class</h2>
<div class="section">
<p>The Executor object is the primary container of the sample application. It contains
@@ -431,7 +433,7 @@ public void closing(int rc) {
</pre>
</div>
-<a name="N100A0"></a><a name="sc_DataMonitor"></a>
+<a name="sc_DataMonitor"></a>
<h2 class="h3">The DataMonitor Class</h2>
<div class="section">
<p>
@@ -571,7 +573,7 @@ function, when DataMonitor gets an event
</div>
-<a name="N10104"></a><a name="sc_completeSourceCode"></a>
+<a name="sc_completeSourceCode"></a>
<h2 class="h3">Complete Source Listings</h2>
<div class="section">
<div class="note example">
Modified: zookeeper/trunk/docs/javaExample.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/javaExample.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/linkmap.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/linkmap.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/linkmap.html (original)
+++ zookeeper/trunk/docs/linkmap.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>Site Linkmap Table of Contents</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>Site Linkmap Table of Contents</h1>
+<div id="front-matter"></div>
<p>
This is a map of the complete site and its structure.
</p>
Modified: zookeeper/trunk/docs/linkmap.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/linkmap.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/recipes.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/recipes.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/recipes.html (original)
+++ zookeeper/trunk/docs/recipes.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Recipes and Solutions</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper Recipes and Solutions</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -249,12 +250,13 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_recipes"></a>
+<a name="ch_recipes"></a>
<h2 class="h3">A Guide to Creating Higher-level Constructs with ZooKeeper</h2>
<div class="section">
<p>In this article, you'll find guidelines for using
@@ -279,7 +281,7 @@ document.write("Last Published: " + docu
as event handles or queues, a more practical means of performing the same
function. In general, the examples in this section are designed to
stimulate thought.</p>
-<a name="N10021"></a><a name="sc_outOfTheBox"></a>
+<a name="sc_outOfTheBox"></a>
<h3 class="h4">Out of the Box Applications: Name Service, Configuration, Group
Membership</h3>
<p>Name service and configuration are two of the primary applications
@@ -290,7 +292,7 @@ document.write("Last Published: " + docu
group create ephemeral nodes under the group node. Nodes of the members
that fail abnormally will be removed automatically when ZooKeeper detects
the failure.</p>
-<a name="N10031"></a><a name="sc_recipes_eventHandles"></a>
+<a name="sc_recipes_eventHandles"></a>
<h3 class="h4">Barriers</h3>
<p>Distributed systems use <em>barriers</em>
to block processing of a set of nodes until a condition is met
@@ -334,7 +336,7 @@ document.write("Last Published: " + docu
</li>
</ol>
-<a name="N10067"></a><a name="sc_doubleBarriers"></a>
+<a name="sc_doubleBarriers"></a>
<h4>Double Barriers</h4>
<p>Double barriers enable clients to synchronize the beginning and
the end of a computation. When enough processes have joined the barrier,
@@ -500,7 +502,7 @@ document.write("Last Published: " + docu
(picking the highest for simplicity) to go away. This means that only a
single process wakes up on each node deletion except for the last node,
which wakes up everyone when it is removed.</p>
-<a name="N1011A"></a><a name="sc_recipes_Queues"></a>
+<a name="sc_recipes_Queues"></a>
<h3 class="h4">Queues</h3>
<p>Distributed queues are a common data structure. To implement a
distributed queue in ZooKeeper, first designate a znode to hold the queue,
@@ -528,7 +530,7 @@ document.write("Last Published: " + docu
</div>
</div>
-<a name="N1013E"></a><a name="sc_recipes_priorityQueues"></a>
+<a name="sc_recipes_priorityQueues"></a>
<h4>Priority Queues</h4>
<p>To implement a priority queue, you need only make two simple
changes to the generic <a href="#sc_recipes_Queues">queue
@@ -538,7 +540,7 @@ document.write("Last Published: " + docu
from the queue, a client uses an up-to-date children list meaning that
the client will invalidate previously obtained children lists if a watch
notification triggers for the queue node.</p>
-<a name="N1014D"></a><a name="sc_recipes_Locks"></a>
+<a name="sc_recipes_Locks"></a>
<h3 class="h4">Locks</h3>
<p>Fully distributed locks that are globally synchronous, meaning at
any snapshot in time no two clients think they hold the same lock. These
@@ -637,7 +639,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N101BF"></a><a name="Shared+Locks"></a>
+<a name="Shared+Locks"></a>
<h4>Shared Locks</h4>
<p>You can implement shared locks by with a few changes to the lock
protocol:</p>
@@ -799,7 +801,7 @@ document.write("Last Published: " + docu
</div>
</div>
-<a name="N1028B"></a><a name="sc_recoverableSharedLocks"></a>
+<a name="sc_recoverableSharedLocks"></a>
<h4>Recoverable Shared Locks</h4>
<p>With minor modifications to the Shared Lock protocol, you make
shared locks revocable by modifying the shared lock protocol:</p>
@@ -821,7 +823,7 @@ document.write("Last Published: " + docu
Laser Beams</em> by stipulating in your protocol that the revoker
is allowed to delete the lock node if after some length of time the lock
isn't deleted by the lock holder.</p>
-<a name="N102B7"></a><a name="sc_recipes_twoPhasedCommit"></a>
+<a name="sc_recipes_twoPhasedCommit"></a>
<h3 class="h4">Two-phased Commit</h3>
<p>A two-phase commit protocol is an algorithm that lets all clients in
a distributed system agree either to commit a transaction or abort.</p>
@@ -853,7 +855,7 @@ document.write("Last Published: " + docu
<p>To address the second problem, you can have the coordinator
propagate the transaction to the sites, and have each site creating its
own ephemeral node.</p>
-<a name="N102D0"></a><a name="sc_leaderElection"></a>
+<a name="sc_leaderElection"></a>
<h3 class="h4">Leader Election</h3>
<p>A simple way of doing leader election with ZooKeeper is to use the
<strong>SEQUENCE|EPHEMERAL</strong> flags when creating
Modified: zookeeper/trunk/docs/recipes.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/recipes.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/releasenotes.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/releasenotes.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/releasenotes.html (original)
+++ zookeeper/trunk/docs/releasenotes.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper 3.0.0 Release Notes</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper 3.0.0 Release Notes</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -235,6 +236,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
@@ -262,7 +264,7 @@ These release notes include new develope
</ul>
-<a name="N1001B"></a><a name="migration"></a>
+<a name="migration"></a>
<h2 class="h3">Migration Instructions when Upgrading to 3.0.0</h2>
<div class="section">
<p>
@@ -297,7 +299,7 @@ Note: ZooKeeper increments the major ver
</li>
</ul>
-<a name="N10045"></a><a name="migration_code"></a>
+<a name="migration_code"></a>
<h3 class="h4">Migrating Client Code</h3>
<p>
The underlying client-server protocol has changed in version 3.0.0
@@ -306,7 +308,7 @@ Note: ZooKeeper increments the major ver
pre-3.0.0 clients are not guaranteed to operate against upgraded
3.0.0 servers and vice-versa).
</p>
-<a name="N1004E"></a><a name="Watch+Management"></a>
+<a name="Watch+Management"></a>
<h4>Watch Management</h4>
<p>
In previous releases of ZooKeeper any watches registered by clients were lost if the client lost a connection to a ZooKeeper server.
@@ -322,7 +324,7 @@ This release also allows clients to spec
This gives the developer the ability to modularize logic in different watch functions rather than cramming everything in the watch function attached to the ZooKeeper handle.
Call specific watch functions receive all session events for as long as they are active, but will only receive the watch callbacks for which they are registered.
</p>
-<a name="N1005B"></a><a name="Java+API"></a>
+<a name="Java+API"></a>
<h4>Java API</h4>
<ol>
@@ -344,7 +346,7 @@ Call specific watch functions receive al
Also see <a href="http://hadoop.apache.org/zookeeper/docs/current/api/index.html">the current java API</a>
</p>
-<a name="N1008D"></a><a name="C+API"></a>
+<a name="C+API"></a>
<h4>C API</h4>
<ol>
@@ -353,7 +355,7 @@ Also see <a href="http://hadoop.apache.o
</li>
</ol>
-<a name="N100A0"></a><a name="migration_data"></a>
+<a name="migration_data"></a>
<h3 class="h4">Migrating Server Data</h3>
<p>
The following issues resulted in changes to the on-disk data format (the snapshot and transaction log files contained within the ZK data directory) and require a migration utility to be run.
@@ -499,7 +501,7 @@ The following issues resulted in changes
</li>
</ol>
-<a name="N10135"></a><a name="migration_config"></a>
+<a name="migration_config"></a>
<h3 class="h4">Migrating Server Configuration</h3>
<p>
There is a significant change to the ZooKeeper server configuration file.
@@ -523,7 +525,7 @@ There is a significant change to the Zoo
</div>
-<a name="N10162"></a><a name="changes"></a>
+<a name="changes"></a>
<h2 class="h3">Changes Since ZooKeeper 2.2.1</h2>
<div class="section">
<p>
Modified: zookeeper/trunk/docs/releasenotes.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/releasenotes.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/skin/basic.css
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/skin/basic.css?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/skin/basic.css (original)
+++ zookeeper/trunk/docs/skin/basic.css Thu Jul 7 07:32:06 2011
@@ -39,6 +39,7 @@ img { border: 0; }
}
.note, .warning, .fixme {
+ clear:right;
border: solid black 1px;
margin: 1em 3em;
}
Modified: zookeeper/trunk/docs/skin/screen.css
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/skin/screen.css?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/skin/screen.css (original)
+++ zookeeper/trunk/docs/skin/screen.css Thu Jul 7 07:32:06 2011
@@ -418,12 +418,12 @@ img.cornersmall {
position: relative; /* IE bugfix cont'd */
padding: 5px;
margin: 0;
- width: 45%;
+ width: 60%;
}
#footer .lastmodified {
position: relative; /* IE bugfix cont'd */
float: right;
- width: 45%;
+ width: 30%;
padding: 5px;
margin: 0;
text-align: right;
@@ -455,17 +455,13 @@ acronym { cursor: help; }
}
#motd-area {
- position: relative; /* IE bugfix cont'd */
- float: right;
+ position:relative;
+ float:right;
width: 35%;
background-color: #f0f0ff;
- border-top: solid 1px #4C6C8F;
- border-bottom: solid 1px #4C6C8F;
- margin-bottom: 15px;
- margin-left: 15px;
- margin-right: 10%;
- padding-bottom: 5px;
- padding-top: 5px;
+ border: solid 1px #4C6C8F;
+ margin: 0px 0px 10px 10px;
+ padding: 5px;
}
#minitoc-area {
@@ -483,6 +479,10 @@ acronym { cursor: help; }
font-weight: normal;
}
+.abstract{
+ text-align:justify;
+ }
+
li p {
margin: 0;
padding: 0;
Modified: zookeeper/trunk/docs/zookeeperAdmin.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperAdmin.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperAdmin.html (original)
+++ zookeeper/trunk/docs/zookeeperAdmin.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Administrator's Guide</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -204,6 +204,7 @@ document.write("Last Published: " + docu
</div>
<h1>ZooKeeper Administrator's Guide</h1>
<h3>A Guide to Deployment and Administration</h3>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -324,6 +325,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
@@ -331,7 +333,7 @@ document.write("Last Published: " + docu
-<a name="N1000B"></a><a name="ch_deployment"></a>
+<a name="ch_deployment"></a>
<h2 class="h3">Deployment</h2>
<div class="section">
<p>This section contains information about deploying Zookeeper and
@@ -370,9 +372,9 @@ document.write("Last Published: " + docu
section covers situations in which you are setting up ZooKeeper on a
limited basis - for evaluation, testing, or development - but not in a
production environment.</p>
-<a name="N10032"></a><a name="sc_systemReq"></a>
+<a name="sc_systemReq"></a>
<h3 class="h4">System Requirements</h3>
-<a name="N10038"></a><a name="sc_supportedPlatforms"></a>
+<a name="sc_supportedPlatforms"></a>
<h4>Supported Platforms</h4>
<ul>
@@ -413,7 +415,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N10066"></a><a name="sc_requiredSoftware"></a>
+<a name="sc_requiredSoftware"></a>
<h4>Required Software </h4>
<p>ZooKeeper runs in Java, release 1.6 or greater (JDK 6 or
greater). It runs as an <em>ensemble</em> of
@@ -422,7 +424,7 @@ document.write("Last Published: " + docu
they run on separate machines. At Yahoo!, ZooKeeper is
usually deployed on dedicated RHEL boxes, with dual-core
processors, 2GB of RAM, and 80GB IDE hard drives.</p>
-<a name="N10074"></a><a name="sc_zkMulitServerSetup"></a>
+<a name="sc_zkMulitServerSetup"></a>
<h3 class="h4">Clustered (Multi-Server) Setup</h3>
<p>For reliable ZooKeeper service, you should deploy ZooKeeper in a
cluster known as an <em>ensemble</em>. As long as a majority
@@ -609,7 +611,7 @@ server.3=zoo3:2888:3888</pre>
</li>
</ol>
-<a name="N1011B"></a><a name="sc_singleAndDevSetup"></a>
+<a name="sc_singleAndDevSetup"></a>
<h3 class="h4">Single Server and Developer Setup</h3>
<p>If you want to setup ZooKeeper for development purposes, you will
probably want to setup a single server instance of ZooKeeper, and then
@@ -627,7 +629,7 @@ server.3=zoo3:2888:3888</pre>
</div>
-<a name="N1013C"></a><a name="ch_administration"></a>
+<a name="ch_administration"></a>
<h2 class="h3">Administration</h2>
<div class="section">
<p>This section contains information about running and maintaining
@@ -760,7 +762,7 @@ server.3=zoo3:2888:3888</pre>
</li>
</ul>
-<a name="N101B8"></a><a name="sc_designing"></a>
+<a name="sc_designing"></a>
<h3 class="h4">Designing a ZooKeeper Deployment</h3>
<p>The reliablity of ZooKeeper rests on two basic assumptions.</p>
<ol>
@@ -787,7 +789,7 @@ server.3=zoo3:2888:3888</pre>
to hold true. Some of these are cross-machines considerations,
and others are things you should consider for each and every
machine in your deployment.</p>
-<a name="N101D4"></a><a name="sc_CrossMachineRequirements"></a>
+<a name="sc_CrossMachineRequirements"></a>
<h4>Cross Machine Requirements</h4>
<p>For the ZooKeeper service to be active, there must be a
majority of non-failing machines that can communicate with
@@ -805,7 +807,7 @@ server.3=zoo3:2888:3888</pre>
failure of that switch could cause a correlated failure and
bring down the service. The same holds true of shared power
circuits, cooling systems, etc.</p>
-<a name="N101E1"></a><a name="Single+Machine+Requirements"></a>
+<a name="Single+Machine+Requirements"></a>
<h4>Single Machine Requirements</h4>
<p>If ZooKeeper has to contend with other applications for
access to resourses like storage media, CPU, network, or
@@ -846,20 +848,20 @@ server.3=zoo3:2888:3888</pre>
</li>
</ul>
-<a name="N101FF"></a><a name="sc_provisioning"></a>
+<a name="sc_provisioning"></a>
<h3 class="h4">Provisioning</h3>
<p></p>
-<a name="N10208"></a><a name="sc_strengthsAndLimitations"></a>
+<a name="sc_strengthsAndLimitations"></a>
<h3 class="h4">Things to Consider: ZooKeeper Strengths and Limitations</h3>
<p></p>
-<a name="N10211"></a><a name="sc_administering"></a>
+<a name="sc_administering"></a>
<h3 class="h4">Administering</h3>
<p></p>
-<a name="N1021A"></a><a name="sc_maintenance"></a>
+<a name="sc_maintenance"></a>
<h3 class="h4">Maintenance</h3>
<p>Little long term maintenance is required for a ZooKeeper
cluster however you must be aware of the following:</p>
-<a name="N10223"></a><a name="Ongoing+Data+Directory+Cleanup"></a>
+<a name="Ongoing+Data+Directory+Cleanup"></a>
<h4>Ongoing Data Directory Cleanup</h4>
<p>The ZooKeeper <a href="#var_datadir">Data
Directory</a> contains files which are a persistent copy
@@ -889,7 +891,7 @@ server.3=zoo3:2888:3888</pre>
can be run as a cron job on the ZooKeeper server machines to
clean up the logs daily.</p>
<pre class="code"> java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count></pre>
-<a name="N10244"></a><a name="Debug+Log+Cleanup+%28log4j%29"></a>
+<a name="Debug+Log+Cleanup+%28log4j%29"></a>
<h4>Debug Log Cleanup (log4j)</h4>
<p>See the section on <a href="#sc_logging">logging</a> in this document. It is
expected that you will setup a rolling file appender using the
@@ -897,7 +899,7 @@ server.3=zoo3:2888:3888</pre>
release tar's conf/log4j.properties provides an example of
this.
</p>
-<a name="N10253"></a><a name="sc_supervision"></a>
+<a name="sc_supervision"></a>
<h3 class="h4">Supervision</h3>
<p>You will want to have a supervisory process that manages
each of your ZooKeeper server processes (JVM). The ZK server is
@@ -916,12 +918,12 @@ server.3=zoo3:2888:3888</pre>
examples) managing your ZooKeeper server ensures that if the
process does exit abnormally it will automatically be restarted
and will quickly rejoin the cluster.</p>
-<a name="N10268"></a><a name="sc_monitoring"></a>
+<a name="sc_monitoring"></a>
<h3 class="h4">Monitoring</h3>
<p>The ZooKeeper service can be monitored in one of two
primary ways; 1) the command port through the use of <a href="#sc_zkCommands">4 letter words</a> and 2) <a href="zookeeperJMX.html">JMX</a>. See the appropriate section for
your environment/requirements.</p>
-<a name="N1027A"></a><a name="sc_logging"></a>
+<a name="sc_logging"></a>
<h3 class="h4">Logging</h3>
<p>ZooKeeper uses <strong>log4j</strong> version 1.2 as
its logging infrastructure. The ZooKeeper default <span class="codefrag filename">log4j.properties</span>
@@ -931,7 +933,7 @@ server.3=zoo3:2888:3888</pre>
<p>For more information, see
<a href="http://logging.apache.org/log4j/1.2/manual.html#defaultInit">Log4j Default Initialization Procedure</a>
of the log4j manual.</p>
-<a name="N1029A"></a><a name="sc_troubleshooting"></a>
+<a name="sc_troubleshooting"></a>
<h3 class="h4">Troubleshooting</h3>
<dl>
@@ -951,7 +953,7 @@ server.3=zoo3:2888:3888</pre>
</dd>
</dl>
-<a name="N102AB"></a><a name="sc_configuration"></a>
+<a name="sc_configuration"></a>
<h3 class="h4">Configuration Parameters</h3>
<p>ZooKeeper's behavior is governed by the ZooKeeper configuration
file. This file is designed so that the exact same file can be used by
@@ -959,7 +961,7 @@ server.3=zoo3:2888:3888</pre>
layouts are the same. If servers use different configuration files, care
must be taken to ensure that the list of servers in all of the different
configuration files match.</p>
-<a name="N102B4"></a><a name="sc_minimumConfiguration"></a>
+<a name="sc_minimumConfiguration"></a>
<h4>Minimum Configuration</h4>
<p>Here are the minimum configuration keywords that must be defined
in the configuration file:</p>
@@ -1006,7 +1008,7 @@ server.3=zoo3:2888:3888</pre>
</dd>
</dl>
-<a name="N102DB"></a><a name="sc_advancedConfiguration"></a>
+<a name="sc_advancedConfiguration"></a>
<h4>Advanced Configuration</h4>
<p>The configuration settings in the section are optional. You can
use them to further fine tune the behaviour of your ZooKeeper servers.
@@ -1102,7 +1104,7 @@ server.3=zoo3:2888:3888</pre>
level) that a single client, identified by IP address, may make
to a single member of the ZooKeeper ensemble. This is used to
prevent certain classes of DoS attacks, including file
- descriptor exhaustion. The default is 10. Setting this to 0
+ descriptor exhaustion. The default is 60. Setting this to 0
entirely removes the limit on concurrent connections.</p>
</dd>
@@ -1148,7 +1150,7 @@ server.3=zoo3:2888:3888</pre>
</dd>
</dl>
-<a name="N1036C"></a><a name="sc_clusterOptions"></a>
+<a name="sc_clusterOptions"></a>
<h4>Cluster Options</h4>
<p>The options in this section are designed for use with an ensemble
of servers -- that is, when deploying clusters of servers.</p>
@@ -1305,7 +1307,7 @@ server.3=zoo3:2888:3888</pre>
</dl>
<p></p>
-<a name="N103FD"></a><a name="sc_authOptions"></a>
+<a name="sc_authOptions"></a>
<h4>Authentication & Authorization Options</h4>
<p>The options in this section allow control over
authentication/authorization performed by the service.</p>
@@ -1339,7 +1341,7 @@ server.3=zoo3:2888:3888</pre>
</dd>
</dl>
-<a name="N10420"></a><a name="Unsafe+Options"></a>
+<a name="Unsafe+Options"></a>
<h4>Unsafe Options</h4>
<p>The following options can be useful, but be careful when you use
them. The risk of each is explained along with the explanation of what
@@ -1384,7 +1386,7 @@ server.3=zoo3:2888:3888</pre>
</dd>
</dl>
-<a name="N10451"></a><a name="Communication+using+the+Netty+framework"></a>
+<a name="Communication+using+the+Netty+framework"></a>
<h4>Communication using the Netty framework</h4>
<p>
<strong>New in
@@ -1417,7 +1419,7 @@ server.3=zoo3:2888:3888</pre>
<p>
TBD - how to manage certificates
</p>
-<a name="N1046E"></a><a name="sc_zkCommands"></a>
+<a name="sc_zkCommands"></a>
<h3 class="h4">ZooKeeper Commands: The Four Letter Words</h3>
<p>ZooKeeper responds to a small set of commands. Each command is
composed of four letters. You issue the commands to ZooKeeper via telnet
@@ -1598,7 +1600,7 @@ zk_max_file_descriptor_count 1024 - on
<pre class="code">$ echo ruok | nc 127.0.0.1 5111
imok
</pre>
-<a name="N104FE"></a><a name="sc_dataFileManagement"></a>
+<a name="sc_dataFileManagement"></a>
<h3 class="h4">Data File Management</h3>
<p>ZooKeeper stores its data in a data directory and its transaction
log in a transaction log directory. By default these two directories are
@@ -1606,7 +1608,7 @@ imok
transaction log files in a separate directory than the data files.
Throughput increases and latency decreases when transaction logs reside
on a dedicated log devices.</p>
-<a name="N10507"></a><a name="The+Data+Directory"></a>
+<a name="The+Data+Directory"></a>
<h4>The Data Directory</h4>
<p>This directory has two files in it:</p>
<ul>
@@ -1652,14 +1654,14 @@ imok
idempotent nature of its updates. By replaying the transaction log
against fuzzy snapshots ZooKeeper gets the state of the system at the
end of the log.</p>
-<a name="N10543"></a><a name="The+Log+Directory"></a>
+<a name="The+Log+Directory"></a>
<h4>The Log Directory</h4>
<p>The Log Directory contains the ZooKeeper transaction logs.
Before any update takes place, ZooKeeper ensures that the transaction
that represents the update is written to non-volatile storage. A new
log file is started each time a snapshot is begun. The log file's
suffix is the first zxid written to that log.</p>
-<a name="N1054D"></a><a name="sc_filemanagement"></a>
+<a name="sc_filemanagement"></a>
<h4>File Management</h4>
<p>The format of snapshot and log files does not change between
standalone ZooKeeper servers and different configurations of
@@ -1679,7 +1681,7 @@ imok
this document for more details on setting a retention policy
and maintenance of ZooKeeper storage.
</p>
-<a name="N10562"></a><a name="sc_commonProblems"></a>
+<a name="sc_commonProblems"></a>
<h3 class="h4">Things to Avoid</h3>
<p>Here are some common problems you can avoid by configuring
ZooKeeper correctly:</p>
@@ -1733,7 +1735,7 @@ imok
</dd>
</dl>
-<a name="N10586"></a><a name="sc_bestPractices"></a>
+<a name="sc_bestPractices"></a>
<h3 class="h4">Best Practices</h3>
<p>For best results, take note of the following list of good
Zookeeper practices:</p>
Modified: zookeeper/trunk/docs/zookeeperAdmin.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperAdmin.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/zookeeperHierarchicalQuorums.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperHierarchicalQuorums.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperHierarchicalQuorums.html (original)
+++ zookeeper/trunk/docs/zookeeperHierarchicalQuorums.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>Introduction to hierarchical quorums</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>Introduction to hierarchical quorums</h1>
+<div id="front-matter"></div>
Modified: zookeeper/trunk/docs/zookeeperHierarchicalQuorums.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperHierarchicalQuorums.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/zookeeperHierarchicalQuorums.pdf (original) and zookeeper/trunk/docs/zookeeperHierarchicalQuorums.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/zookeeperInternals.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperInternals.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperInternals.html (original)
+++ zookeeper/trunk/docs/zookeeperInternals.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Internals</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper Internals</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -249,12 +250,13 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_Introduction"></a>
+<a name="ch_Introduction"></a>
<h2 class="h3">Introduction</h2>
<div class="section">
<p>This document contains information on the inner workings of ZooKeeper.
@@ -278,12 +280,12 @@ document.write("Last Published: " + docu
</div>
-<a name="N10022"></a><a name="sc_atomicBroadcast"></a>
+<a name="sc_atomicBroadcast"></a>
<h2 class="h3">Atomic Broadcast</h2>
<div class="section">
<p>
At the heart of ZooKeeper is an atomic messaging system that keeps all of the servers in sync.</p>
-<a name="N1002B"></a><a name="sc_guaranteesPropertiesDefinitions"></a>
+<a name="sc_guaranteesPropertiesDefinitions"></a>
<h3 class="h4">Guarantees, Properties, and Definitions</h3>
<p>
The specific guarantees provided by the messaging system used by ZooKeeper are the following:</p>
@@ -472,7 +474,7 @@ yourself, <em>Does the set of proposals
included all the proposals that really have been committed?</em> The answer is <em>yes</em>.
Below, we make clear why.)
</p>
-<a name="N100B9"></a><a name="sc_leaderElection"></a>
+<a name="sc_leaderElection"></a>
<h3 class="h4">Leader Activation</h3>
<p>
Leader activation includes leader election. We currently have two leader election
@@ -558,7 +560,7 @@ NEW_LEADER proposal will not be committe
When this happens, the leader and any remaining followers will timeout and go back
to leader election.
</p>
-<a name="N100F7"></a><a name="sc_activeMessaging"></a>
+<a name="sc_activeMessaging"></a>
<h3 class="h4">Active Messaging</h3>
<p>
Leader Activation does all the heavy lifting. Once the leader is coronated he can
@@ -606,7 +608,7 @@ message when that proposal is committed.
</ul>
-<a name="N1011E"></a><a name="sc_summary"></a>
+<a name="sc_summary"></a>
<h3 class="h4">Summary</h3>
<p>So there you go. Why does it work? Specifically, why does is set of proposals
believed by a new leader always contain any proposal that has actually been committed?
@@ -618,7 +620,7 @@ follow a single leader at a time; a new
from the previous epoch since it has seen the highest zxid from a quorum of servers;
any uncommited proposals from a previous epoch seen by a new leader will be committed
by that leader before it becomes active.</p>
-<a name="N10127"></a><a name="sc_comparisons"></a>
+<a name="sc_comparisons"></a>
<h3 class="h4">Comparisons</h3>
<p>
Isn't this just Multi-Paxos? No, Multi-Paxos requires some way of assuring that
@@ -638,7 +640,7 @@ proposals and to not worry about duplica
</div>
-<a name="N10134"></a><a name="sc_quorum"></a>
+<a name="sc_quorum"></a>
<h2 class="h3">Quorums</h2>
<div class="section">
<p>
@@ -673,7 +675,7 @@ hierarchy of groups.
</div>
-<a name="N10147"></a><a name="sc_logging"></a>
+<a name="sc_logging"></a>
<h2 class="h3">Logging</h2>
<div class="section">
<p>
@@ -689,14 +691,14 @@ of the <a href="zookeeperAdmin.html">Zoo
</p>
-<a name="N10160"></a><a name="sc_developerGuidelines"></a>
+<a name="sc_developerGuidelines"></a>
<h3 class="h4">Developer Guidelines</h3>
<p>Please follow the
<a href="http://www.slf4j.org/manual.html">slf4j manual</a> when creating log statements within code.
Also read the
<a href="http://www.slf4j.org/faq.html#logging_performance">FAQ on performance</a>
, when creating log statements. Patch reviewers will look for the following:</p>
-<a name="N10170"></a><a name="sc_rightLevel"></a>
+<a name="sc_rightLevel"></a>
<h4>Logging at the Right Level</h4>
<p>
There are several levels of logging in slf4j.
@@ -727,7 +729,7 @@ It's important to pick the right one. In
<p>
ZooKeeper is typically run in production such that log messages of INFO level
severity and higher (more severe) are output to the log.</p>
-<a name="N10193"></a><a name="sc_slf4jIdioms"></a>
+<a name="sc_slf4jIdioms"></a>
<h4>Use of Standard slf4j Idioms</h4>
<p>
<em>Static Message Logging</em>
Modified: zookeeper/trunk/docs/zookeeperInternals.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperInternals.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/zookeeperJMX.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperJMX.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperJMX.html (original)
+++ zookeeper/trunk/docs/zookeeperJMX.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper JMX</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper JMX</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -219,12 +220,13 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_jmx"></a>
+<a name="ch_jmx"></a>
<h2 class="h3">JMX</h2>
<div class="section">
<p>Apache ZooKeeper has extensive support for JMX, allowing you
@@ -243,7 +245,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N10024"></a><a name="ch_starting"></a>
+<a name="ch_starting"></a>
<h2 class="h3">Starting ZooKeeper with JMX enabled</h2>
<div class="section">
<p>The class
@@ -256,7 +258,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N10034"></a><a name="ch_console"></a>
+<a name="ch_console"></a>
<h2 class="h3">Run a JMX console</h2>
<div class="section">
<p>There are a number of JMX consoles available which can connect
@@ -291,7 +293,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N1005F"></a><a name="ch_reference"></a>
+<a name="ch_reference"></a>
<h2 class="h3">ZooKeeper MBean Reference</h2>
<div class="section">
<p>This table details JMX for a server participating in a
Modified: zookeeper/trunk/docs/zookeeperJMX.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperJMX.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/zookeeperJMX.pdf (original) and zookeeper/trunk/docs/zookeeperJMX.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/zookeeperObservers.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperObservers.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperObservers.html (original)
+++ zookeeper/trunk/docs/zookeeperObservers.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Observers</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper Observers</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -217,12 +218,13 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_Introduction"></a>
+<a name="ch_Introduction"></a>
<h2 class="h3">Observers: Scaling ZooKeeper Without Hurting Write Performance
</h2>
<div class="section">
@@ -260,7 +262,7 @@ document.write("Last Published: " + docu
</p>
</div>
-<a name="N1001C"></a><a name="sc_UsingObservers"></a>
+<a name="sc_UsingObservers"></a>
<h2 class="h3">How to use Observers</h2>
<div class="section">
<p>Setting up a ZooKeeper ensemble that uses Observers is very simple,
@@ -295,7 +297,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N1003B"></a><a name="ch_UseCases"></a>
+<a name="ch_UseCases"></a>
<h2 class="h3">Example use cases</h2>
<div class="section">
<p>
Modified: zookeeper/trunk/docs/zookeeperObservers.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperObservers.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/zookeeperObservers.pdf (original) and zookeeper/trunk/docs/zookeeperObservers.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/zookeeperOver.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperOver.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperOver.html (original)
+++ zookeeper/trunk/docs/zookeeperOver.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -246,12 +247,13 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_DesignOverview"></a>
+<a name="ch_DesignOverview"></a>
<h2 class="h3">ZooKeeper: A Distributed Coordination Service for Distributed
Applications</h2>
<div class="section">
@@ -266,7 +268,7 @@ document.write("Last Published: " + docu
especially prone to errors such as race conditions and deadlock. The
motivation behind ZooKeeper is to relieve distributed applications the
responsibility of implementing coordination services from scratch.</p>
-<a name="N10015"></a><a name="sc_designGoals"></a>
+<a name="sc_designGoals"></a>
<h3 class="h4">Design Goals</h3>
<p>
<strong>ZooKeeper is simple.</strong> ZooKeeper
@@ -319,7 +321,7 @@ document.write("Last Published: " + docu
especially fast in "read-dominant" workloads. ZooKeeper applications run
on thousands of machines, and it performs best where reads are more
common than writes, at ratios of around 10:1.</p>
-<a name="N10045"></a><a name="sc_dataModelNameSpace"></a>
+<a name="sc_dataModelNameSpace"></a>
<h3 class="h4">Data model and the hierarchical namespace</h3>
<p>The name space provided by ZooKeeper is much like that of a
standard file system. A name is a sequence of path elements separated by
@@ -337,7 +339,7 @@ document.write("Last Published: " + docu
</td>
</tr>
</table>
-<a name="N1005B"></a><a name="Nodes+and+ephemeral+nodes"></a>
+<a name="Nodes+and+ephemeral+nodes"></a>
<h3 class="h4">Nodes and ephemeral nodes</h3>
<p>Unlike is standard file systems, each node in a ZooKeeper
namespace can have data associated with it as well as children. It is
@@ -360,7 +362,7 @@ document.write("Last Published: " + docu
exists as long as the session that created the znode is active. When the
session ends the znode is deleted. Ephemeral nodes are useful when you
want to implement <em>[tbd]</em>.</p>
-<a name="N10074"></a><a name="Conditional+updates+and+watches"></a>
+<a name="Conditional+updates+and+watches"></a>
<h3 class="h4">Conditional updates and watches</h3>
<p>ZooKeeper supports the concept of <em>watches</em>.
Clients can set a watch on a znodes. A watch will be triggered and
@@ -369,7 +371,7 @@ document.write("Last Published: " + docu
connection between the client and one of the Zoo Keeper servers is
broken, the client will receive a local notification. These can be used
to <em>[tbd]</em>.</p>
-<a name="N10084"></a><a name="Guarantees"></a>
+<a name="Guarantees"></a>
<h3 class="h4">Guarantees</h3>
<p>ZooKeeper is very fast and very simple. Since its goal, though, is
to be a basis for the construction of more complicated services, such as
@@ -423,7 +425,7 @@ document.write("Last Published: " + docu
<p>For more information on these, and how they can be used, see
<em>[tbd]</em>
</p>
-<a name="N100BA"></a><a name="Simple+API"></a>
+<a name="Simple+API"></a>
<h3 class="h4">Simple API</h3>
<p>One of the design goals of ZooKeeper is provide a very simple
programming interface. As a result, it supports only these
@@ -490,7 +492,7 @@ document.write("Last Published: " + docu
to implement higher level operations, please refer to
<em>[tbd]</em>
</p>
-<a name="N100FD"></a><a name="Implementation"></a>
+<a name="Implementation"></a>
<h3 class="h4">Implementation</h3>
<p>
<a href="#fg_zkComponents">ZooKeeper Components</a> shows the high-level components
@@ -532,7 +534,7 @@ document.write("Last Published: " + docu
calculates what the state of the system is when the write is to be
applied and transforms this into a transaction that captures this new
state.</p>
-<a name="N10128"></a><a name="Uses"></a>
+<a name="Uses"></a>
<h3 class="h4">Uses</h3>
<p>The programming interface to ZooKeeper is deliberately simple.
With it, however, you can implement higher order operations, such as
@@ -541,7 +543,7 @@ document.write("Last Published: " + docu
white paper and video presentation.]</em> For more information, see
<em>[tbd]</em>
</p>
-<a name="N10137"></a><a name="Performance"></a>
+<a name="Performance"></a>
<h3 class="h4">Performance</h3>
<p>ZooKeeper is designed to be highly performant. But is it? The
results of the ZooKeeper's development team at Yahoo! Research indicate
@@ -619,7 +621,7 @@ document.write("Last Published: " + docu
</li>
</ol>
-<a name="N10188"></a><a name="Reliability"></a>
+<a name="Reliability"></a>
<h3 class="h4">Reliability</h3>
<p>To show the behavior of the system over time as
failures are injected we ran a ZooKeeper service made up of
@@ -648,7 +650,7 @@ document.write("Last Published: " + docu
ZooKeeper takes less than 200ms to elect a new leader. Third, as
followers recover, ZooKeeper is able to raise throughput again once they
start processing requests.</p>
-<a name="N101A1"></a><a name="The+ZooKeeper+Project"></a>
+<a name="The+ZooKeeper+Project"></a>
<h3 class="h4">The ZooKeeper Project</h3>
<p>ZooKeeper has been
<a href="http://wiki.apache.org/hadoop/ZooKeeper/PoweredBy">
Modified: zookeeper/trunk/docs/zookeeperOver.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperOver.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/zookeeperProgrammers.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperProgrammers.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperProgrammers.html (original)
+++ zookeeper/trunk/docs/zookeeperProgrammers.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Programmer's Guide</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -204,6 +204,7 @@ document.write("Last Published: " + docu
</div>
<h1>ZooKeeper Programmer's Guide</h1>
<h3>Developing Distributed Applications that use ZooKeeper</h3>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -323,6 +324,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
@@ -330,7 +332,7 @@ document.write("Last Published: " + docu
-<a name="N1000B"></a><a name="_introduction"></a>
+<a name="_introduction"></a>
<h2 class="h3">Introduction</h2>
<div class="section">
<p>This document is a guide for developers wishing to create
@@ -433,7 +435,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N1007D"></a><a name="ch_zkDataModel"></a>
+<a name="ch_zkDataModel"></a>
<h2 class="h3">The ZooKeeper Data Model</h2>
<div class="section">
<p>ZooKeeper has a hierarchal name space, much like a distributed file
@@ -488,7 +490,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N100A7"></a><a name="sc_zkDataModel_znodes"></a>
+<a name="sc_zkDataModel_znodes"></a>
<h3 class="h4">ZNodes</h3>
<p>Every node in a ZooKeeper tree is referred to as a
<em>znode</em>. Znodes maintain a stat structure that
@@ -520,14 +522,14 @@ document.write("Last Published: " + docu
</div>
<p>Znodes are the main enitity that a programmer access. They have
several characteristics that are worth mentioning here.</p>
-<a name="N100CA"></a><a name="sc_zkDataMode_watches"></a>
+<a name="sc_zkDataMode_watches"></a>
<h4>Watches</h4>
<p>Clients can set watches on znodes. Changes to that znode trigger
the watch and then clear the watch. When a watch triggers, ZooKeeper
sends the client a notification. More information about watches can be
found in the section
<a href="#ch_zkWatches">ZooKeeper Watches</a>.</p>
-<a name="N100D8"></a><a name="Data+Access"></a>
+<a name="Data+Access"></a>
<h4>Data Access</h4>
<p>The data stored at each znode in a namespace is read and written
atomically. Reads get all the data bytes associated with a znode and a
@@ -547,13 +549,13 @@ document.write("Last Published: " + docu
large data storage is needed, the usually pattern of dealing with such
data is to store it on a bulk storage system, such as NFS or HDFS, and
store pointers to the storage locations in ZooKeeper.</p>
-<a name="N100E5"></a><a name="Ephemeral+Nodes"></a>
+<a name="Ephemeral+Nodes"></a>
<h4>Ephemeral Nodes</h4>
<p>ZooKeeper also has the notion of ephemeral nodes. These znodes
exists as long as the session that created the znode is active. When
the session ends the znode is deleted. Because of this behavior
ephemeral znodes are not allowed to have children.</p>
-<a name="N100EF"></a><a name="Sequence+Nodes+--+Unique+Naming"></a>
+<a name="Sequence+Nodes+--+Unique+Naming"></a>
<h4>Sequence Nodes -- Unique Naming</h4>
<p>When creating a znode you can also request that
ZooKeeper append a monotonically increasing counter to the end
@@ -567,7 +569,7 @@ document.write("Last Published: " + docu
(4bytes) maintained by the parent node, the counter will
overflow when incremented beyond 2147483647 (resulting in a
name "<path>-2147483647").</p>
-<a name="N100FE"></a><a name="sc_timeInZk"></a>
+<a name="sc_timeInZk"></a>
<h3 class="h4">Time in ZooKeeper</h3>
<p>ZooKeeper tracks time multiple ways:</p>
<ul>
@@ -636,7 +638,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N10136"></a><a name="sc_zkStatStructure"></a>
+<a name="sc_zkStatStructure"></a>
<h3 class="h4">ZooKeeper Stat Structure</h3>
<p>The Stat structure for each znode in ZooKeeper is made up of the
following fields:</p>
@@ -771,7 +773,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N101A8"></a><a name="ch_zkSessions"></a>
+<a name="ch_zkSessions"></a>
<h2 class="h3">ZooKeeper Sessions</h2>
<div class="section">
<p>A ZooKeeper client establishes a session with the ZooKeeper
@@ -953,7 +955,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N10203"></a><a name="ch_zkWatches"></a>
+<a name="ch_zkWatches"></a>
<h2 class="h3">ZooKeeper Watches</h2>
<div class="section">
<p>All of the read operations in ZooKeeper - <strong>getData()</strong>, <strong>getChildren()</strong>, and <strong>exists()</strong> - have the option of setting a watch as a
@@ -1036,7 +1038,7 @@ document.write("Last Published: " + docu
general this all occurs transparently. There is one case where a watch
may be missed: a watch for the existance of a znode not yet created will
be missed if the znode is created and deleted while disconnected.</p>
-<a name="N10239"></a><a name="sc_WatchGuarantees"></a>
+<a name="sc_WatchGuarantees"></a>
<h3 class="h4">What ZooKeeper Guarantees about Watches</h3>
<p>With regard to watches, ZooKeeper maintains these
guarantees:</p>
@@ -1071,7 +1073,7 @@ document.write("Last Published: " + docu
</li>
</ul>
-<a name="N1025E"></a><a name="sc_WatchRememberThese"></a>
+<a name="sc_WatchRememberThese"></a>
<h3 class="h4">Things to Remember about Watches</h3>
<ul>
@@ -1130,7 +1132,7 @@ document.write("Last Published: " + docu
</div>
-<a name="N1028A"></a><a name="sc_ZooKeeperAccessControl"></a>
+<a name="sc_ZooKeeperAccessControl"></a>
<h2 class="h3">ZooKeeper access control using ACLs</h2>
<div class="section">
<p>ZooKeeper uses ACLs to control access to its znodes (the
@@ -1165,7 +1167,7 @@ document.write("Last Published: " + docu
example, the pair <em>(ip:19.22.0.0/16, READ)</em>
gives the <em>READ</em> permission to any clients with
an IP address that starts with 19.22.</p>
-<a name="N102BD"></a><a name="sc_ACLPermissions"></a>
+<a name="sc_ACLPermissions"></a>
<h3 class="h4">ACL Permissions</h3>
<p>ZooKeeper supports the following permissions:</p>
<ul>
@@ -1221,7 +1223,7 @@ document.write("Last Published: " + docu
node, but nothing more. (The problem is, if you want to call
zoo_exists() on a node that doesn't exist, there is no
permission to check.)</p>
-<a name="N10313"></a><a name="sc_BuiltinACLSchemes"></a>
+<a name="sc_BuiltinACLSchemes"></a>
<h4>Builtin ACL Schemes</h4>
<p>ZooKeeeper has the following built in schemes:</p>
<ul>
@@ -1270,7 +1272,7 @@ document.write("Last Published: " + docu
</ul>
-<a name="N10357"></a><a name="ZooKeeper+C+client+API"></a>
+<a name="ZooKeeper+C+client+API"></a>
<h4>ZooKeeper C client API</h4>
<p>The following constants are provided by the ZooKeeper C
library:</p>
@@ -1492,7 +1494,7 @@ int main(int argc, char argv) {
</div>
-<a name="N1046E"></a><a name="sc_ZooKeeperPluggableAuthentication"></a>
+<a name="sc_ZooKeeperPluggableAuthentication"></a>
<h2 class="h3">Pluggable ZooKeeper authentication</h2>
<div class="section">
<p>ZooKeeper runs in a variety of different environments with
@@ -1578,7 +1580,7 @@ authProvider.2=com.f.MyAuth2
</div>
-<a name="N104DA"></a><a name="ch_zkGuarantees"></a>
+<a name="ch_zkGuarantees"></a>
<h2 class="h3">Consistency Guarantees</h2>
<div class="section">
<p>ZooKeeper is a high performance, scalable service. Both reads and
@@ -1704,12 +1706,12 @@ authProvider.2=com.f.MyAuth2
</div>
-<a name="N10541"></a><a name="ch_bindings"></a>
+<a name="ch_bindings"></a>
<h2 class="h3">Bindings</h2>
<div class="section">
<p>The ZooKeeper client libraries come in two languages: Java and C.
The following sections describe these.</p>
-<a name="N1054A"></a><a name="Java+Binding"></a>
+<a name="Java+Binding"></a>
<h3 class="h4">Java Binding</h3>
<p>There are two packages that make up the ZooKeeper Java binding:
<strong>org.apache.zookeeper</strong> and <strong>org.apache.zookeeper.data</strong>. The rest of the
@@ -1776,7 +1778,7 @@ authProvider.2=com.f.MyAuth2
(SESSION_EXPIRED and AUTH_FAILED), the ZooKeeper object becomes invalid.
On a close, the two threads shut down and any further access on zookeeper
handle is undefined behavior and should be avoided. </p>
-<a name="N10593"></a><a name="C+Binding"></a>
+<a name="C+Binding"></a>
<h3 class="h4">C Binding</h3>
<p>The C binding has a single-threaded and multi-threaded library.
The multi-threaded library is easiest to use and is most similar to the
@@ -1793,7 +1795,7 @@ authProvider.2=com.f.MyAuth2
(i.e. FreeBSD 4.x). In all other cases, application developers should
link with zookeeper_mt, as it includes support for both Sync and Async
API.</p>
-<a name="N105A2"></a><a name="Installation"></a>
+<a name="Installation"></a>
<h4>Installation</h4>
<p>If you're building the client from a check-out from the Apache
repository, follow the steps outlined below. If you're building from a
@@ -1924,7 +1926,7 @@ authProvider.2=com.f.MyAuth2
</li>
</ol>
-<a name="N1064B"></a><a name="Using+the+C+Client"></a>
+<a name="Using+the+C+Client"></a>
<h4>Using the C Client</h4>
<p>You can test your client by running a ZooKeeper server (see
instructions on the project wiki page on how to run it) and connecting
@@ -1982,7 +1984,7 @@ authProvider.2=com.f.MyAuth2
</div>
-<a name="N10691"></a><a name="ch_guideToZkOperations"></a>
+<a name="ch_guideToZkOperations"></a>
<h2 class="h3">Building Blocks: A Guide to ZooKeeper Operations</h2>
<div class="section">
<p>This section surveys all the operations a developer can perform
@@ -2000,28 +2002,28 @@ authProvider.2=com.f.MyAuth2
</li>
</ul>
-<a name="N106A5"></a><a name="sc_errorsZk"></a>
+<a name="sc_errorsZk"></a>
<h3 class="h4">Handling Errors</h3>
<p>Both the Java and C client bindings may report errors. The Java client binding does so by throwing KeeperException, calling code() on the exception will return the specific error code. The C client binding returns an error code as defined in the enum ZOO_ERRORS. API callbacks indicate result code for both language bindings. See the API documentation (javadoc for Java, doxygen for C) for full details on the possible errors and their meaning.</p>
-<a name="N106AF"></a><a name="sc_connectingToZk"></a>
+<a name="sc_connectingToZk"></a>
<h3 class="h4">Connecting to ZooKeeper</h3>
<p></p>
-<a name="N106B8"></a><a name="sc_readOps"></a>
+<a name="sc_readOps"></a>
<h3 class="h4">Read Operations</h3>
<p></p>
-<a name="N106C1"></a><a name="sc_writeOps"></a>
+<a name="sc_writeOps"></a>
<h3 class="h4">Write Operations</h3>
<p></p>
-<a name="N106CA"></a><a name="sc_handlingWatches"></a>
+<a name="sc_handlingWatches"></a>
<h3 class="h4">Handling Watches</h3>
<p></p>
-<a name="N106D3"></a><a name="sc_miscOps"></a>
+<a name="sc_miscOps"></a>
<h3 class="h4">Miscelleaneous ZooKeeper Operations</h3>
<p></p>
</div>
-<a name="N106DD"></a><a name="ch_programStructureWithExample"></a>
+<a name="ch_programStructureWithExample"></a>
<h2 class="h3">Program Structure, with Simple Example</h2>
<div class="section">
<p>
@@ -2030,7 +2032,7 @@ authProvider.2=com.f.MyAuth2
</div>
-<a name="N106E8"></a><a name="ch_gotchas"></a>
+<a name="ch_gotchas"></a>
<h2 class="h3">Gotchas: Common Problems and Troubleshooting</h2>
<div class="section">
<p>So now you know ZooKeeper. It's fast, simple, your application
Modified: zookeeper/trunk/docs/zookeeperProgrammers.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperProgrammers.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Binary files - no diff available.
Modified: zookeeper/trunk/docs/zookeeperQuotas.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperQuotas.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperQuotas.html (original)
+++ zookeeper/trunk/docs/zookeeperQuotas.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Quota's Guide</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -204,6 +204,7 @@ document.write("Last Published: " + docu
</div>
<h1>ZooKeeper Quota's Guide</h1>
<h3>A Guide to Deployment and Administration</h3>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -222,11 +223,12 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N1000B"></a><a name="zookeeper_quotas"></a>
+<a name="zookeeper_quotas"></a>
<h2 class="h3">Quotas</h2>
<div class="section">
<p> ZooKeeper has both namespace and bytes quotas. You can use the ZooKeeperMain class to setup quotas.
@@ -238,7 +240,7 @@ document.write("Last Published: " + docu
org.apache.zookeeper.ZooKeeperMain -server host:port</span>
</p>
<p> The above command gives you a command line option of using quotas.</p>
-<a name="N1001F"></a><a name="Setting+Quotas"></a>
+<a name="Setting+Quotas"></a>
<h3 class="h4">Setting Quotas</h3>
<p>You can use
<em>setquota</em> to set a quota on a ZooKeeper node. It has an option of setting quota with
@@ -247,12 +249,12 @@ document.write("Last Published: " + docu
<p> The ZooKeeper quota are stored in ZooKeeper itself in /zookeeper/quota. To disable other people from
changing the quota's set the ACL for /zookeeper/quota such that only admins are able to read and write to it.
</p>
-<a name="N1002F"></a><a name="Listing+Quotas"></a>
+<a name="Listing+Quotas"></a>
<h3 class="h4">Listing Quotas</h3>
<p> You can use
<em>listquota</em> to list a quota on a ZooKeeper node.
</p>
-<a name="N1003C"></a><a name="Deleting+Quotas"></a>
+<a name="Deleting+Quotas"></a>
<h3 class="h4"> Deleting Quotas</h3>
<p> You can use
<em>delquota</em> to delete quota on a ZooKeeper node.
Modified: zookeeper/trunk/docs/zookeeperQuotas.pdf
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperQuotas.pdf?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
Files zookeeper/trunk/docs/zookeeperQuotas.pdf (original) and zookeeper/trunk/docs/zookeeperQuotas.pdf Thu Jul 7 07:32:06 2011 differ
Modified: zookeeper/trunk/docs/zookeeperStarted.html
URL: http://svn.apache.org/viewvc/zookeeper/trunk/docs/zookeeperStarted.html?rev=1143688&r1=1143687&r2=1143688&view=diff
==============================================================================
--- zookeeper/trunk/docs/zookeeperStarted.html (original)
+++ zookeeper/trunk/docs/zookeeperStarted.html Thu Jul 7 07:32:06 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="pelt">
<title>ZooKeeper Getting Started Guide</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -203,6 +203,7 @@ document.write("Last Published: " + docu
PDF</a>
</div>
<h1>ZooKeeper Getting Started Guide</h1>
+<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -237,12 +238,13 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
+</div>
-<a name="N10009"></a><a name="ch_GettingStarted"></a>
+<a name="ch_GettingStarted"></a>
<h2 class="h3">Getting Started: Coordinating Distributed Applications with
ZooKeeper</h2>
<div class="section">
@@ -255,17 +257,17 @@ document.write("Last Published: " + docu
deployments, and optimizing the transaction log. However for the complete
instructions for commercial deployments, please refer to the <a href="zookeeperAdmin.html">ZooKeeper
Administrator's Guide</a>.</p>
-<a name="N10016"></a><a name="sc_Prerequisites"></a>
+<a name="sc_Prerequisites"></a>
<h3 class="h4">Pre-requisites</h3>
<p>See <a href="zookeeperAdmin.html#sc_systemReq">
System Requirements</a> in the Admin guide.</p>
-<a name="N10024"></a><a name="sc_Download"></a>
+<a name="sc_Download"></a>
<h3 class="h4">Download</h3>
<p>To get a ZooKeeper distribution, download a recent
<a href="http://hadoop.apache.org/zookeeper/releases.html">
stable</a> release from one of the Apache Download
Mirrors.</p>
-<a name="N10032"></a><a name="sc_InstallingSingleMode"></a>
+<a name="sc_InstallingSingleMode"></a>
<h3 class="h4">Standalone Operation</h3>
<p>Setting up a ZooKeeper server in standalone mode is
straightforward. The server is contained in a single JAR file,
@@ -337,13 +339,13 @@ clientPort=2181
This is fine for most development situations, but to run ZooKeeper in
replicated mode, please see <a href="#sc_RunningReplicatedZooKeeper">Running Replicated
ZooKeeper</a>.</p>
-<a name="N10083"></a><a name="sc_FileManagement"></a>
+<a name="sc_FileManagement"></a>
<h3 class="h4">Managing ZooKeeper Storage</h3>
<p>For long running production systems ZooKeeper storage must
be managed externally (dataDir and logs). See the section on
<a href="zookeeperAdmin.html#sc_maintenance">maintenance</a> for
more details.</p>
-<a name="N10091"></a><a name="sc_ConnectingToZooKeeper"></a>
+<a name="sc_ConnectingToZooKeeper"></a>
<h3 class="h4">Connecting to ZooKeeper</h3>
<p>Once ZooKeeper is running, you have several options for connection
to it:</p>
@@ -516,7 +518,7 @@ numChildren = 0
[zkshell: 18]
</pre>
<p>That's it for now. To explore more, continue with the rest of this document and see the <a href="zookeeperProgrammers.html">Programmer's Guide</a>. </p>
-<a name="N10130"></a><a name="sc_ProgrammingToZooKeeper"></a>
+<a name="sc_ProgrammingToZooKeeper"></a>
<h3 class="h4">Programming to ZooKeeper</h3>
<p>ZooKeeper has a Java bindings and C bindings. They are
functionally equivalent. The C bindings exist in two variants: single
@@ -524,7 +526,7 @@ numChildren = 0
is done. For more information, see the <a href="zookeeperProgrammers.html#ch_programStructureWithExample">Programming
Examples in the ZooKeeper Programmer's Guide</a> for
sample code using of the different APIs.</p>
-<a name="N1013E"></a><a name="sc_RunningReplicatedZooKeeper"></a>
+<a name="sc_RunningReplicatedZooKeeper"></a>
<h3 class="h4">Running Replicated ZooKeeper</h3>
<p>Running ZooKeeper in standalone mode is convenient for evaluation,
some development, and testing. But in production, you should run
@@ -584,7 +586,7 @@ server.3=zoo3:2888:3888
</div>
</div>
-<a name="N1017B"></a><a name="Other+Optimizations"></a>
+<a name="Other+Optimizations"></a>
<h3 class="h4">Other Optimizations</h3>
<p>There are a couple of other configuration parameters that can
greatly increase performance:</p>