Author: phunt
Date: Thu Oct 16 14:55:22 2008
New Revision: 705373

URL: http://svn.apache.org/viewvc?rev=705373&view=rev
Log:
ZOOKEEPER-151. Document change to server configuration

Modified:
    hadoop/zookeeper/trunk/CHANGES.txt
    hadoop/zookeeper/trunk/docs/zookeeperAdmin.html
    hadoop/zookeeper/trunk/docs/zookeeperAdmin.pdf
    hadoop/zookeeper/trunk/docs/zookeeperInternals.html
    hadoop/zookeeper/trunk/docs/zookeeperInternals.pdf
    hadoop/zookeeper/trunk/docs/zookeeperStarted.html
    hadoop/zookeeper/trunk/docs/zookeeperStarted.pdf
    
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
    
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperInternals.xml
    
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml

Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Thu Oct 16 14:55:22 2008
@@ -35,6 +35,9 @@
 
   BUGFIXES: 
 
+  ZOOKEEPER-151. Document change to server configuration
+  (Flavio Paiva Junqueira)
+
   ZOOKEEPER-193. update java example doc to compile with latest zookeeper
   (phunt)
 

Modified: hadoop/zookeeper/trunk/docs/zookeeperAdmin.html
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperAdmin.html?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/docs/zookeeperAdmin.html (original)
+++ hadoop/zookeeper/trunk/docs/zookeeperAdmin.html Thu Oct 16 14:55:22 2008
@@ -319,7 +319,7 @@
       It runs as group of hosts called a quorum. Three ZooKeeper hosts per
       quorum is the minimum recommended quorum size. At Yahoo!, ZooKeeper is
       usually deployed on dedicated RHEL boxes, with dual-core processors, 2GB
-      of RAM, and 80GB IDE harddrives.</p>
+      of RAM, and 80GB IDE hard drives.</p>
 <a name="N1003C"></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
@@ -390,9 +390,9 @@
 clientPort=2181
 initLimit=5
 syncLimit=2
-server.1=zoo1:2888
-server.2=zoo2:2888
-server.3=zoo3:2888</span>
+server.1=zoo1:2888:3888
+server.2=zoo2:2888:3888
+server.3=zoo3:2888:3888</span>
 </p>
 
           
@@ -403,7 +403,7 @@
           
 <p>Every machine that is part of the ZooKeeper quorum should know
           about every other machine in the quorum. You accomplish this with
-          the series of lines of the form 
<strong>server.id=host:port</strong>. The integers <strong>host</strong> and 
<strong>port</strong> are straightforward. You attribute the
+          the series of lines of the form 
<strong>server.id=host:port:port</strong>. The parameters <strong>host</strong> 
and <strong>port</strong> are straightforward. You attribute the
           server id to each machine by creating a file named
           <span class="codefrag filename">myid</span>, one for each server, 
which resides in
           that server's data directory, as specified by the configuration file
@@ -423,7 +423,7 @@
 
           
 <p>
-<span class="codefrag computeroutput">$ java -cp 
zookeeper-dev.jar:java/lib/log4j-1.2.15.jar:conf \
+<span class="codefrag computeroutput">$ java -cp 
zookeeper.jar:src/java/lib/log4j-1.2.15.jar:conf \
         org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg</span>
 </p>
         
@@ -444,7 +444,7 @@
 
               
 <p>
-<span class="codefrag computeroutput">$ java -cp 
zookeeper.jar:java/lib/log4j-1.2.15.jar:conf \
+<span class="codefrag computeroutput">$ java -cp 
zookeeper.jar:src/java/lib/log4j-1.2.15.jar:conf \
       org.apache.zookeeper.ZooKeeperMain 127.0.0.1:2181</span>
 </p>
             
@@ -460,7 +460,7 @@
 
               
 <p>
-<span class="codefrag computeroutput">$ _make cli_st_</span>
+<span class="codefrag computeroutput">$ make cli_st</span>
 </p>
 
               
@@ -468,7 +468,7 @@
 
               
 <p>
