This is a running list of todo documentation items. Feel free to add to the list or take on an item as you wish (in the form of a JIRA patch of course). ------------------------------------------------------------- recipes.xml:110: [maybe an illustration would be nice for each recipe?] recipes.xml:167: "wait for each watch event". [how do you wait?] recipes.xml:457: [tbd: myabe helpful to indicate which step this refers to?] zookeeperAdmin.xml:77: because requires a majority [tbd: why?], it is best to use... zookeeperAdmin.xml:112: $yinst -i jdk-1.6.0.00_3 -br test [y! prop - replace with open equiv] zookeeperAdmin.xml:99: - use a maximum heap size of 3GB for a 4GB machine. [tbd: where would they do this? Environment variable, etc?] zookeeperAdmin.xml:120 $ yinst install -nostart zookeeper_server [Y! prop - replace with open eq] zookeeperAdmin.xml:171: In Java, you can run the following command to execute simple operations: [tbd: also, maybe give some of those simple operations?] zookeeperAdmin.xml:194: Running either program gives you a shell in which to execute simple file-system-like operations. [tbd: again, sample operations?] zookeeperAdmin.xml:252: If servers use different configuration files, care must be taken to ensure that the list of servers in all of the standard form, with legal values, etc] zookeeperAdmin.xml:408: (Note: The system property has no zookeeper prefix, and the configuration variable name is different from the system property. Yes - it's not consistent, and it's annoying. [tbd: is there any explanation for this?]) zookeeperAdmin.xml:445: When the election algorithm is "0" a UDP port with the same port number as the port listed in the server.num option will be used. [tbd: should that be server.id? Also, why isn't server.id documented anywhere?] zookeeperAdmin.xml:481: The default to this option is yes, which means that a leader will accept client connections. [tbd: how do you specifiy which server is the leader?] zookeeperAdmin.xml:495 When the server starts up, it determines which server it is by looking for the file myid in the data directory. [tdb: should we mention somewhere about creating this file, myid, in the setup procedure?] zookeeperAdmin.xml:508: [tbd: is the next sentence explanation an of what the election port or is it a description of a special case?] 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. zookeeperAdmin.xml:524: If followers fall too far behind a leader, they will be dropped. [tbd: is this a correct rewording: if followers fall beyond this limit, they are dropped?] zookeeperAdmin.xml:551: ZooKeeper will not require updates to be synced to the media. [tbd: useful because..., dangerous because...] zookeeperAdmin.xml:580: Skips ACL checks. [tbd: when? where?] zookeeperAdmin.xml:649: [tbd: Patrick, Ben, et al: I believe the Message Broker team does perform routine monitoring of Zookeeper. But I might be wrong. To your knowledge, is there any monitoring of a Zookeeper deployment that will a Zookeeper sys admin will want to do, outside of Yahoo?] zookeeperAdmin.xml:755: Also, the server lists in each Zookeeper server configuration file should be consistent with one another. [tbd: I'm assuming this last part is true. Is it?] zookeeperAdmin.xml:812: For best results, take note of the following list of good Zookeeper practices. [tbd: I just threw this section in. Do we have list that is is different from the "things to avoid"? If not, I can easily remove this section.] zookeeperOver.xml:162: Ephemeral nodes are useful when you want to implement [tbd]. zookeeperOver.xml:174: And if the 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 [tbd] zookeeperOver.xml:215: For more information on these (guarantees), and how they can be used, see [tbd] zookeeperOver.xml:294: shows the high-level components of the ZooKeeper service. With the exception of the request processor, [tbd: where does the request processor live?] zookeeperOver.xml:298: shows the high-level components of the ZooKeeper service. With the exception of the request processor, each of the servers that make up the ZooKeeper service replicates its own copy of each of components. [tbd: I changed the wording in this sentence from the white paper. Can someone please make sure it is still correct?] zookeeperOver.xml:342: The programming interface to ZooKeeper is deliberately simple. With it, however, you can implement higher order operations, such as synchronizations primitives, group membership, ownership, etc. Some distributed applications have used it to: [tbd: add uses from white paper and video presentation.] zookeeperProgrammers.xml:94: [tbd] zookeeperProgrammers.xml:115: Also, the Simple Programmming Example [tbd] is helpful for understand the basic structure of a ZooKeeper client application. zookeeperProgrammers.xml:142: The following characters are not allowed because [tbd: do we need reasons?] zookeeperProgrammers.xml:172: If the version it supplies doesn't match the actual version of the data, the update will fail. (This behavior can be overridden. For more information see... )[tbd... reference here to the section describing the special version number -1] zookeeperProgrammers.xml:197: More information about watches can be found in the section Zookeeper Watches. [tbd: fix this link] [tbd: Ben there is note from to emphasize that "it is queued". What is "it" and is what we have here sufficient?] zookeeperProgrammers.xml:335: it will send the session id as a part of the connection handshake. As a security measure, the server creates a password for the session id that any ZooKeeper server can validate. [tbd: note from Ben: "perhaps capability is a better word." need clarification on that.] zookeeperProgrammers.xml:601: Locks [tbd:...] in Zookeeper Recipes. [tbd:..]). zookeeperProgrammers.xml:766: See INSTALL for general information about running configure. [tbd: what is INSTALL? a directory? a file?] zookeeperProgrammers.xml:813: To verify that the node's been created: You should see a list of node who are children of the root node "/".[tbd: document all the cli commands (I think this is ben's comment) zookeeperProgrammers.xml:838: Refer to for examples of usage in Java and C. [tbd] zookeeperProgrammers.xml 847: [tbd: This is a new section. The below is just placeholder. Eventually, a subsection on each of those operations, with a little bit of illustrative code for each op.] zookeeperProgrammers.xml:915: Program Structure, with Simple Example zookeeperProgrammers.xml:999: ZooKeeper Whitepaper [tbd: find url] zookeeperProgrammers.xml:1008: API Reference [tbd: find url] zookeeperProgrammers.xml:1062: [tbd] Any other good sources anyone can think of... zookeeperStarted.xml:73: [tbd: should we start w/ a word here about were to get the source, exactly what to download, how to unpack it, and where to put it? Also, does the user need to be in sudo, or can they be under their regular login?] zookeeperStarted.xml:84: This should generate a JAR file called zookeeper.jar. To start Zookeeper, compile and run zookeeper.jar. [tbd, some more instruction here. Perhaps a command line? Are these two steps or one?] zookeeperStarted.xml:139: ZooKeeper logs messages using log4j -- more detail available in the Logging section of the Programmer's Guide.[tbd: real reference needed] zookeeperStarted.xml:201: The C bindings exist in two variants: single threaded and multi-threaded. These differ only in how the messaging loop is done. [tbd: what is the messaging loop? Do we talk about it anywyhere? is this too much info for a getting started guide?] zookeeperStarted.xml:217: The entry syncLimit limits how far out of date a server can be from a leader. [TBD: someone please verify that the previous is true.] zookeeperStarted.xml:232: These are the "electionPort" numbers of the servers (as opposed to clientPorts), that is ports for [tbd: feedback need: what are these ports, exactly?] zookeeperStarted.xml:258: [tbd: what is the other config param? (I believe two are mentioned above.)]