Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 92461200C47 for ; Thu, 30 Mar 2017 08:26:38 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 90CDC160BA1; Thu, 30 Mar 2017 06:26:38 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 40DB1160BA6 for ; Thu, 30 Mar 2017 08:26:36 +0200 (CEST) Received: (qmail 86018 invoked by uid 500); 30 Mar 2017 06:26:35 -0000 Mailing-List: contact commits-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list commits@zookeeper.apache.org Received: (qmail 81494 invoked by uid 99); 30 Mar 2017 06:26:27 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Mar 2017 06:26:27 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id DC4F33A4869 for ; Thu, 30 Mar 2017 06:26:25 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1009357 [29/43] - in /websites/staging/zookeeper/trunk/content: ./ doc/r3.4.10/ doc/r3.4.10/api/ doc/r3.4.10/api/org/ doc/r3.4.10/api/org/apache/ doc/r3.4.10/api/org/apache/zookeeper/ doc/r3.4.10/api/org/apache/zookeeper/class-use/ doc/r3.... Date: Thu, 30 Mar 2017 06:26:23 -0000 To: commits@zookeeper.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20170330062625.DC4F33A4869@svn01-us-west.apache.org> archived-at: Thu, 30 Mar 2017 06:26:38 -0000 Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperProgrammer.html ============================================================================== --- websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperProgrammer.html (added) +++ websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperProgrammer.html Thu Mar 30 06:26:15 2017 @@ -0,0 +1,1083 @@ + + + + + + + +BookKeeper Getting Started Guide + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ +
+ +   +
+ + + + + +
+ +

BookKeeper Getting Started Guide

+ + + + + + +

Programming with BookKeeper

+
+ + +

Instantiating BookKeeper.

+

+ The first step to use BookKeeper is to instantiate a BookKeeper object: +

+

+ + + org.apache.bookkeeper.BookKeeper + + +

+

+ There are three BookKeeper constructors: +

+

+ + + public BookKeeper(String servers) + throws KeeperException, IOException + + +

+

+ where: +

+
    + +
  • + +

    + +servers is a comma-separated list of ZooKeeper servers. +

    + +
  • + +
+

+ + + public BookKeeper(ZooKeeper zk) + throws InterruptedException, KeeperException + + +

+

+ where: +

+
    + +
  • + +

    + +zk is a ZooKeeper object. This constructor is useful when + the application also using ZooKeeper and wants to have a single instance of ZooKeeper. +

    + +
  • + +
+

+ + + public BookKeeper(ZooKeeper zk, ClientSocketChannelFactory channelFactory) + throws InterruptedException, KeeperException + + +

+

+ where: +

+
    + +
  • + +

    + +zk is a ZooKeeper object. This constructor is useful when + the application also using ZooKeeper and wants to have a single instance of ZooKeeper. +

    + +
  • + + +
  • + +

    + +channelFactory is a netty channel object + (org.jboss.netty.channel.socket). +

    + +
  • + +
+ +

Creating a ledger.

+

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 + or asynchronously. The following methods belong + to org.apache.bookkeeper.client.BookKeeper. +

+

+ +Synchronous call: + +

+

+ + + public LedgerHandle createLedger(int ensSize, int qSize, DigestType type, byte passwd[]) + throws KeeperException, InterruptedException, + IOException, BKException + + +

+

+ where: +

+
    + +
  • + +

    + +ensSize is the number of bookies (ensemble size); +

    + +
  • + + +
  • + +

    + +qSize is the write quorum size; +

    + +
  • + + +
  • + +

    + +type is the type of digest used with entries: either MAC or CRC32. +

    + +
  • + + +
  • + +

    + +passwd is a password that authorizes the client to write to the + ledger being created. +

    + +
  • + +
+

+ All further operations on a ledger are invoked through the LedgerHandle + object returned. +

+

+ As a convenience, we provide a createLedger with default parameters (3,2,VERIFIABLE), + and the only two input parameters it requires are a digest type and a password. +

+

+ +Asynchronous call: + +

+

+ + + public void asyncCreateLedger(int ensSize, + int qSize, + DigestType type, + byte passwd[], + CreateCallback cb, + Object ctx + ) + + +