-<span class="codefrag computeroutput">$ _make cli_mt_</span>
+<span class="codefrag computeroutput">$ make cli_mt</span>
 </p>
             
 </li>
@@ -811,20 +811,8 @@
               non-authenticated UDP-based version of fast leader election, "2"
               corresponds to the authenticated UDP-based version of fast
               leader election, and "3" corresponds to TCP-based version of
-              fast leader election</p>
-</dd>
-
-          
-<dt>
-<term>electionPort</term>
-</dt>
-<dd>
-<p>(No Java system property)</p>
-<p>Port used for leader election. It is only used when the
-              election algorithm is not "0". When the election algorithm is
-              "0" a UDP port with the same port number as the port listed in
-              the <strong>server.num</strong> option will be
-              used.</p>
+              fast leader election. Currently, only 0 and 3 are supported, 3 
+              being the default</p>
 </dd>
 
           
@@ -863,7 +851,7 @@
 
           
 <dt>
-<term>server.x=[hostname]:nnnn, etc</term>
+<term>server.x=[hostname]:nnnnn[:nnnnn], etc</term>
 </dt>
 <dd>
 <p>(No Java system property)</p>
@@ -876,13 +864,12 @@
 <p>The list of servers that make up ZooKeeper servers that is
               used by the clients must match the list of ZooKeeper servers
               that each ZooKeeper server has.</p>
-<p>The port numbers <strong>nnnn</strong> in
-              this setting are the <em>electionPort</em> numbers
-              of the servers (as opposed to clientPorts). If you want to test
-              multiple servers on a single machine, the individual choices of
-              electionPort for each server can be defined in each server's
-              config files using the line electionPort=xxxx to avoid
-              clashes.</p>
+<p>There are two port numbers <strong>nnnnn</strong>. 
+              The first followers use to connect to the leader, and the second 
is for 
+              leader election. The leader election port is only necessary if 
electionAlg 
+              is 1, 2, or 3 (default). If electionAlg is 0, then the second 
port is not 
+              necessary. If you want to test multiple servers on a single 
machine, then 
+              different ports can be used for each server.</p>
 </dd>
 
           
@@ -898,7 +885,7 @@
         
 </dl>
 <p></p>
-<a name="N102AF"></a><a name="Unsafe+Options"></a>
+<a name="N102A0"></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
@@ -943,7 +930,7 @@
 </dd>
         
 </dl>
-<a name="N102E1"></a><a name="sc_zkCommands"></a>
+<a name="N102D2"></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
@@ -992,7 +979,7 @@
 <pre class="code">$ echo ruok | nc 127.0.0.1 5111
 imok
 </pre>
-<a name="N10313"></a><a name="sc_dataFileManagement"></a>
+<a name="N10304"></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
@@ -1000,7 +987,7 @@
       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="N1031C"></a><a name="The+Data+Directory"></a>
+<a name="N1030D"></a><a name="The+Data+Directory"></a>
 <h4>The Data Directory</h4>
 <p>This directory has two files in it:</p>
 <ul>
@@ -1046,14 +1033,14 @@
         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="N10358"></a><a name="The+Log+Directory"></a>
+<a name="N10349"></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="N10362"></a><a name="File+Management"></a>
+<a name="N10353"></a><a name="File+Management"></a>
 <h4>File Management</h4>
 <p>The format of snapshot and log files does not change between
         standalone ZooKeeper servers and different configurations of
@@ -1070,7 +1057,7 @@
         needs the latest complete fuzzy snapshot and the log files from the
         start of that snapshot. The PurgeTxnLog utility implements a simple
         retention policy that administrators can use.</p>
-<a name="N10373"></a><a name="sc_commonProblems"></a>
+<a name="N10364"></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>
@@ -1124,7 +1111,7 @@
 </dd>
       
 </dl>
-<a name="N10397"></a><a name="sc_bestPractices"></a>
+<a name="N10388"></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. <em>[tbd...]</em>

Modified: hadoop/zookeeper/trunk/docs/zookeeperAdmin.pdf
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperAdmin.pdf?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
Binary files - no diff available.

