Author: phunt Date: Wed Feb 4 01:03:03 2009 New Revision: 740544 URL: http://svn.apache.org/viewvc?rev=740544&view=rev Log: Preparing for release 3.1.0 Modified: hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.html hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.pdf hadoop/zookeeper/branches/branch-3.1/src/docs/src/documentation/content/xdocs/releasenotes.xml Modified: hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.html URL: http://svn.apache.org/viewvc/hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.html?rev=740544&r1=740543&r2=740544&view=diff ============================================================================== --- hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.html (original) +++ hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.html Wed Feb 4 01:03:03 2009 @@ -5,7 +5,7 @@ -ZooKeeper 3.0.0 Release Notes +ZooKeeper 3.1.0 Release Notes @@ -184,36 +184,11 @@ PDF -icon
PDF
-

ZooKeeper 3.0.0 Release Notes

+

ZooKeeper 3.1.0 Release Notes

@@ -223,299 +198,24 @@

-These release notes include new developer and user facing incompatibilities, features, and major improvements. -

- - - - - - -

Migration Instructions when Upgrading to 3.0.0

-
-

- -You should only have to read this section if you are upgrading from a previous version of ZooKeeper to version 3.0.0, otw skip down to changes - -

-

-A small number of changes in this release have resulted in non-backward compatible Zookeeper client user code and server instance data. The following instructions provide details on how to migrate code and date from version 2.2.1 to version 3.0.0. -

-

-Note: ZooKeeper increments the major version number (major.minor.fix) when backward incompatible changes are made to the source base. As part of the migration from SourceForge we changed the package structure (com.yahoo.zookeeper.* to org.apache.zookeeper.*) and felt it was a good time to incorporate some changes that we had been withholding. As a result the following will be required when migrating from 2.2.1 to 3.0.0 version of ZooKeeper. -

- - -

Migrating Client Code

-

- The underlying client-server protocol has changed in version 3.0.0 - of ZooKeeper. As a result clients must be upgraded along with - serving clusters to ensure proper operation of the system (old - pre-3.0.0 clients are not guaranteed to operate against upgraded - 3.0.0 servers and vice-versa). -

- -

Watch Management

-

-In previous releases of ZooKeeper any watches registered by clients were lost if the client lost a connection to a ZooKeeper server. -This meant that developers had to track watches they were interested in and reregister them if a session disconnect event was recieved. -In this release the client library tracks watches that a client has registered and reregisters the watches when a connection is made to a new server. -Applications that still manually reregister interest should continue working properly as long as they are able to handle unsolicited watches. -For example, an old application may register a watch for /foo and /goo, lose the connection, and reregister only /goo. -As long as the application is able to recieve a notification for /foo, (probably ignoring it) the applications does not to be changes. -One caveat to the watch management: it is possible to miss an event for the creation and deletion of a znode if watching for creation and both the create and delete happens while the client is disconnected from ZooKeeper. -

-

-This release also allows clients to specify call specific watch functions. -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. -

- -

Java API

-
    - -
  1. -

    The java package structure has changed from com.yahoo.zookeeper* to org.apache.zookeeper*. This will probably effect all of your java code which makes use of ZooKeeper APIs (typically import statements)

    -
  2. - -
  3. -

    A number of constants used in the client ZooKeeper API were re-specified using enums (rather than ints). See ZOOKEEPER-7, ZOOKEEPER-132 and ZOOKEEPER-139 for full details

    -
  4. - -
  5. -

    -ZOOKEEPER-18 removed KeeperStateChanged, use KeeperStateDisconnected instead

    -
  6. - -
-

-Also see the current java API - -

- -

C API

-
    - -
  1. -

    A number of constants used in the client ZooKeeper API were renamed in order to reduce namespace collision, see ZOOKEEPER-6 for full details

    -
  2. - -
- -

Migrating Server Data

-

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

- -