+

+ The parameters are the same of the synchronous version, with the + exception of cb and ctx. CreateCallback + is an interface in org.apache.bookkeeper.client.AsyncCallback, and + a class implementing it has to implement a method called createComplete + that has the following signature: +

+

+ + + void createComplete(int rc, LedgerHandle lh, Object ctx); + + +

+

+ where: +

+
    + +
  • + +

    + +rc is a return code (please refer to org.apache.bookeeper.client.BKException for a list); +

    + +
  • + + +
  • + +

    + +lh is a LedgerHandle object to manipulate a ledger; +

    + +
  • + + +
  • + +

    + +ctx is a control object for accountability purposes. It can be essentially any object the application is happy with. +

    + +
  • + +
+

+ The ctx object passed as a parameter to the call to create a ledger + is the one same returned in the callback. +

+ +

Adding entries to a ledger.

+

+ Once we have a ledger handle lh obtained through a call to create a ledger, we + can start writing entries. As with creating ledgers, we can write both synchronously and + asynchronously. The following methods belong + to org.apache.bookkeeper.client.LedgerHandle. +

+

+ +Synchronous call: + +

+

+ + + public long addEntry(byte[] data) + throws InterruptedException + + +

+

+ where: +

+
    + +
  • + +

    + +data is a byte array; +

    + +
  • + +
+

+ A call to addEntry returns the status of the operation (please refer to org.apache.bookeeper.client.BKDefs for a list); +

+

+ +Asynchronous call: + +

+

+ + + public void asyncAddEntry(byte[] data, AddCallback cb, Object ctx) + + +

+

+ It also takes a byte array as the sequence of bytes to be stored as an entry. Additionaly, it takes + a callback object cb and a control object ctx. The callback object must implement + the AddCallback interface in org.apache.bookkeeper.client.AsyncCallback, and + a class implementing it has to implement a method called addComplete + that has the following signature: +

+

+ + + void addComplete(int rc, LedgerHandle lh, long entryId, Object ctx); + + +

+

+ where: +

+
    + +
  • + +

    + +rc is a return code (please refer to org.apache.bookeeper.client.BKDefs for a list); +

    + +
  • + + +
  • + +

    + +lh is a LedgerHandle object to manipulate a ledger; +

    + +
  • + + +
  • + +

    + +entryId is the identifier of entry associated with this request; +

    + +
  • + + +
  • + +

    + +ctx is control object used for accountability purposes. It can be any object the application is happy with. +

    + +
  • + +
+ +

Closing a ledger.

+

+ Once a client is done writing, it closes the ledger. The following methods belong + to org.apache.bookkeeper.client.LedgerHandle. +

+

+ +Synchronous close: + +

+

+ + + public void close() + throws InterruptedException + + +

+

+ It takes no input parameters. +

+

+ +Asynchronous close: + +

+

+ + + public void asyncClose(CloseCallback cb, Object ctx) + throws InterruptedException + + +

+

+ It takes a callback object cb and a control object ctx. The callback object must implement + the CloseCallback interface in org.apache.bookkeeper.client.AsyncCallback, and + a class implementing it has to implement a method called closeComplete + that has the following signature: +

+

+ + + void closeComplete(int rc, LedgerHandle lh, Object ctx) + + +

+

+ where: +

+
    + +
  • + +

    + +rc is a return code (please refer to org.apache.bookeeper.client.BKDefs for a list); +

    + +
  • + + +
  • + +

    + +lh is a LedgerHandle object to manipulate a ledger; +

    + +
  • + + +
  • + +

    + +ctx is control object used for accountability purposes. +

    + +
  • + +
+ +

Opening a ledger.

+

+ To read from a ledger, a client must open it first. The following methods belong + to org.apache.bookkeeper.client.BookKeeper. +

+

+ +Synchronous open: + +

+

+ + + public LedgerHandle openLedger(long lId, DigestType type, byte passwd[]) + throws InterruptedException, BKException + + +

+
    + +
  • + +

    + +ledgerId is the ledger identifier; +

    + +
  • + + +
  • + +

    + +type is the type of digest used with entries: either MAC or CRC32. +

    + +
  • + + +
  • + +

    + +passwd is a password to access the ledger (used only in the case of VERIFIABLE ledgers); +

    + +
  • + +