Modified: hadoop/zookeeper/trunk/docs/zookeeperInternals.html
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperInternals.html?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/docs/zookeeperInternals.html (original)
+++ hadoop/zookeeper/trunk/docs/zookeeperInternals.html Thu Oct 16 14:55:22 2008
@@ -453,7 +453,8 @@
 <p>
 Leader activation includes leader election. We currently have two leader 
election 
 algorithms in ZooKeeper: LeaderElection and FastLeaderElection 
(AuthFastLeaderElection 
-is a variant of FastLeaderElection). ZooKeeper messaging doesn't care about 
the 
+is a variant of FastLeaderElection that uses UDP and allows servers to perform 
a simple
+form of authentication to avoid IP spoofing). ZooKeeper messaging doesn't care 
about the 
 exact method of electing a leader has long as the following holds:
 </p>
 <ul>
@@ -484,8 +485,8 @@
 snapshot of the state to the follower.
 </p>
 <p>
-There is a corner cases that a follower arrives that has proposals, U, not 
seen 
-by a leader. Proposals are seen in order, so the proposals of U will have a 
zxids 
+There is a corner case in which a follower that has proposals, U, not seen 
+by a leader arrives. Proposals are seen in order, so the proposals of U will 
have a zxids 
 higher than zxids seen by the leader. The follower must have arrived after the 
 leader election, otherwise the follower would have been elected leader given 
that 
 it has seen a higher zxid. Since committed proposals must be seen by a quorum 
of 

Modified: hadoop/zookeeper/trunk/docs/zookeeperInternals.pdf
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperInternals.pdf?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
Binary files - no diff available.

Modified: hadoop/zookeeper/trunk/docs/zookeeperStarted.html
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperStarted.html?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/docs/zookeeperStarted.html (original)
+++ hadoop/zookeeper/trunk/docs/zookeeperStarted.html Thu Oct 16 14:55:22 2008
@@ -251,7 +251,7 @@
       file:</p>
 <pre class="code">
 tickTime=2000
-dataDir=/var/zookeeper/ 
+dataDir=/var/zookeeper
 clientPort=2181
 </pre>
 <p>This file can be called anything, but for the sake of this
@@ -297,30 +297,34 @@
 </dl>
 <p>Now that you created the configuration file, you can start
       ZooKeeper:</p>
-<pre class="code">java -cp zookeeper-dev.jar:java/lib/log4j-1.2.15.jar:conf 
org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg</pre>
-<p>ZooKeeper logs messages using log4j -- more detail available in
-      the <a href="zookeeperProgrammers.html#Logging">Logging</a>
-      section of the Programmer's Guide.<em>[tbd:
-      real reference needed]</em> You will see log messages coming to the
-      console and/or a log file depending on the log4j configuration.</p>
+<pre class="code">java -cp 
zookeeper-dev.jar:src/java/lib/log4j-1.2.15.jar:conf 
org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg</pre>
+<p>ZooKeeper logs messages using log4j -- more detail
+      available in the
+      <a href="zookeeperProgrammers.html#Logging">Logging</a>
+      section of the Programmer's Guide. You will see log messages
+      coming to the console and/or a log file depending on the log4j
+      configuration.</p>
 <p>The steps outlined here run ZooKeeper in standalone mode. There is
       no replication, so if Zookeeper process fails, the service will go down.
       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>
 <p></p>
-<a name="N10072"></a><a name="sc_ConnectingToZooKeeper"></a>
+<a name="N1006F"></a><a name="sc_ConnectingToZooKeeper"></a>
 <h3 class="h4">Connecting to ZooKeeper</h3>
-<p>Once ZooKeeper is running, you have several option for connection
+<p>Once ZooKeeper is running, you have several options for connection
       to it:</p>
 <ul>
         
 <li>
           
 <p>
-<strong>Java</strong>: Use java -cp
-          zookeeper.jar:java/lib/log4j-1.2.15.jar:conf
-          org.apache.zookeeper.ZooKeeperMain 127.0.0.1:2181</p>
+<strong>Java</strong>:
+          Use <span class="codefrag computeroutput">java -cp
+          zookeeper-dev.jar:src/java/lib/log4j-1.2.15.jar:conf
+          org.apache.zookeeper.ZooKeeperMain
+          127.0.0.1:2181</span>
+</p>
 
           
 <p>This lets you perform simple, file-like operations.</p>
