Apache ZooKeeper release 3.4.0 is now available: it includes changes covering over 150 issues, 27 of which were considered blockers. ZooKeeper 3.3.3 clients are compatible with 3.4.0 servers, enabling a seamless upgrade path (3.4.0 clients with 3.3.3 servers has also been tested successfully). In addition to improving overall stability some of the highlights are described below:
Things of interest to developers implementing ZooKeeper clients:
- Native Windows version of C client
- Support Kerberos authentication of clients
- Multi-update client API
- Improved REST Interface
The native windows support allows visual studio users to now compile a native client. This will increase ZooKeeper use substantially on that platform, in particular enabling client bindings other than just Java (on Unix the c binding is used to provide a number of bindings to various languages such as python, perl, ruby, go, etc…).
Kerberos authentication was initially developed in ZooKeeper to support the efforts going on in HBase to enable security for those users. However Kerberos client based authentication is now available to anyone using ZooKeeper.
Multi-update is one of the only changes in recent history to extend the ZooKeeper client interface. It allows for multiple operations to be “batched” together as a single atomic operation that either succeeds or fails in its entirety. This feature will greatly simplify implementation of certain domain specific (i.e. client side) business logic.
Improved Operational support:
Operations loves ZooKeeper because of its resilience to failure and self-recovery features, here are some of the new features available in 3.4.0:
- Existing monitoring support has been extended through the introduction of a new ‘mntr’ 4 letter word
- Add tools and recipes for monitoring as a contrib
- Web-based Administrative Interface
- Automating log and snapshot cleaning
- Add logging/stats to identify production deployment issues
- Support for building RPM and DEB packages
A number of contributions were accepted around enabling improved monitoring of the system. In particular the new monitoring 4 letter word and the Ganglia/Nagios integration that now ship with the release will go a long way in helping operations support ZooKeeper in production.
Stability, Compatibility and Testing
It is important to note that 3.4.0 is not yet ready for production. It is an early release that users can start testing so that we can stabilize later 3.4.x releases. We expect a later dot release to be production-ready soon, and will be incorporated into CDH4.
The Apache ZooKeeper project is working on a number of new features. Our How To Contribute page is a great place to start if you’re interested in getting involved as a developer. You can also follow me on twitter.
A special thanks to everyone who contributed to the release (reporting issues, fixing bugs, reviewing changes, writing documentation, etc), and big thank you to our amazing release manager Mahadev Konar.