+

+ +Asynchronous open: + +

+

+ + + public void asyncOpenLedger(long lId, DigestType type, byte passwd[], OpenCallback cb, Object ctx) + + +

+

+ It also takes a a ledger identifier and a password. Additionaly, it takes a callback object + cb and a control object ctx. The callback object must implement + the OpenCallback interface in org.apache.bookkeeper.client.AsyncCallback, and + a class implementing it has to implement a method called openComplete + that has the following signature: +

+

+ + + public void openComplete(int rc, LedgerHandle lh, Object ctx) + + +

+

+ where: +

+
    + +
  • + +

    + +rc is a return code (please refer to org.apache.bookeeper.client.BKDefs for a list); +

    + +
  • + + +
  • + +

    + +lh is a LedgerHandle object to manipulate a ledger; +

    + +
  • + + +
  • + +

    + +ctx is control object used for accountability purposes. +

    + +
  • + +
+ +

Reading from ledger

+

+ Read calls may request one or more consecutive entries. The following methods belong + to org.apache.bookkeeper.client.LedgerHandle. +

+

+ +Synchronous read: + +

+

+ + + public Enumeration<LedgerEntry> readEntries(long firstEntry, long lastEntry) + throws InterruptedException, BKException + + +

+
    + +
  • + +

    + +firstEntry is the identifier of the first entry in the sequence of entries to read; +

    + +
  • + + +
  • + +

    + +lastEntry is the identifier of the last entry in the sequence of entries to read. +

    + +
  • + +
+

+ +Asynchronous read: + +

+

+ + + public void asyncReadEntries(long firstEntry, + long lastEntry, ReadCallback cb, Object ctx) + throws BKException, InterruptedException + + +

+

+ It also takes a first and a last entry identifiers. Additionaly, it takes a callback object + cb and a control object ctx. The callback object must implement + the ReadCallback interface in org.apache.bookkeeper.client.AsyncCallback, and + a class implementing it has to implement a method called readComplete + that has the following signature: +

+

+ + + void readComplete(int rc, LedgerHandle lh, Enumeration<LedgerEntry> seq, Object ctx) + + +

+

+ where: +

+
    + +
  • + +

    + +rc is a return code (please refer to org.apache.bookeeper.client.BKDefs for a list); +

    + +
  • + + +
  • + +

    + +lh is a LedgerHandle object to manipulate a ledger; +

    + +
  • + + +
  • + +

    + +seq is a Enumeration<LedgerEntry> object to containing the list of entries requested; +

    + +
  • + + +
  • + +

    + +ctx is control object used for accountability purposes. +

    + +
  • + +
+ +

Deleting a ledger

+

+ 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. + The following methods belong to org.apache.bookkeeper.client.BookKeeper. +

+

+ +Synchronous delete: + +

+

+ + + public void deleteLedger(long lId) throws InterruptedException, BKException + + +

+
    + +
  • + +

    + +lId is the ledger identifier; +

    + +
  • + +
+

+ +Asynchronous delete: + +

+

+ + + public void asyncDeleteLedger(long lId, DeleteCallback cb, Object ctx) + + +

+

+ It takes a ledger identifier. Additionally, it takes a callback object + cb and a control object ctx. The callback object must implement + the DeleteCallback interface in org.apache.bookkeeper.client.AsyncCallback, and + a class implementing it has to implement a method called deleteComplete + that has the following signature: +

+

+ + + void deleteComplete(int rc, Object ctx) + + +

+

+ where: +

+
    + +
  • + +

    + +rc is a return code (please refer to org.apache.bookeeper.client.BKDefs for a list); +

    + +
  • + + +
  • + +

    + +ctx is control object used for accountability purposes. +

    + +
  • + +
+
+ +

+ +

+
+ +
 
+
+ + + Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperProgrammer.pdf ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperProgrammer.pdf ------------------------------------------------------------------------------ svn:mime-type = application/pdf Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStarted.html ============================================================================== --- websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStarted.html (added) +++ websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStarted.html Thu Mar 30 06:26:15 2017 @@ -0,0 +1,448 @@ + + + + + + + +BookKeeper Getting Started Guide + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ +
+ +   +
+ + + + + +
+ +