@@ -363,14 +367,14 @@
       file. The file is similar to the one used in standalone mode, but with a
       few differences. Here is an example:</p>
 <pre class="code">
-tickTime=2000 
-dataDir=/var/zookeeper/ 
-clientPort=2181 
-initLimit=5 
-syncLimit=2 
-server.1=zoo1:2888
-server.2=zoo2:2888 
-server.3=zoo3:2888 
+tickTime=2000
+dataDir=/var/zookeeper
+clientPort=2181
+initLimit=5
+syncLimit=2
+server.1=zoo1:2888:3888
+server.2=zoo2:2888:3888
+server.3=zoo3:2888:3888
 </pre>
 <p>The new entry, <strong>initLimit</strong> is
       timeouts ZooKeeper uses to limit the length of time the Zookeeper
@@ -382,24 +386,38 @@
       seconds.</p>
 <p>The entries of the form <em>server.X</em> list the
       servers that make up the ZooKeeper service. When the server starts up,
-      it knows which server it is by looking for the file *myid* in the data
-      directory. That file has the contains the server number, in
-      ASCII.</p>
-<p>Finally, note the "2888" port numbers after each server name.
-      These are the "electionPort" numbers of the servers (as opposed to
-      clientPorts), that is ports for <em>[tbd]</em>.</p>
+      it knows which server it is by looking for the file
+      <em>myid</em> in the data directory. That file has the 
+      contains the server number, in ASCII.</p>
+<p>Finally, note the two port numbers after each server
+       name: " 2888" and "3888". Peers use the former port to connect
+       to other peers. Such a connection is necessary so that peers
+       can communicate, for example, to agree upon the order of
+       updates. More specifically, a ZooKeeper server uses this port
+       to connect followers to the leader. When a new leader arises, a
+       follower opens a TCP connection to the leader using this
+       port. Because the default leader election also uses TCP, we
+       currently require another port for leader election. This is the
+       second port in the server entry.
+       </p>
 <div class="note">
 <div class="label">Note</div>
 <div class="content">
         
-<p>If you want to test multiple servers on a single machine, define
-        the electionPort for each server in that server's config file, using
-        the line <span class="codefrag command">electionPort=xxxx</span> as 
means of avoiding
-        clashes.</p>
+<p>If you want to test multiple servers on a single
+        machine, specify the servername
+        as <em>localhost</em> with unique quorum &amp;
+        leader election ports (i.e. 2888:3888, 2889:3889, 2890:3890 in
+        the example above) for each server.X in that server's config
+        file. Of course separate <em>dataDir</em>s and
+        distinct <em>clientPort</em>s are also necessary
+        (in the above replicated example, running on a
+        single <em>localhost</em>, you would still have
+        three config files).</p>
       
 </div>
 </div>
-<a name="N100E6"></a><a name="Other+Optimizations"></a>
+<a name="N100EE"></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>
@@ -407,10 +425,11 @@
         
 <li>
           
-<p>To get low latencies on updates it is important to have a
-          dedicated transaction log directory. By default transaction logs are
-          put in the same directory as the data snapshots and *myid* file. The
-          dataLogDir parameters indicates a different directory to use for the
+<p>To get low latencies on updates it is important to
+          have a dedicated transaction log directory. By default
+          transaction logs are put in the same directory as the data
+          snapshots and <em>myid</em> file. The dataLogDir
+          parameters indicates a different directory to use for the
           transaction logs.</p>
         
 </li>

Modified: hadoop/zookeeper/trunk/docs/zookeeperStarted.pdf
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperStarted.pdf?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
Binary files - no diff available.

Modified: 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
 (original)
+++ 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
 Thu Oct 16 14:55:22 2008