- -The following must be run once, and only once, when upgrading the ZooKeeper server instances to version 3.0.0. - +These release notes include new developer and user facing +incompatibilities, features, and major improvements.

-
-
Note
-
- -

- The <dataLogDir> and <dataDir> directories referenced - below are specified by the dataLogDir - and dataDir specification in your - ZooKeeper config file - respectively. dataLogDir defaults to the - value of dataDir if not specified explicitly - in the ZooKeeper server config file (in which case provide the - same directory for both parameters to the upgrade utility). -

-
-
-
    - -
  1. -

    Shutdown the ZooKeeper server cluster.

    -
  2. - -
  3. -

    Backup your <dataLogDir> and <dataDir> directories

    -
  4. - -
  5. -

    Run upgrade using

    - -
      - -
    • -

      -bin/zkServer.sh upgrade <dataLogDir> <dataDir> -

      -
    • - -
    - -

    or

    - -
      - -
    • -

      -java -classpath pathtolog4j:pathtozookeeper.jar UpgradeMain <dataLogDir> <dataDir> -

      -
    • - -
    - -

    where <dataLogDir> is the directory where all transaction logs (log.*) are stored. <dataDir> is the directory where all the snapshots (snapshot.*) are stored.

    - -
  6. - -
  7. -

    Restart the cluster.

    -
  8. - -
-

- If you have any failure during the upgrade procedure keep reading to sanitize your database. -

-

This is how upgrade works in ZooKeeper. This will help you troubleshoot in case you have problems while upgrading

-
    -
  1. -

    Upgrade moves files from <dataLogDir> and <dataDir> to <dataLogDir>/version-1/ and <dataDir>/version-1 respectively (version-1 sub-directory is created by the upgrade utility).

    -
  2. - -
  3. -

    Upgrade creates a new version sub-directory <dataDir>/version-2 and <dataLogDir>/version-2

    -
  4. - -
  5. -

    Upgrade reads the old database from <dataDir>/version-1 and <dataLogDir>/version-1 into the memory and creates a new upgraded snapshot.

    -
  6. - -
  7. -

    Upgrade writes the new database in <dataDir>/version-2.

    -
  8. - -
-

Troubleshooting.

-
    - -
  1. -

    In case you start ZooKeeper 3.0 without upgrading from 2.0 on a 2.0 database - the servers will start up with an empty database. - This is because the servers assume that <dataDir>/version-2 and <dataLogDir>/version-2 will have the database to start with. Since this will be empty - in case of no upgrade, the servers will start with an empty database. In such a case, shutdown the ZooKeeper servers, remove the version-2 directory (remember - this will lead to loss of updates after you started 3.0.) - and then start the upgrade procedure.

    -
  2. - -
  3. -

    If the upgrade fails while trying to rename files into the version-1 directory, you should try and move all the files under <dataDir>/version-1 - and <dataLogDir>/version-1 to <dataDir> and <dataLogDir> respectively. Then try upgrade again. -

    - -
  4. - -
  5. -

    If you do not wish to run with ZooKeeper 3.0 and prefer to run with ZooKeeper 2.0 and have already upgraded - you can run ZooKeeper 2 with - the <dataDir> and <dataLogDir> directories changed to <dataDir>/version-1 and <dataLogDir>/version-1. Remember that you will lose all the updates that you made after the upgrade. -

    -
  6. - -
- -

Migrating Server Configuration

-

-There is a significant change to the ZooKeeper server configuration file. -

-

The default election algorithm, specified by - the electionAlg configuration attribute, has - changed from a default of 0 to a default - of 3. See - Cluster - Options section of the administrators guide, specifically - the electionAlg - and server.X properties. -

-

- You will either need to explicitly - set electionAlg to it's previous default value - of 0 or change - your server.X options to include the leader - election port. -

-
+

See 3.0 +release notes and migration instructions if you are upgrading +from version 2 of ZooKeeper (SourceForge) to version 3 or +later.

- -