BookKeeper Getting Started Guide

+ + + + + + +

Getting Started: Setting up BookKeeper to write logs.

+
+

This document contains information to get you started quickly with + BookKeeper. It is aimed primarily at developers willing to try it out, and + contains simple installation instructions for a simple BookKeeper installation + and a simple programming example. For further programming detail, please refer to + BookKeeper Programmer's Guide. +

+ +

Pre-requisites

+

See + System Requirements in the Admin guide.

+ +

Download

+

BookKeeper is distributed along with ZooKeeper. To get a ZooKeeper distribution, + download a recent + + stable release from one of the Apache Download + Mirrors.

+ +

LocalBookKeeper

+

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. +

+ +

Setting up bookies

+

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 + to start with. +

+

+ For each bookie, we need to execute a command like the following: +

+

+ + java -cp .:./zookeeper-<version>-bookkeeper.jar:./zookeeper-<version>.jar\ + :lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar -Dlog4j.configuration=log4j.properties\ + org.apache.bookkeeper.proto.BookieServer 3181 127.0.0.1:2181 /path_to_log_device/\ + /path_to_ledger_device/ + +

+

"/path_to_log_device/" and "/path_to_ledger_device/" are different paths. Also, port 3181 + is the port that a bookie listens on for connection requests from clients. 127.0.0.1:2181 is the hostname:port + for the ZooKeeper server. In this example, the standalone ZooKeeper server is running locally on port 2181. + If we had multiple ZooKeeper servers, this parameter would be a comma separated list of all the hostname:port + values corresponding to them. +

+ +

Setting up ZooKeeper

+

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 + standalone mode. Once we have the server running, we need to create a few znodes: +

+
    + +
  1. + +

    + + /ledgers + +

    + +
  2. + + +
  3. + +

    + + /ledgers/available + +

    + +
  4. + + +
  5. + +

    For each bookie, we add one znode such that the name of the znode is the + concatenation of the machine name and the port number that the bookie is + listening on. For example, if a bookie is running on bookie.foo.com an is listening + on port 3181, we add a znode + /ledgers/available/bookie.foo.com:3181. +

    + +
  6. + +
+ +

Example

+

+ In the following excerpt of code, we: +

+
    + +
  1. + +

    + Create a ledger; +

    + +
  2. + + +
  3. + +

    + Write to the ledger; +

    + +
  4. + + +
  5. + +

    + Close the ledger; +

    + +
  6. + + +
  7. + +

    + Open the same ledger for reading; +

    + +
  8. + + +
  9. + +

    + Read from the ledger; +

    + +
  10. + + +
  11. + +

    + Close the ledger again; +

    + +
  12. + +
+
+LedgerHandle lh = bkc.createLedger(ledgerPassword);
+ledgerId = lh.getId();
+ByteBuffer entry = ByteBuffer.allocate(4);
+
+for(int i = 0; i < 10; i++){
+	entry.putInt(i);
+	entry.position(0);
+	entries.add(entry.array());				
+	lh.addEntry(entry.array());
+}
+lh.close();
+lh = bkc.openLedger(ledgerId, ledgerPassword);		
+			
+Enumeration<LedgerEntry> ls = lh.readEntries(0, 9);
+int i = 0;
+while(ls.hasMoreElements()){
+	ByteBuffer origbb = ByteBuffer.wrap(
+				entries.get(i++));
+	Integer origEntry = origbb.getInt();
+	ByteBuffer result = ByteBuffer.wrap(
+				ls.nextElement().getEntry());
+
+	Integer retrEntry = result.getInt();
+}
+lh.close();
+	    
+
+ +

+ +

+
+ +
 
+
+ + + Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStarted.pdf ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStarted.pdf ------------------------------------------------------------------------------ svn:mime-type = application/pdf Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStream.html ============================================================================== --- websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStream.html (added) +++ websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStream.html Thu Mar 30 06:26:15 2017 @@ -0,0 +1,612 @@ + + + + + + + +Streaming with BookKeeper + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ +
+ +   +
+ + + + + +
+ +