@@ -75,7 +75,7 @@
       It runs as group of hosts called a quorum. Three ZooKeeper hosts per
       quorum is the minimum recommended quorum size. At Yahoo!, ZooKeeper is
       usually deployed on dedicated RHEL boxes, with dual-core processors, 2GB
-      of RAM, and 80GB IDE harddrives.</para>
+      of RAM, and 80GB IDE hard drives.</para>
     </section>
 
     <section id="sc_zkMulitServerSetup">
@@ -133,9 +133,9 @@
 clientPort=2181
 initLimit=5
 syncLimit=2
-server.1=zoo1:2888
-server.2=zoo2:2888
-server.3=zoo3:2888</computeroutput></para>
+server.1=zoo1:2888:3888
+server.2=zoo2:2888:3888
+server.3=zoo3:2888:3888</computeroutput></para>
 
           <para>You can find the meanings of these and other configuration
           settings in the section <xref linkend="sc_configuration" />. A word
@@ -144,7 +144,7 @@
           <para>Every machine that is part of the ZooKeeper quorum should know
           about every other machine in the quorum. You accomplish this with
           the series of lines of the form <emphasis
-          role="bold">server.id=host:port</emphasis>. The integers <emphasis
+          role="bold">server.id=host:port:port</emphasis>. The parameters 
<emphasis
           role="bold">host</emphasis> and <emphasis
           role="bold">port</emphasis> are straightforward. You attribute the
           server id to each machine by creating a file named
@@ -161,7 +161,7 @@
           <para>If your configuration file is set up, you can start
           ZooKeeper:</para>
 
-          <para><computeroutput>$ java -cp 
zookeeper-dev.jar:java/lib/log4j-1.2.15.jar:conf \
+          <para><computeroutput>$ java -cp 
zookeeper.jar:src/java/lib/log4j-1.2.15.jar:conf \
         org.apache.zookeeper.server.quorum.QuorumPeerMain 
zoo.cfg</computeroutput></para>
         </listitem>
 
@@ -173,7 +173,7 @@
               <para>In Java, you can run the following command to execute
               simple operations:</para>
 
-              <para><computeroutput>$ java -cp 
zookeeper.jar:java/lib/log4j-1.2.15.jar:conf \
+              <para><computeroutput>$ java -cp 
zookeeper.jar:src/java/lib/log4j-1.2.15.jar:conf \
       org.apache.zookeeper.ZooKeeperMain 127.0.0.1:2181</computeroutput></para>
             </listitem>
 
@@ -183,11 +183,11 @@
               ZooKeeper sources. This compiles the single threaded
               client:</para>
 
-              <para><computeroutput>$ _make cli_st_</computeroutput></para>
+              <para><computeroutput>$ make cli_st</computeroutput></para>
 
               <para>And this compiles the mulithreaded client:</para>
 
-              <para><computeroutput>$ _make cli_mt_</computeroutput></para>
+              <para><computeroutput>$ make cli_mt</computeroutput></para>
             </listitem>
           </itemizedlist>
 
@@ -507,21 +507,8 @@
               non-authenticated UDP-based version of fast leader election, "2"
               corresponds to the authenticated UDP-based version of fast
               leader election, and "3" corresponds to TCP-based version of
-              fast leader election</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term>electionPort</term>
-
-            <listitem>
-              <para>(No Java system property)</para>
-
-              <para>Port used for leader election. It is only used when the
-              election algorithm is not "0". When the election algorithm is
-              "0" a UDP port with the same port number as the port listed in
-              the <emphasis role="bold">server.num</emphasis> option will be
-              used.</para>
+              fast leader election. Currently, only 0 and 3 are supported, 3 
+              being the default</para>
             </listitem>
           </varlistentry>
 
@@ -560,7 +547,7 @@
           </varlistentry>
 
           <varlistentry>
-            <term>server.x=[hostname]:nnnn, etc</term>
+            <term>server.x=[hostname]:nnnnn[:nnnnn], etc</term>
 
             <listitem>
               <para>(No Java system property)</para>
@@ -577,13 +564,12 @@
               used by the clients must match the list of ZooKeeper servers
               that each ZooKeeper server has.</para>
 