Changes Since ZooKeeper 2.2.1

+ +

Changes Since ZooKeeper 3.0.1

-

-Version 2.2.1 code, documentation, binaries, etc... are still accessible on SourceForge - -

- + -Changes Since ZooKeeper 2.2.1 +Changes Since ZooKeeper 3.0.1 @@ -526,1336 +226,384 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + - - - - - - - - + + - - - - + - - - - + - - - - + - - - - + - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + Modified: hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.pdf URL: http://svn.apache.org/viewvc/hadoop/zookeeper/branches/branch-3.1/docs/releasenotes.pdf?rev=740544&r1=740543&r2=740544&view=diff ============================================================================== Binary files - no diff available.
Changes Since ZooKeeper 2.2.1Changes Since ZooKeeper 3.0.1
- - ZOOKEEPER-43 - - Server side of auto reset watches. -
- - ZOOKEEPER-132 - - Create Enum to replace CreateFlag in ZooKepper.create method -
- - ZOOKEEPER-139 - - Create Enums for WatcherEvent's KeeperState and EventType -
- - ZOOKEEPER-18 - - keeper state inconsistency -
- - ZOOKEEPER-38 - - headers in log/snap files -
- - ZOOKEEPER-8 - - Stat enchaned to include num of children and size -
- - ZOOKEEPER-6 - - List of problem identifiers in zookeeper.h -
- - ZOOKEEPER-7 - - Use enums rather than ints for types and state -
- - ZOOKEEPER-27 - - Unique DB identifiers for servers and clients -
- - ZOOKEEPER-32 - - CRCs for ZooKeeper data -
- - ZOOKEEPER-33 - - Better ACL management -
- - ZOOKEEPER-203 - - fix datadir typo in releasenotes - Incompatibilities
- - ZOOKEEPER-145 - - write detailed release notes for users migrating from 2.x to 3.0 - ZOOKEEPER-255 zoo_set() api does not return stat datastructure. +
- - ZOOKEEPER-23 - - Auto reset of watches on reconnect -
- - ZOOKEEPER-191 - - forrest docs for upgrade. - New Feature
- - ZOOKEEPER-201 - - validate magic number when reading snapshot and transaction logs - ZOOKEEPER-135 Fat jar build target +
- - ZOOKEEPER-200 - - the magic number for snapshot and log must be different - ZOOKEEPER-215 expand system test environment +
- - ZOOKEEPER-199 - - fix log messages in persistence code - ZOOKEEPER-231 Quotas in zookeeper +
- - ZOOKEEPER-197 - - create checksums for snapshots - ZOOKEEPER-256 support use of JMX to manage log4j configuration at runtime +
- - ZOOKEEPER-198 - - apache license header missing from FollowerSyncRequest.java - ZOOKEEPER-276 Bookkeeper contribution +
- - ZOOKEEPER-5 - - Upgrade Feature in Zookeeper server. - Task
- - ZOOKEEPER-194 - - Fix terminology in zookeeperAdmin.xml -
- - ZOOKEEPER-151 - - Document change to server configuration -
- - ZOOKEEPER-193 - - update java example doc to compile with latest zookeeper -
- - ZOOKEEPER-187 - - CreateMode api docs missing -
- - ZOOKEEPER-186 - - add new "releasenotes.xml" to forrest documentation -
- - ZOOKEEPER-190 - - Reorg links to docs and navs to docs into related sections -
- - ZOOKEEPER-189 - - forrest build not validated xml of input documents -
- - ZOOKEEPER-188 - - Check that election port is present for all servers -
- - ZOOKEEPER-185 - - Improved version of FLETest -
- - ZOOKEEPER-184 - - tests: An explicit include derective is needed for the usage of memcpy functions -
- - ZOOKEEPER-183 - - Array subscript is above array bounds in od_completion, src/cli.c. -
- - ZOOKEEPER-182 - - zookeeper_init accepts empty host-port string and returns valid pointer to zhandle_t. - ZOOKEEPER-210 Require Java 6 +
- - ZOOKEEPER-17 - - zookeeper_init doc needs clarification - Bug
- - ZOOKEEPER-181 - - Some Source Forge Documents did not get moved over: javaExample, zookeeperTutorial, zookeeperInternals - ZOOKEEPER-16 Need to do path validation +
- - ZOOKEEPER-180 - - Placeholder sections needed in document for new topics that the umbrella jira discusses - ZOOKEEPER-204 SetWatches needs to be the first message after auth messages to the server +
- - ZOOKEEPER-179 - - Programmer's Guide "Basic Operations" section is missing content - ZOOKEEPER-205 Error on version-info when compiling from the tarball distribution +
- - ZOOKEEPER-178 - - FLE test. - ZOOKEEPER-206 documentation tab should contain the version number (and other small site changes) +
- - ZOOKEEPER-159 - - Cover two corner cases of leader election - ZOOKEEPER-208 Zookeeper C client uses API that are not thread safe, causing crashes when multiple instances are active +
- - ZOOKEEPER-156 - - update programmer guide with acl details from old wiki page - ZOOKEEPER-209 nullpointerexception if election port is not specified. +
- - ZOOKEEPER-154 - - reliability graph diagram in overview doc needs context - ZOOKEEPER-212 snapshot is synchronous in 3.0 +
- - ZOOKEEPER-157 - - Peer can't find existing leader - ZOOKEEPER-213 programmer guide C api docs are out of sync with latest zookeeper.h +
- - ZOOKEEPER-155 - - improve "the zookeeper project" section of overview doc - ZOOKEEPER-218 error in barrier recipe example code +
- - ZOOKEEPER-140 - - Deadlock in QuorumCnxManager - ZOOKEEPER-219 events.poll timeout in watcher test too short +
- - ZOOKEEPER-147 - - This is version of the documents with most of the [tbd...] scrubbed out - ZOOKEEPER-221 log message in ZkWatchManager.materialize missing conditional +
- - ZOOKEEPER-150 - - zookeeper build broken - ZOOKEEPER-226 exists calls fails on server if node has null data +
- - ZOOKEEPER-136 - - sync causes hang in all followers of quorum. - ZOOKEEPER-227 gcc warning from recordio.h +
- - ZOOKEEPER-134 - - findbugs cleanup - ZOOKEEPER-228 apache header missing in DBtest +
- - ZOOKEEPER-133 - - hudson tests failing intermittently - ZOOKEEPER-232 testablezookeeper file is missing apache licence headers. +
- - ZOOKEEPER-144 - - add tostring support for watcher event, and enums for event type/state - ZOOKEEPER-240 Yet another npe +
- - ZOOKEEPER-21 - - Improve zk ctor/watcher - ZOOKEEPER-241 Build of a distro fails after clean target is run +
- - ZOOKEEPER-142 - - Provide Javadoc as to the maximum size of the data byte array that may be stored within a znode - ZOOKEEPER-242 zookeeper c tests are faliling.. +
- - ZOOKEEPER-93 - - Create Documentation for Zookeeper - ZOOKEEPER-245 update readme/quickstart to be release tar, rather than source, based +
- - ZOOKEEPER-117 - - threading issues in Leader election - ZOOKEEPER-247 fix formatting of C API in ACL section of programmer guide +
- - ZOOKEEPER-137 - - client watcher objects can lose events - ZOOKEEPER-249 QuorumPeer.getClientPort() always returns -1 +
- - ZOOKEEPER-131 - - Old leader election can elect a dead leader over and over again - ZOOKEEPER-250 isvalidsnapshot should handle the case of 0 snapshot files better. +
- - ZOOKEEPER-130 - - update build.xml to support apache release process - ZOOKEEPER-251 NullPointerException stopping and starting Zookeeper servers +
- - ZOOKEEPER-118 - - findbugs flagged switch statement in followerrequestprocessor.run - ZOOKEEPER-252 PurgeTxnLog is not handling the new dataDir directory structure +
- - ZOOKEEPER-115 - - Potential NPE in QuorumCnxManager - ZOOKEEPER-253 documentation of DataWatcher state transition is misleading regarding auto watch reset on reconnect +
- - ZOOKEEPER-114 - - cleanup ugly event messages in zookeeper client - ZOOKEEPER-254 there is currently no way for a user to test session expiration in their code +
- - ZOOKEEPER-112 - - src/java/main ZooKeeper.java has test code embedded into it. - ZOOKEEPER-257 Review logging level for WARN/ERROR log messages, some misclassified +
- - ZOOKEEPER-39 - - Use Watcher objects rather than boolean on read operations. - ZOOKEEPER-258 docs incorrectly state max client timeout as 60 seconds (it's based on server ticktime) +
- - ZOOKEEPER-97 - - supports optional output directory in code generator. - ZOOKEEPER-266 KeeperState missing javadoc for values +
- - ZOOKEEPER-101 - - Integrate ZooKeeper with "violations" feature on hudson - ZOOKEEPER-267 java client incorrectly generating syncdisconnected event when in disconnected state +
- - ZOOKEEPER-105 - - Catch Zookeeper exceptions and print on the stderr. - ZOOKEEPER-268 tostring on jute generated objects can cause NPE +
- - ZOOKEEPER-42 - - Change Leader Election to fast tcp. - ZOOKEEPER-272 getChildren can fail for large numbers of children +
- - ZOOKEEPER-48 - - auth_id now handled correctly when no auth ids present - ZOOKEEPER-273 Zookeeper c client build should not depend on CPPUNIT +
- - ZOOKEEPER-44 - - Create sequence flag children with prefixes of 0's so that they can be lexicographically sorted. - ZOOKEEPER-275 Bug in FastLeaderElection +
- - ZOOKEEPER-108 - - Fix sync operation reordering on a Quorum. - ZOOKEEPER-284 JMX doesn't get the clientPort correctly +
- - ZOOKEEPER-25 - - Fuse module for Zookeeper. - ZOOKEEPER-285 the stat command does not return the correct mode +
- - ZOOKEEPER-58 - - Race condition on ClientCnxn.java -
- - ZOOKEEPER-56 - - Add clover support to build.xml. -
- - ZOOKEEPER-75 - - register the ZooKeeper mailing lists with nabble.com -
- - ZOOKEEPER-54 - - remove sleeps in the tests. -
- - ZOOKEEPER-55 - - build.xml failes to retrieve a release number from SVN and the ant target "dist" fails -
- - ZOOKEEPER-89 - - invoke WhenOwnerListener.whenNotOwner when the ZK connection fails -
- - ZOOKEEPER-90 - - invoke WhenOwnerListener.whenNotOwner when the ZK session expires and the znode is the leader -
- - ZOOKEEPER-82 - - Make the ZooKeeperServer more DI friendly. -
- - ZOOKEEPER-110 - - Build script relies on svnant, which is not compatible with subversion 1.5 working copies -
- - ZOOKEEPER-111 - - Significant cleanup of existing tests. -
- - ZOOKEEPER-122 - - Fix NPE in jute's Utils.toCSVString. -
- - ZOOKEEPER-123 - - Fix the wrong class is specified for the logger. -
- - ZOOKEEPER-2 - - Fix synchronization issues in QuorumPeer and FastLeader election. -
- - ZOOKEEPER-125 - - Remove unwanted class declaration in FastLeaderElection. - ZOOKEEPER-211 Not all Mock tests are working +
- - ZOOKEEPER-61 - - Address in client/server test cases. - Improvement
- - ZOOKEEPER-75 - - cleanup the library directory - ZOOKEEPER-64 We should log system env information when intializing client/server +
- - ZOOKEEPER-109 - - cleanup of NPE and Resource issue nits found by static analysis - ZOOKEEPER-149 c interface is missing tests against java server (mock only) +
- - ZOOKEEPER-76 - - Commit 677109 removed the cobertura library, but not the build targets. - ZOOKEEPER-177 needed: docs for JMX +
- - ZOOKEEPER-63 - - Race condition in client close - ZOOKEEPER-214 add new "stat reset" command to server admin port +
- - ZOOKEEPER-70 - - Add skeleton forrest doc structure for ZooKeeper - ZOOKEEPER-217 handle errors when parsing config file, throw illegalargumentexception rather than exit() +
- - ZOOKEEPER-79 - - Document jacob's leader election on the wiki recipes page - ZOOKEEPER-220 programming guide watches section should clarify server/clientlib role in data/child watch maint. +
- - ZOOKEEPER-73 - - Move ZK wiki from SourceForge to Apache - ZOOKEEPER-222 print C client log message timestamp in human readable form +
- - ZOOKEEPER-72 - - Initial creation/setup of ZooKeeper ASF site. - ZOOKEEPER-223 default log4j root logger configuration has neg perf impact with no benefit, change default level to INFO +
- - ZOOKEEPER-71 - - Determine what to do re ZooKeeper Changelog - ZOOKEEPER-225 c client should log an info message in zookeeper_init detailing connection parameters +
- - ZOOKEEPER-68 - - parseACLs in ZooKeeper.java fails to parse elements of ACL, should be lastIndexOf rather than IndexOf - ZOOKEEPER-229 improve documentation regarding user's responsibility to cleanup datadir (snaps/logs) +
- - ZOOKEEPER-130 - - update build.xml to support apache release process. - ZOOKEEPER-230 Improvements to FLE +
- - ZOOKEEPER-131 - - Fix Old leader election can elect a dead leader over and over again. - ZOOKEEPER-234 Eliminate using statics to initialize the sever. Should allow server to be more embeddable in OSGi enviorments. +
- - ZOOKEEPER-137 - - client watcher objects can lose events - ZOOKEEPER-243 add SEQUENCE flag documentation to the programming guide +
- - ZOOKEEPER-117 - - threading issues in Leader election - ZOOKEEPER-246 review error code definition in both source and docs +
- - ZOOKEEPER-128 - - test coverage on async client operations needs to be improved - ZOOKEEPER-248 QuorumPeer should use Map interface instead of HashMap implementation. +
- - ZOOKEEPER-127 - - Use of non-standard election ports in config breaks services - ZOOKEEPER-259 cleanup the logging levels used (use the correct level) and messages generated +
- - ZOOKEEPER-53 - - tests failing on solaris. -
- - ZOOKEEPER-172 - - FLE Test -
- - ZOOKEEPER-41 - - Sample startup script - ZOOKEEPER-260 document the recommended values for server id's +
- - ZOOKEEPER-33 - - Better ACL management - ZOOKEEPER-263 document connection host:port as comma separated list in forrest docs +
- - ZOOKEEPER-49 - - SetACL does not work - ZOOKEEPER-265 remove (deprecate) unused NoSyncConnected from KeeperState +
- - ZOOKEEPER-20 - - Child watches are not triggered when the node is deleted - ZOOKEEPER-269 connectionloss - add more documentation to detail +
- - ZOOKEEPER-15 - - handle failure better in build.xml:test - ZOOKEEPER-286 Make GenerateLoad use InstanceContainers +
- - ZOOKEEPER-11 - - ArrayList is used instead of List - ZOOKEEPER-289 add debug messages to nioserver select loop. +
- - ZOOKEEPER-45 - - Restructure the SVN repository after initial import - ZOOKEEPER-161 Content needed: "Designing a ZooKeeper Deployment" +
- - ZOOKEEPER-1 - - Initial ZooKeeper code contribution from Yahoo! - ZOOKEEPER-69 ZooKeeper logo +