Streaming with BookKeeper

+ + + + + + +

Summary

+
+

+ When using the BookKeeper API, an application has to split the data to write into entries, each + entry being a byte array. This is natural for many applications. For example, when using BookKeeper + for write-ahead logging, an application typically wants to write the modifications corresponding + to a command or a transaction. Some other applications, however, might not have a natural boundary + for entries, and may prefer to write and read streams of bytes. This is exactly the purpose of the + stream API we have implemented on top of BookKeeper. +

+

+ The stream API is implemented in the package Streaming, and it contains two main classes: LedgerOutputStream and + LedgerInputStream. The class names are indicative of what they do. +

+
+ + + +

Writing a stream of bytes

+
+

+ Class LedgerOutputStream implements two constructors and five public methods: +

+

+ + + public LedgerOutputStream(LedgerHandle lh) + + +

+

+ where: +

+
    + +
  • + +

    + +lh is a ledger handle for a previously created and open ledger. +

    + +
  • + +
+

+ + + public LedgerOutputStream(LedgerHandle lh, int size) + + +

+

+ where: +

+
    + +
  • + +

    + +lh is a ledger handle for a previously created and open ledger. +

    + +
  • + + +
  • + +

    + +size is the size of the byte buffer to store written bytes before flushing. +

    + +
  • + +
+

+ +Closing a stream. This call closes the stream by flushing the write buffer. +

+

+ + + public void close() + + +

+

+ which has no parameters. +

+

+ +Flushing a stream. This call essentially flushes the write buffer. +

+

+ + + public synchronized void flush() + + +

+

+ which has no parameters. +

+

+ +Writing bytes. There are three calls for writing bytes to a stream. +

+

+ + + public synchronized void write(byte[] b) + + +

+

+ where: +

+
    + +
  • + +

    + +b is an array of bytes to write. +

    + +
  • + +
+

+ + + public synchronized void write(byte[] b, int off, int len) + + +

+

+ where: +

+
    + +
  • + +

    + +b is an array of bytes to write. +

    + +
  • + + +
  • + +

    + +off is a buffer offset. +

    + +
  • + + +
  • + +

    + +len is the length to write. +

    + +
  • + +
+

+ + + public synchronized void write(int b) + + +

+

+ where: +

+
    + +
  • + +

    + +b contains a byte to write. The method writes the least significant byte of the integer four bytes. +

    + +
  • + +
+
+ + + +

Reading a stream of bytes

+
+

+ Class LedgerOutputStream implements two constructors and four public methods: +

+

+ + + public LedgerInputStream(LedgerHandle lh) + throws BKException, InterruptedException + + +

+

+ where: +

+
    + +
  • + +

    + +lh is a ledger handle for a previously created and open ledger. +

    + +
  • + +
+

+ + + public LedgerInputStream(LedgerHandle lh, int size) + throws BKException, InterruptedException + + +

+

+ where: +

+
    + +
  • + +

    + +lh is a ledger handle for a previously created and open ledger. +

    + +
  • + + +
  • + +

    + +size is the size of the byte buffer to store bytes that the application + will eventually read. +

    + +
  • + +
+

+ +Closing. There is one call to close an input stream, but the call + is currently empty and the application is responsible for closing the ledger handle. +

+

+ + + public void close() + + +

+

+ which has no parameters. +

+

+ +Reading. There are three calls to read from the stream. +

+

+ + + public synchronized int read() + throws IOException + + +

+

+ which has no parameters. +

+

+ + + public synchronized int read(byte[] b) + throws IOException + + +

+

+ where: +

+
    + +
  • + +

    + +b is a byte array to write to. +

    + +
  • + +
+

+ + + public synchronized int read(byte[] b, int off, int len) + throws IOException + + +

+

+ where: +

+
    + +
  • + +

    + +b is a byte array to write to. +

    + +
  • + + +
  • + +

    + +off is an offset for byte array b. +

    + +
  • + + +
  • + +

    + +len is the length in bytes to write to b. +

    + +
  • + +
+
+ +

+ +

+
+ +
 