-              <para>The port numbers <emphasis role="bold">nnnn</emphasis> in
-              this setting are the <emphasis>electionPort</emphasis> numbers
-              of the servers (as opposed to clientPorts). If you want to test
-              multiple servers on a single machine, the individual choices of
-              electionPort for each server can be defined in each server's
-              config files using the line electionPort=xxxx to avoid
-              clashes.</para>
+              <para>There are two port numbers <emphasis 
role="bold">nnnnn</emphasis>. 
+              The first followers use to connect to the leader, and the second 
is for 
+              leader election. The leader election port is only necessary if 
electionAlg 
+              is 1, 2, or 3 (default). If electionAlg is 0, then the second 
port is not 
+              necessary. If you want to test multiple servers on a single 
machine, then 
+              different ports can be used for each server.</para>
             </listitem>
           </varlistentry>
 

Modified: 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperInternals.xml
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperInternals.xml?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperInternals.xml
 (original)
+++ 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperInternals.xml
 Thu Oct 16 14:55:22 2008
@@ -205,7 +205,8 @@
 <para>
 Leader activation includes leader election. We currently have two leader 
election 
 algorithms in ZooKeeper: LeaderElection and FastLeaderElection 
(AuthFastLeaderElection 
-is a variant of FastLeaderElection). ZooKeeper messaging doesn't care about 
the 
+is a variant of FastLeaderElection that uses UDP and allows servers to perform 
a simple
+form of authentication to avoid IP spoofing). ZooKeeper messaging doesn't care 
about the 
 exact method of electing a leader has long as the following holds:
 </para>
 
@@ -233,8 +234,8 @@
 </para>
 
 <para>
-There is a corner cases that a follower arrives that has proposals, U, not 
seen 
-by a leader. Proposals are seen in order, so the proposals of U will have a 
zxids 
+There is a corner case in which a follower that has proposals, U, not seen 
+by a leader arrives. Proposals are seen in order, so the proposals of U will 
have a zxids 
 higher than zxids seen by the leader. The follower must have arrived after the 
 leader election, otherwise the follower would have been elected leader given 
that 
 it has seen a higher zxid. Since committed proposals must be seen by a quorum 
of 

Modified: 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml?rev=705373&r1=705372&r2=705373&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml
 (original)
+++ 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml
 Thu Oct 16 14:55:22 2008
@@ -85,7 +85,7 @@
 
 <programlisting>
 tickTime=2000
-dataDir=/var/zookeeper/ 
+dataDir=/var/zookeeper
 clientPort=2181
 </programlisting>
 
@@ -128,13 +128,14 @@
       <para>Now that you created the configuration file, you can start
       ZooKeeper:</para>
 
-      <programlisting>java -cp 
zookeeper-dev.jar:java/lib/log4j-1.2.15.jar:conf 
org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg</programlisting>
+      <programlisting>java -cp 
zookeeper-dev.jar:src/java/lib/log4j-1.2.15.jar:conf 
org.apache.zookeeper.server.quorum.QuorumPeerMain zoo.cfg</programlisting>
 
-      <para>ZooKeeper logs messages using log4j -- more detail available in
-      the <ulink url="zookeeperProgrammers.html#Logging">Logging</ulink>
-      section of the Programmer's Guide.<emphasis>[tbd:
-      real reference needed]</emphasis> You will see log messages coming to the
-      console and/or a log file depending on the log4j configuration.</para>
+      <para>ZooKeeper logs messages using log4j -- more detail
+      available in the
+      <ulink url="zookeeperProgrammers.html#Logging">Logging</ulink>
+      section of the Programmer's Guide. You will see log messages
+      coming to the console and/or a log file depending on the log4j
+      configuration.</para>
 
       <para>The steps outlined here run ZooKeeper in standalone mode. There is
       no replication, so if Zookeeper process fails, the service will go down.
@@ -149,14 +150,16 @@
     <section id="sc_ConnectingToZooKeeper">
       <title>Connecting to ZooKeeper</title>
 
-      <para>Once ZooKeeper is running, you have several option for connection
+      <para>Once ZooKeeper is running, you have several options for connection
       to it:</para>
 
       <itemizedlist>
         <listitem>
-          <para><emphasis role="bold">Java</emphasis>: Use java -cp
-          zookeeper.jar:java/lib/log4j-1.2.15.jar:conf
-          org.apache.zookeeper.ZooKeeperMain 127.0.0.1:2181</para>
+          <para><emphasis role="bold">Java</emphasis>:
+          Use <computeroutput>java -cp
+          zookeeper-dev.jar:src/java/lib/log4j-1.2.15.jar:conf
+          org.apache.zookeeper.ZooKeeperMain
+          127.0.0.1:2181</computeroutput></para>
 
           <para>This lets you perform simple, file-like operations.</para>
         </listitem>
@@ -199,14 +202,14 @@
       few differences. Here is an example:</para>
 
 <programlisting>
-tickTime=2000 
-dataDir=/var/zookeeper/ 
-clientPort=2181 
-initLimit=5 
-syncLimit=2 
-server.1=zoo1:2888
-server.2=zoo2:2888 
-server.3=zoo3:2888 
+tickTime=2000
+dataDir=/var/zookeeper
+clientPort=2181
+initLimit=5
+syncLimit=2
+server.1=zoo1:2888:3888
+server.2=zoo2:2888:3888
+server.3=zoo3:2888:3888
 </programlisting>
 
       <para>The new entry, <emphasis role="bold">initLimit</emphasis> is
@@ -222,19 +225,33 @@
 
       <para>The entries of the form <emphasis>server.X</emphasis> list the
       servers that make up the ZooKeeper service. When the server starts up,
-      it knows which server it is by looking for the file *myid* in the data
-      directory. That file has the contains the server number, in
-      ASCII.</para>
-
-      <para>Finally, note the "2888" port numbers after each server name.
-      These are the "electionPort" numbers of the servers (as opposed to
-      clientPorts), that is ports for <emphasis>[tbd]</emphasis>.</para>
+      it knows which server it is by looking for the file
+      <emphasis>myid</emphasis> in the data directory. That file has the 
+      contains the server number, in ASCII.</para>
+
+       <para>Finally, note the two port numbers after each server
+       name: " 2888" and "3888". Peers use the former port to connect
+       to other peers. Such a connection is necessary so that peers
+       can communicate, for example, to agree upon the order of
+       updates. More specifically, a ZooKeeper server uses this port
+       to connect followers to the leader. When a new leader arises, a
+       follower opens a TCP connection to the leader using this
+       port. Because the default leader election also uses TCP, we
+       currently require another port for leader election. This is the
+       second port in the server entry.
+       </para>
 
       <note>
-        <para>If you want to test multiple servers on a single machine, define
-        the electionPort for each server in that server's config file, using
-        the line <command>electionPort=xxxx</command> as means of avoiding
-        clashes.</para>
+        <para>If you want to test multiple servers on a single
+        machine, specify the servername
+        as <emphasis>localhost</emphasis> with unique quorum &amp;
+        leader election ports (i.e. 2888:3888, 2889:3889, 2890:3890 in
+        the example above) for each server.X in that server's config
+        file. Of course separate <emphasis>dataDir</emphasis>s and
+        distinct <emphasis>clientPort</emphasis>s are also necessary
+        (in the above replicated example, running on a
+        single <emphasis>localhost</emphasis>, you would still have
+        three config files).</para>
       </note>
     </section>
 
@@ -246,10 +263,11 @@
 
       <itemizedlist>
         <listitem>
-          <para>To get low latencies on updates it is important to have a
-          dedicated transaction log directory. By default transaction logs are
-          put in the same directory as the data snapshots and *myid* file. The
-          dataLogDir parameters indicates a different directory to use for the
+          <para>To get low latencies on updates it is important to
+          have a dedicated transaction log directory. By default
+          transaction logs are put in the same directory as the data
+          snapshots and <emphasis>myid</emphasis> file. The dataLogDir
+          parameters indicates a different directory to use for the
           transaction logs.</para>
         </listitem>
 


Reply via email to