+
+ + + Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStream.pdf ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/bookkeeperStream.pdf ------------------------------------------------------------------------------ svn:mime-type = application/pdf Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/broken-links.xml ============================================================================== --- websites/staging/zookeeper/trunk/content/doc/r3.4.10/broken-links.xml (added) +++ websites/staging/zookeeper/trunk/content/doc/r3.4.10/broken-links.xml Thu Mar 30 06:26:15 2017 @@ -0,0 +1,2 @@ + + Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/2pc.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/2pc.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/bk-overview.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/bk-overview.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/built-with-forrest-button.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/built-with-forrest-button.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/favicon.ico ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/favicon.ico ------------------------------------------------------------------------------ svn:mime-type = image/x-icon Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/hadoop-logo.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/hadoop-logo.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/instruction_arrow.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/instruction_arrow.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/state_dia.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/state_dia.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkcomponents.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkcomponents.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zknamespace.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zknamespace.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkperfRW-3.2.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkperfRW-3.2.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkperfRW.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkperfRW.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkperfreliability.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkperfreliability.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkservice.jpg ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zkservice.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zookeeper_small.gif ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/images/zookeeper_small.gif ------------------------------------------------------------------------------ svn:mime-type = image/gif Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/index.html ============================================================================== --- websites/staging/zookeeper/trunk/content/doc/r3.4.10/index.html (added) +++ websites/staging/zookeeper/trunk/content/doc/r3.4.10/index.html Thu Mar 30 06:26:15 2017 @@ -0,0 +1,391 @@ + + + + + + + +ZooKeeper: Because Coordinating Distributed Systems is a Zoo + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ +
+ +   +
+ + + + + +
+ +

ZooKeeper: Because Coordinating Distributed Systems is a Zoo

+
+ +

ZooKeeper is a high-performance coordination service for + distributed applications. It exposes common services - such as + naming, configuration management, synchronization, and group + services - in a simple interface so you don't have to write them + from scratch. You can use it off-the-shelf to implement + consensus, group management, leader election, and presence + protocols. And you can build on it for your own, specific needs. +

+ + +

+ The following documents describe concepts and procedures to get + you started using ZooKeeper. If you have more questions, please + ask the mailing list or browse the + archives. +

+ +
    + + +
  • +ZooKeeper Overview +

    Technical Overview Documents for Client Developers, Adminstrators, and Contributors

    + +
      +
    • +Overview - a bird's eye view of ZooKeeper, including design concepts and architecture
    • + +
    • +Getting Started - a tutorial-style guide for developers to install, run, and program to ZooKeeper
    • + +
    • +Release Notes - new developer and user facing features, improvements, and incompatibilities
    • + +
    + +
  • + + +
  • +Developers +

    Documents for Developers using the ZooKeeper Client API

    + + + +
  • + + +
  • +Administrators & Operators +

    Documents for Administrators and Operations Engineers of ZooKeeper Deployments

    + +
      + +
    • +Administrator's Guide - a guide for system administrators and anyone else who might deploy ZooKeeper
    • + +
    • +Quota Guide - a guide for system administrators on Quotas in ZooKeeper.
    • + +
    • +JMX - how to enable JMX in ZooKeeper
    • + +
    • +Hierarchical quorums +
    • + +
    • +Observers - non-voting ensemble members that easily improve ZooKeeper's scalability
    • + +
    + +
  • + + +
  • +Contributors +

    Documents for Developers Contributing to the ZooKeeper Open Source Project

    + + + +
  • + + +
  • +Miscellaneous ZooKeeper Documentation + + + +
  • + + +
  • +BookKeeper Documentation + +

    BookKeeper is a highly-available system that implements high-performance write-ahead logging. It uses ZooKeeper for metadata, + which is the main reason for being a ZooKeeper contrib. +

    + + + +
  • + +
+ +
+ +
 
+
+ + + Added: websites/staging/zookeeper/trunk/content/doc/r3.4.10/index.pdf ============================================================================== Binary file - no diff available. Propchange: websites/staging/zookeeper/trunk/content/doc/r3.4.10/index.pdf ------------------------------------------------------------------------------ svn:mime-type = application/pdf